Profile Image - Andrew

Andrew Kasten

I want to build tech that
makes an impact.

About

I'm here, because I want to provide better for my family. My previous work and experience were valuable and rewarding but the focus shifted. I asked myself, how I could reach higher. I picked something difficult yet achievable.

Code Platoon let me combine my creative and communications knowledge with software engineering. Now, I'm an early career full-stack developer looking for a team where the work makes a meaningful impact.

Impact Desk

Dashboard

ImpactDesk is a fundraising activity planner for nonprofit fundraising managers and development staff who need to organize donor meetings, visits, and events more efficiently. Users schedule relationship-building activities, filter them by day, and view addresses on an interactive map to plan routes.

Individual project for the Code Platoon capstone. React frontend with Material UI and React Leaflet, Django REST Framework backend, PostgreSQL, deployed on AWS EC2 with Docker.

GitHub Live Demo

Purpose and Goal

I've done nonprofit fundraising work, and tracking relationships, schedules, and events across spreadsheets and calendars gets messy fast — especially the visual piece of seeing where everyone is and planning a route between them. Working with nonprofits and churches over the years gave me a clearer picture of what fundraising and development staff actually need day-to-day.

I researched the role specifically before scoping the build — including how outreach actually breaks down day-to-day, which is why scheduling and routing are the app's center of gravity rather than data.

I started with a planning document, a defined Minimal Viable Product (MVP), and rough page sketches before writing code.

Spotlight

The hardest part of building the development scheduling page wasn't the core functionality — it was the form. I designed it to handle scheduling, location lookup, contact linking, and validation in one form. It has twelve inputs total. The scope created cascading bugs, but the bigger problem was one I only saw after completing.

Scheduling doesn't happen all at once in real life. A person knows a contact's name today, sets a meeting time tomorrow, and confirms the address. One data model and one form is a good beginning, but it forces a person to know everything upfront. I'd redesign it now to match better user workflow. Having partial records that fill in over time, nullable fields and plan for "in-progress" states. The database and frontend can be done very differently with this in mind.

Lessons Learned

Developments

One thing I'd take from this build: features are bigger than they look, and choices for the visual and user experience are often choices about the code not seen.

Getting a map onto the screen is its own engineering problem. So is putting markers on the map, an address search, geocoding, gps location, and drawing routes. The apps we use every day are built from thousands of small steps, each one solved separately. That will change how I plan: breakdown first, estimate the parts, and finish one piece at a time.

Seasonal Recipe Card Generator

recipe card

A personal-use app and design concept that turns a US state + meal type into a single-serving recipe grounded on what produce is actually in season in that region. Built to explore using AI as an embedded product, not a chat interface — the user makes simple choices, and the system handles prompting, grounding, and structured output behind the scenes.

React and Tailwind frontend, Django REST Framework backend, Google Gemini with Pydantic-validated structured output, Pixabay and CalorieNinjas for image and calorie information. Deployed on AWS EC2.

Live Demo

Purpose and Goal

This was built to explore AI integration into apps. Most consumer AI tools expect the user to produce their own AI output. That is a useful avenue but not the only AI use case. The recipe generator is a test of that concept.

Spotlight

It was more difficult than I realized to get Gemini to return what I was asking without making it up. So, I found a 50-state × 12-month dataset of seasonal produce to put into JSON. Then Gemini's recipe suggestions are anchored on what's actually in season based on region. Gemini can be required to return JSON through a Pydantic schema (name, ingredients, instructions, prep time, accent color). With this a React component can render the response easily with that structure.

Lessons Learned

LLMs are good at synthesizing information as opposed to creation. At first the AI returned plausible information that became more reliable after providing real information. When asked for an image url, it consistently returned a faked url - 404 not found. So, working with AI is not always a straight forward expectation.

Contact

andrewkasten@proton.me
LinkedIn