Blog
Welcome to jameskoch.work
Software, Civic Service, and Lacrosse. Three Passions, One Platform

Welcome to jameskoch.work
If you made it here, welcome! I built this space to share three things I’m deeply passionate about: software engineering, civic service, and lacrosse. Not because they fit neatly together on a resume, but because they all spring from the same drive: build things that matter for people who deserve better.
This first blog series will walk through how and why this website was built: the architecture decisions, the infrastructure choices, and the philosophy behind it all. But first, let me tell you who I am and why any of this exists.
Why get involved in civic service? Don't you have enough going on?
Short answer: my two sons.
I want them to grow up in a county with safe streets, working crosswalks, clean drinking water, and public schools where they can genuinely thrive. That’s not a political statement—it’s a parent’s bare minimum. When I looked around at what was happening in DeKalb County, I realized that caring from the sidelines wasn’t enough.
DeKalb is the only county in Georgia with a CEO-style executive government structure. It operates like a corporation, and I wanted a seat at the table. I built relationships with the County CEO and my Commissioner so I could be a real voice, not just a constituent filing complaints. The goal has always been to advocate for all communities equitably, not just the ones that already have advocates.
SPLOST II: A Unique Opportunity
SPLOST stands for Special Purpose Local Option Sales Tax—a single cent added to every sales transaction, dedicated entirely to capital improvements across DeKalb County: roads, sidewalks, water infrastructure, school facilities, and parks. But it’s much more than a tax: it’s a community-driven investment in our future.
DeKalb County has now passed two consecutive SPLOSTs, with combined projected revenue exceeding $950 million for unincorporated DeKalb. That is a once in a generation investment and a rare opportunity to get accountability right from the start. A future post will break down the full history, fund structure, and what’s at stake for SPLOST III.
I was selected by Super District 6 Commissioner Ted Terry to represent our district of over 200,000 residents on the DeKalb County SPLOST II Oversight Committee. My peers on that committee then elected me as Chair, a responsibility I do not take lightly. We are working side by side with civil rights leaders across the county to ensure that every dollar is spent equitably, with transparency, in every neighborhood—not just the ones with the loudest voices.
And the timing matters. With the FIFA World Cup coming to Atlanta in 2026, infrastructure dollars are about to flow into this region. I’m on a mission to make sure that investment reaches the people of DeKalb... all of them.
Lacrosse: My Passion and My Mission Inside the Perimeter
I’ve been playing and coaching lacrosse my entire life. But here’s the thing about lacrosse in the South: it’s largely invisible to communities that don’t already know it exists, and financially inaccessible to many who do.
Through Druid Lakes Youth Lacrosse Association, my nonprofit, I’m working to change that. We go into schools, partner with PE teachers to bring lacrosse into the curriculum, and run programs specifically in underserved communities where the sport has never had a foothold. We also fundraise for causes bigger than the sport itself—including the Atlanta Community Food Bank and Shootout for Soldiers.
One thing that’s always bothered me: there’s virtually no dedicated media coverage for lacrosse in this region. So we’re building it. I’m partnering with DeKalb County Schools to promote student journalism, and will be bringing on high school writers to cover the sport here—content I intend to share with local newspapers and help grow a press presence for lacrosse inside the 285 perimeter.
Building with Agents, Prompts, and Personas
The same philosophy—structured systems, clear ownership, and accountability—also shows up in how I build software. One of the most distinctive aspects of this project is my approach to automation and developer experience: everything is built around persona-driven agents and prompt engineering. Instead of a generic, one-size-fits-all workflow, I’ve created a system where different agents (defined in .github/agents) and custom prompts (in .github/prompts) steer the development, deployment, and even the content creation process.
This means:
- Every workflow, from code review to content publishing, can be tailored to a specific persona—whether that’s a product owner, a designer, a platform engineer, or a recruiter.
- Prompts and agent configs are versioned, testable, and open for collaboration, making the system both transparent and extensible.
I've open sourced a sample application that showcases this design system and agent configuration. This is a working example of how to build a modern agent powered workflow. Future blog posts will break down exactly how this works and how you can adapt it for your own projects.
So What Is This Web Application?
jameskoch.work is a production grade Next.js/React application, server-side rendered and deployed on AWS Amplify. If you’re new to software development, don’t worry: future posts will break down the difference between client-side rendering, server-side rendering, and static sites in plain English.
Under the hood, this application is built on several core AWS services:
- AWS CDK (Cloud Development Kit): Infrastructure as code. Every resource—roles, buckets, queues, functions—is defined in TypeScript and deployed consistently across environments.
- AWS IAM with Least Privilege: No service has access to anything it doesn’t explicitly need. This isn’t just best practice, it’s how production systems should be designed.
- AWS SES (Simple Email Service): Powers the email subscription and blog distribution system you’re reading from right now.
How Email Subscriptions Work
When you subscribe, you choose your interests: Software, SPLOST, Lacrosse, or any combination. Every blog post is tagged at publish time. The Lambda fan-out function matches your subscription tags against the post tags and only sends you emails for content you actually care about.
Your preferences are also reflected in your cookie settings on the site, so the experience you see is personalized to what you opted into.
Here’s a visual of the content pipeline that powers this blog:
flowchart TD
subgraph Admin
A[Admin App]
end
subgraph Cloud
B[S3 Bucket]
C["Lambda: parse-content"]
D[DynamoDB]
E["Lambda: blog-fanout"]
F["Amazon SES"]
end
subgraph Subscriber
G[Inbox]
end
A -- Upload .md + images --> B
B -- S3 Event --> C
C -- Store metadata --> D
C -- Trigger --> E
E -- Fetch subscribers by tag --> D
E -- Send email --> F
F -- Delivered --> GContent Without Deployments
One of the design decisions I’m most proud of: adding a new blog post, image, or piece of content requires zero code deployments.
All dynamic content lives in Amazon S3, served through a CDN. I built a separate admin application that writes directly to S3, and the pipeline is entirely event-driven. When new content lands in S3, an AWS Lambda function picks it up, processes it, and fans it out to subscribers. Lambda is the backbone of modern serverless architecture—and as the saying goes, the world runs on Lambda.
Posts are written in Markdown—a lightweight text format that renders cleanly into HTML. Tags embedded in the post’s frontmatter (the block at the top of the file) drive both the content display and the subscription routing. It’s a simple, powerful pattern.
Conclusion
The work across all three of these domains is challenging, time consuming, and deeply rewarding. None of it would be possible without the support of my wife and family, and I don’t take that lightly for a single day.
Documenting this journey matters to me. Sharing what we learn in all aspects of our lives is one of the most valuable things we can do for each other. I hope something here is useful to you! Subscriptions are very much appreciated!