Languages and frameworks
- PHP
- Symfony
- Laravel
- Go
Both sides of the migration question, which is what makes an honest answer to it possible.
About
One engineer, not an agency. I work on backend systems in PHP and Go for European product and SaaS companies: architecture decisions, legacy modernization, and the implementation that follows from them.
Senior enough to make the architecture decision. Small enough to work directly. Structured enough for European B2B procurement.
Deliberately a short list. It covers the areas where I can take responsibility for an outcome, rather than everything I have touched at some point.
Both sides of the migration question, which is what makes an honest answer to it possible.
Schema and query work, caching and queueing, and the container and deployment layer around a service.
The parts that decide whether a backend is pleasant or painful to run once it is live.
Workflows that should run on infrastructure you control, when a public AI API is the wrong default.
Profiling data and baseline metrics come before any architectural recommendation. Opinions about what is slow are wrong often enough to be worth checking.
Work is sequenced so each step can go to production on its own and be rolled back on its own. Long-lived branches and big-bang cutovers are where migrations go wrong.
Your repository, your review rules, your tracker, your deployment pipeline. Introducing a parallel process for one external engineer creates more problems than it solves.
Architectural choices get a short written rationale, including the options rejected. That is what makes the work maintainable by your team after the engagement ends.
One engineer means finite availability. When I do not have the time or the right experience for something, saying so is faster than everyone finding out in month two.
Technical discussion happens with the person doing the work, in your channels, without an account manager in between.
Most people you can ask about a PHP to Go migration have a reason to want a particular answer. An agency with Go engineers on the bench needs Go projects. A platform vendor needs you on their platform. A team that has just learned a new language would quite like to use it. The recommendation follows the incentive, and it is usually delivered with confidence.
My engagements are priced the same whether the conclusion is "upgrade your PHP runtime and fix these six queries" or "extract this worker into Go". There is no bench to keep billable, no licence to resell, and no second team whose utilisation depends on the answer being a migration. The migration readiness audit is a fixed price precisely so the recommendation is not attached to the size of the project that follows.
That also means I will sometimes tell you the honest answer is disappointing: that the architecture is fine and the problem is a missing index, or that the real constraint is team process rather than technology. Those conversations are cheaper than a migration that did not need to happen.
I work in Europe/Belgrade, which is CET/CEST, a full working-day overlap with teams in Germany and the wider DACH region, the Netherlands, France, the Nordics and most of the EU. Reviews, planning and incident calls happen inside your working day rather than at the edges of it.
Communication is English, mostly asynchronous, in whichever channels your team already uses. Core hours, meeting cadence and any out-of-hours or incident expectations are agreed at the start of an engagement rather than left to be discovered later.
Contracting is business-to-business: one service agreement, monthly invoicing in EUR, and no employer of record or umbrella company in between. An NDA can be signed up front, and the rest of the commercial detail is set out on the contractor engagement page.
Working stack
Remote from Serbia, working hours overlapping CET/CEST. Engagements run on one B2B agreement with a monthly invoice in EUR.
The stack, roughly what the traffic and data volumes look like, and the problem as you currently understand it. A few paragraphs is enough.
Thirty to sixty minutes with the engineer who would do the work. The goal is to establish whether the problem is what it appears to be and whether I am the right person for it.
Either a fixed-price migration readiness audit at €1,200, a private AI readiness audit from the same commercial model, or a 10-day paid pilot at €400 per day for a capacity question.
An NDA if you want one, then the service agreement covering scope, cadence and notice period. After that: access, a repository walkthrough and a real first ticket.
There is no case-study carousel on this site, and there are no logos or testimonials, because I am not going to publish client names and numbers I cannot substantiate. What I would offer instead is more useful during an evaluation anyway: a technical conversation about your own system, where you can judge whether the questions I ask are the right ones.
If you want to see how I reason before that call, the blog is there for exactly that purpose: architecture trade-offs, migration mechanics and the failure modes worth knowing about, with the reasoning shown rather than summarised. For a paid but low-commitment version, the entry points are deliberately small: a fixed-price migration readiness audit, aprivate AI readiness audit, or a10-day paid pilot.
Getting started
A few paragraphs about the system and what is going wrong with it is enough to get a useful answer back. If it turns out I am not the right person for it, I will say so.