Push-notification job: 56% less RAM
A cron job the kernel's out-of-memory killer kept stopping mid-run, so notifications were not sent.
Memory stopped growing with the number of users.
Read the case →
That's me. Žalec, Slovenia (CET).
Senior Backend Engineer · PHP / Laravel · Python
Legacy PHP modernization, including AI. I take PHP systems that have been running for years and make them easier to change: safe refactoring, tests and upgrades, and AI where it helps.
Read the case study →
Refactored first, then fixed the memory.
18+ years of PHP backends12 years on one platform: 1,300+ sites, 20M+ users
The problem, what I did and a proven result. Four come from 12 years on one multi-tenant PHP platform; the rest are client work and AI projects.
The four I'd walk you through first. My notes are on them.
A cron job the kernel's out-of-memory killer kept stopping mid-run, so notifications were not sent.
Memory stopped growing with the number of users.
Read the case →Every order cleared all ~440 product pages at once. Now a page clears only when something it shows changes.
Measured first: a month of real access logs, replayed.
Read the case →Long, branchy methods behind matching, notifications and search, refactored one class per ticket with the tests kept green.
About 20 classes, refactored one per ticket.
Read the case →Member search on 1,300+ sites, rebuilt next to the old one and switched with a fallback.
Also capped the city lookup: 10k+ → 150 rows.
Kept the old search as a fallback for a while.
Read the case →What I've built lately, at work and on my own.
Four have public code. Read it, not just my word.
The member-facing app and shared libraries: MySQL tuning, background jobs and the core search.
Self-hosted GPU API that transcribes mixed-language lessons with speaker labels, plus an optional LLM pass for a cleaned transcript.
Take-home assignment for a job application: order matching with escrow under row locks, bcmath money math, events sent only after commit, and CI on GitHub Actions.
Web console and PHP relay to compose push notifications, send them to device tokens and see the received payload.
Turns 20–30 minute YouTube and TikTok videos into 2–3 minute summaries and answers their clickbait titles.
Automatic text watermarks for uploaded images. First released in 2010, updated in Dec 2025.
Recommendations from LinkedIn, word for word; the last one is shortened.
My manager, the CEO and a teammate, all from those 12 years.
I had the privilege of working alongside Sandi for 12 years, and in that time, he became much more than just a colleague; he was the person you could always count on.
No matter how high the pressure, his patience and thoroughness never wavered, and his sense of responsibility is truly second to none. He has a rare ability to be both technically precise and incredibly approachable, always making himself available to help others succeed. It is rare to find someone with such a long-standing commitment to excellence and genuine kindness. I truly cannot recommend him highly enough to any team that values skill paired with real integrity.
Olga TuzhilinaIT Operations Manager · same team for 12 yearsSandi is an excellent full stack developer that can be counted on to fit well into a team and contribute significantly. Additionally, I am confident that even on his own Sandi has both the technical ability and work ethic to get the job done successfully and on-time. If you have a need that matches Sandi’s skill-set, you would be making a great decision to have him contribute.
Jay NevesChief Executive Officer, FirstBeatMediaSandi worked in our company for over 12 years as a full stack PHP programmer, and during this time demonstrated strong professional skills, remarkable dedication and ability to build healthy relationships with colleagues.
Dmitry KatemirovPM, FirstBeatMedia · managed Sandi directlyI'm open to senior backend roles: fully remote anywhere, or hybrid in Slovenia. If you have a PHP system that has become hard to change, I'd like to hear about it.
Email is the quickest way to reach me.