I help you make the right decision on time.
Some decisions outlive the code that implements them.
Moving a codebase between languages has become genuinely cheap, and swapping one SQL database for another is much easier than it was. Deciding what holds your source of truth still costs exactly what it always did: get that wrong and you find out a year later, in an API your customers have already integrated against.
I work through the decision with your team and write up the reasoning behind it, so it can be referred to when questions come up later.
Where I come in
Which of these is on your desk?
Open any card for how I'd handle it, and where I have done it before.
One core, two languages
You maintain the same SDK in two or three languages, and the same bug gets fixed separately in each.
How I've handled it at BandPorting got cheap?
An AI agent could port one of your services to another language right now, and you're wondering if you should.
How I've handled it at RedisImmature technology
The technology you want to use looks right for the problem but is not yet mature, and someone has to decide.
How I've handled it at Redis and SunbitWhich decisions matter
Your team argues every architectural decision at the same intensity, and the expensive ones fall behind.
How I've handled it at Band and SunbitStandards across teams
Your backend, ML and frontend groups each work to their own standards, and AI agents now write code in all of them.
How I've handled it at Line5Experts outside the code
Your domain experts don't write the software, so implementing what they know needs to pass by an engineer.
How I've handled it at AMR biotech startup and UltimaHow I work
Everyone is right about their own part
Clustering at Redis, storage at XIV: systems where even if every component is correct, the whole thing can still fall over. The interesting failures to be learned from were always in the interactions.
A Python team reaches for asyncio because that's the modern way to manage connections. A Rust team reaches for Tokio for the same reason. Both are right, and running both runtimes in one system multiplies the complexity in a way neither team can see from where it sits.
I consider both sets of constraints at once, and explain each team's considerations to the other in familiar terms. A recommendation that accounts for both is one the teams are much more willing to live with.
About
Still in the code
I'm Gavrie Philipson. I have been building software for more than twenty-five years, most of it distributed and much of it performance-critical, including ML pipelines, storage, and clustering.
For the last few years I have been advising instead, mostly early-stage teams setting their technical foundation. All the while I've been keeping my head and hands in the code and staying up to date with the ever-changing tools and methods.
More about me
Services
Ways to work together
Contact
Let's talk
A few words about what you are building and the decision you are stuck on are enough to start.
Prefer another way to reach me?
- Email: [email protected]
- Phone: +972-54-5918005










