Blog
Everything I've written
Search by keyword or tag, or filter by the kind of post. 21 posts and counting.
Turning a folder of projects into a developer story
What I learned writing my own READMEs, org profile, and portfolio — how to choose a static-site stack, structure a repo's front page, and quantify your impact honestly without overclaiming.
How I built this site: local-first, tracker-free, with Astro
The build journey of this very site — choosing Astro, picking paths over subdomains, pivoting from a blog to a full portfolio, auditing for telemetry, and a sneaky SVG encoding bug.
How I choose an architecture
My repeatable process for architecture decisions — start from the constraints, write an 'alternatives considered' table, and make the trade-off explicit. With examples from real projects.
Bringing coverage and offline static analysis into the editor
Why I built an IDE extension that runs full static-analysis rules locally — no server round-trips — and the design decisions that made offline parity possible.
Building a test-flow visualizer for two IDEs
How a tool to untangle TestNG dependsOnMethods graphs grew into a cross-platform extension - and the decisions that kept it generic, fast, and shippable on top of a half-finished refactor.
Constraining a local LLM to valid JSON with GBNF grammars
Prompts ask a model to "return JSON". Grammars make it impossible to return anything else. How I used GBNF + constrained decoding to get reliable structured output on-device.
Designing a provably-offline app: privacy as a hard constraint
Lessons from building a local-first finance analyzer — how to make "offline" a guarantee you can prove, not a promise, and the architecture that falls out of it.
Fair fare-splitting for pooled rides: from a naive split to surplus sharing
Designing a ride-pooling fare model where riders save, the driver is rewarded for pooling, and the math is provably fair — checked against the Shapley value.
Blocking websites at the kernel layer on Linux — without a setuid binary
How I designed a per-user, system-wide website blocker that catches even raw-IP curl, while keeping a single narrow privileged surface and zero setuid bits.
What shipping swagger-view taught me about local-first tools
A developer-journal entry on building a privacy-first Swagger/OpenAPI previewer — and why "no callbacks" turned out to be a feature, not a constraint.
Week notes: collapsing microservice upgrades into one command
A messy, manual, multi-step release became a single Python command. Notes on what I built, what broke, and what I'd do differently.
SOLID, in practice
An evolving note on what each SOLID principle actually buys you in a real Spring Boot service — with the smells that tell you a principle is being violated.
Python Learning on Steroids
Going hands-on with networking and security in Python — sockets, packets, and learning a language by actually building with it.
Automate Windows theme changes by time with a batch script
A tiny Windows automation that flips between light and dark themes on a schedule using a batch script and the registry.
Digital certificates in communication — what are those?
A from-scratch tour of PKI: public/private keys, hashing, digital signatures, and how certificates establish trust on the wire.
DNS record types and what they're for
A quick reference to the common DNS record types — A, AAAA, CNAME, MX, TXT and friends — and the job each one does.
Auto Publish/Release with GitHub Actions
Turn a green build into a versioned, published GitHub release automatically — tags, release notes, and artifacts without manual steps.
Continuous Integration with GitHub Actions
Build and test on every push with GitHub Actions — strategy, matrix builds, workflow_dispatch, and a working Node.js CI workflow.
Servlets & filters in Spring Security
How servlets and the filter chain underpin Spring Security — the request path from container to controller, and where auth fits in.
Intro to GitHub Actions
The vocabulary of GitHub Actions — jobs, runs-on, steps, and how a workflow is wired together — before building real pipelines.
GRUB: what is it?
What a bootloader actually does, and how GRUB fits into the Linux boot process from BIOS/POST through MBR to the login screen.
No posts match that search. Try a different keyword.