About me
I’m a full-stack developer who builds things end to end. I’ve been doing this for almost 20 years, and what keeps me going is that the job keeps reinventing itself. The core stays the same: take an idea, figure out how to make it real, ship it, own the result.
The biggest recent shift in how I work is AI agents. I use Claude Code as my primary development environment, the actual driver of implementation. I focus on outcomes and keep the quality bar high, while the agent handles the path. I wrote about this in Claude Code as Your Execution Environment.
print(response.json()), you may want to try it.Zero to one. I love building products from scratch. Page Analytics is a Chrome extension that overlays Google Analytics and Search Console data directly on your pages. It has thousands of active users. Smello is a developer tool I built to scratch my own itch. Text Refiner started as a weekend project in 2023 and became something I use every day.
AI-native development. I treat agents as a force multiplier, not a replacement for thinking. The agent drives the implementation loop; I set constraints and make judgment calls. Python is still my main language, but its role has changed: it’s increasingly the deterministic glue in an agent-driven workflow rather than the thing that runs the whole show. My skills collection is a new form of knowledge transfer: writing instructions that shape how agents build software on my behalf. I wrote about how this workflow evolved over time.
Python. I’ve worked with Python since 2006. I started with Django 0.91 at NetAngels, a web hosting company in Russia where I was employee number three. After six years, I moved to Todoist, where I spent eight years working with a Werkzeug-based framework. Now I work independently with different clients, and Python remains the backbone, whether it’s running the whole app or providing structured tools for agents to call.
Software architecture. I care about practical architecture that doesn’t get in your way. I have opinions about not using dicts as data structures, and I default to the interface-mock-live pattern for third-party integrations. Code should make its intentions obvious to the next person reading it, without requiring an archaeology expedition.
Frontend. I’m comfortable in the React ecosystem and prefer TypeScript. I think of frontend and backend as one workflow, not two specialties.
DevOps. I started my career managing servers at a three-person hosting company in the early 2000s. That meant learning the hard way: not just how to provision and configure machines, but how to think about security first, because a misconfigured server was everyone’s problem. I still write ad-hoc bash, awk, and sed tools when the situation calls for it, and I set up CI/CD pipelines for every project I touch.
Communication. My thinking about communication was mostly shaped by eight years at Doist, the company behind Todoist. We were async-first and remote-first years before it became a trend, and I dare say Doist was a genuine trendsetter there. I picked up a bias toward documenting decisions and sharing context by default that I still carry into every team I work with.
Remote work. I’ve worked remotely since 2012 and consider it the only option. I live in Catalonia, Spain. My timezone is 6 hours ahead of EST. Time in Barcelona.