About
I write programs. Remote. The parts of software that show up after the first working version.
I got into building software because I wanted things to exist that didn’t. That part hasn’t changed. What has is how much of the job sits after the first working version: the data that has to stay consistent, the error that only appears on a machine I don’t own, the second year of a codebase when the clever bits start to cost.
I work across the usual layers: the screens people use, the services behind them, the data that has to stay true. The interesting problems are usually in the joints — a screen that looks done until you ask what happens when the save fails, a schema that seemed obvious until the product had to tell the truth about an awkward case. I care about those unglamorous parts. They are the product, once anyone besides me is using it.
I work on macOS, Windows, and Linux. That isn’t a flex. Clients have machines. Deployments land somewhere I didn’t pick. The people who inherit the code will not have my laptop, my editor layout, or my patience for a README that assumes too much. If it only runs where I developed it, it isn’t finished.
What I actually do
- Front-end UI. Pages, components, and states that have to stay readable after the visual pass is over — including empty, error, and “this field is missing” cases.
- APIs. REST endpoints with contracts you can rely on, not a pile of special cases that only make sense if you wrote them.
- Data modeling. Schemas that match how the product actually works, including the awkward parts people hope they can paper over.
- The glue between them. Validation, errors, auth, migrations — the wiring that keeps the rest from falling over once real users show up.
Working together
I work better in writing. A short note that names the problem, the constraint, and the deadline is more useful than a call that doesn’t. I want scope before I write code — what’s in, what’s out, who it’s for.
I will say when something is a bad idea. That isn’t obstruction. It’s cheaper to disagree about a plan than to unwind a month of the wrong implementation.
If you want to work together, start on the contact page. How this site handles data is on the privacy page.