“All the code that’s fit to ship.”
By Hank Karpinen · Filed from localhost
It started because microservices articles always handwave the boundaries. Six services, six Postgres databases, one Compose file. Within a week you find out which of your choices were lazy. Some were mine. I rewrote the Household service twice.
“Identity, Household, Finance, Forum, Notifications. Six services. One frontend that ties them together.”
.NET 8 on the back, Next.js on the front, Postgres for storage, RabbitMQ for the bus, Nginx in front. No Auth0 — I wanted to know what JWT rotation actually looked like.
Continued on this page · Filed by engineering
Dispatch 01 — Topology
Each service can deploy without touching the others. The cost is repetition. Every service has its own auth middleware to wire up, and I wired up every one of them. The win shows up on the third week, when one team can break their service and the rest stay green.
Dispatch 02 — Messaging
Domain events on RabbitMQ via MassTransit. Bills emits bill.split.created and walks away. Notifications picks it up and pushes an SSE down to whoever's looking. The first version retried forever on bad payloads and ate a weekend. The second has a poison queue.
Dispatch 03 — Security
JWT with refresh-token rotation, TOTP 2FA, RBAC, mod permissions per community. No Auth0, no Clerk, no IdentityServer. I wanted to know what every header meant. It took longer than buying would have. I learned more than I would have, too.
Tap to open the live screens
Shared household management. Members, chores roster, calendar events, contribution tracking. The glue between housemates that isn't a group chat.
Personal finance engine. Log expenses, split costs, track income, connect bank accounts. Budgets that don't require a spreadsheet.
Threaded discussions, nested comments, upvotes, communities with mod queues and full mod-log auditing. Reddit, but smaller and angrier.
The personal corner. Project showcase, skill cards, social links, and a contact form that actually delivers — to a real address, not the void.
Sign-up, sign-in, password reset, email confirm, 2FA toggle, session list, avatar upload, notification preferences. The boring bits, done.
Live weather conditions via OpenWeatherMap. Search any city, toggle °F/°C, and overlay cloud, precipitation, wind, pressure, and temperature layers on an interactive Leaflet map.
Unit conversion across length, weight, temperature, volume, speed, area, and data — all computed by a pure domain engine in the Math microservice. No rounding surprises.
Twelve tools. One app. Each chosen for a reason — none for fashion.
Wanted
Full-Stack Roles
Apply within
References on file
Reward: gainful employment
Currently open to full-stack engineering roles — remote, hybrid, or on-site for the right team. Senior or staff. I write the database migrations, the auth flows, and the marketing site.
Set in Instrument Serif for display and JetBrains Mono for body copy. Printed on the web at 96 DPI. No models were prompted in the making of this page.