Domains
Development
Mostly Python, mostly useful.
Development
Mostly Python: automation, internal tools, broken scripts, Flask apps, creative workarounds, and the cleanup needed to make things usable.
Most of my development work is Python: building tools, fixing old ones, automating manual work, and finding practical ways around awkward systems. I have worked on internal Flask platforms, build scripts, lab tooling, and small interfaces used by people who just need the thing to work. Outside work, I have also built personal Android apps and dabbled with JavaScript when the project called for it.
Infrastructure
"It works" is not enough.
Infrastructure
CI/CD, Linux services, Docker, Kubernetes, IaC, hardening, monitoring, and the work that makes software reproducible outside one lucky machine.
I work on build environments, deployment paths, service configuration, and the operational mess around them. In my own projects I use Terraform, Ansible, Docker, GitHub Actions, Linux servers, monitoring, and a kubeadm homelab. Build systems, services, permissions, networking, deploy scripts - you name it, I have probably broken it at one point, then made it easier to rebuild or debug.
AI Engineering
Throwing code at Claude is not a strategy.
AI Engineering
I pick the model, shape the harness, set the context, scope the tools, check the output, and keep the bill low.
I use AI the way I use other development tools: pick what fits the job, wire it into the workflow, and check what comes out. I pay attention to the harness around the model: context, tools, skills, subagents, cache use, permissions, and logs. That is usually where the difference is made. It lets me get useful work out of cheaper models, save stronger models for harder parts, explain the setup to the team, and catch problems like unsafe tool access, leaked secrets, or runaway usage.
Design
Useful can still look good (I hope).
Design
I am not a pure designer, but I care about the interface: accessibility, layout, hierarchy, responsive behavior, and making tools clear enough to use without a manual.
I try to build interfaces that are functional, accessible, and visually considered. That usually means clear hierarchy, readable spacing, sensible states, responsive layouts and all in all designed to get away from the "crimes against UI" engineer design. I have a background with Adobe tools, some Figma experience, and enough UI/UX sense to improve the software I touch. This site is part of that claim: custom CSS, no template, and a lot of small decisions about how the page should read and behave.
Infrastructure as Code
I built the site to deploy the site.
A personal site has been my lifelong dream since 2024, so naturally a simple site won't do. The setup had to cover the boring parts too: DNS, firewall rules, server hardening, TLS, nginx, branch-based deploys, and a way to recover when something breaks.
- Terraform for the server pieces: Droplet, DNS, and firewall rules live in code.
- Ansible for server setup: Users, packages, nginx, hardening, and deploy paths are written down and repeatable.
- One small VPS: A 6 USD/month droplet is enough for the job, and it keeps the whole setup visible.
- Production and beta on one box: Two web roots, one nginx setup, one certificate path, simple as.
- GitHub Actions for deploys: Main goes to production. Other branches go to beta. Manual deploy is there for when the pipeline needs a nudge.
The Paperwork
Same set of skills, easier to download.
▶ See my resume in fullscreen (PDF)
Or preview it below: