
Jurij Tokarski
Hey 👋 I'm Jurij. I run Varstatt and create software. Usually, I'm deep in the work shipping for clients or building for myself. Sometimes, I share bits I don't want to forget: mostly about software, products and self-employment.
The Production Bugs That Never Threw an Error
Six bugs across OAuth, Next.js, launchd, n8n, browser APIs, and OpenAI. Every log said success. Every result was wrong.
Using Firestore Transactions to Handle Race Conditions
When two Cloud Function instances race to create the same external resource, a Firestore transaction decides the winner.
Merging Two Firestore Listeners for Cross-Field OR Queries
Firestore can't OR across different field types in a real-time query. Two parallel listeners merged client-side can.
SwiftUI Is Like React + CSS-in-JS
I had to jump into an iOS codebase with no SwiftUI experience. The fastest way in was mapping everything I already knew to the Swift equivalent.
Your Market Tells You Who You Are
Launched as an MVP shop. Clients stayed for 12 months. Eventually I listened.
Being Good To Be Referred
Split your business brand (clients) from personal brand (peers). Build referral relationships through authentic content, not polished marketing.
The Fourth Evolution of MVP
Frank Robinson invented MVPs in 2001. Eric Ries redefined them in 2011. AI is redefining them again in 2025.
Using Shared Packages in Firebase Monorepos
Firebase breaks with file:../shared deps. Use npm pack + tarball approach: preinstall script creates .tgz locally, gets included in deploy.
Build Apps Like LEGO Bricks
Use ports & adapters architecture to swap AI providers like LEGO bricks. Avoid vendor lock-in, optimize costs, test new models easily.
When "Polish Over Security" Costs Real Money
Client wanted to "polish features first, security later." Found exposed OpenAI API key in frontend code. Anyone could steal it and rack up unlimited charges.