Senior software engineer focused on clarity, scale, and longevity.
I’m a senior full-stack software engineer with a focus on modernizing legacy systems, designing maintainable architectures, and shipping products that hold up under real-world complexity. Most of my work lives at the intersection of frontend systems, backend services, and infrastructure - especially where things have grown organically and need structure, discipline, and clear boundaries to move forward.
AI assisted and vibe coding are making it easier to build than ever, even for non developers. When anyone can ship something in an afternoon, does that bring back the era of hobby sites and passion projects, or are we too optimized now to build just because we want something to exist?
AI makes hard things look easy, and that is a trap. This post is about the moment the magic wears off, when a "working prototype" meets real data, edge cases pile up, and the gap between "it runs" and "it works" turns out to be a lot wider than expected.
Running a LLM doesn't have to be relegated to the cloud or per-token pricing. Local models are better, our machines are more powerful, and it's easier than ever. With the right setup, you can build practical AI workflows entirely on your own hardware.
Struggling with conditional validation in Angular reactive forms? From valueChanges hacks to form-level validators, this post breaks down the pros, cons, and trade-offs of each approach — so you can write cleaner, smarter forms that scale.