How I debugged a Symfony performance bottleneck with Xdebug 3.x
A step-by-step walkthrough: from slow page load to identified culprit using a custom cachegrind analyzer.
SENIOR TECH LEAD & SOLUTION ARCHITECT
17 years of enterprise architecture · PHP/Symfony · Node.js · Cloud
Co-founder. Operator. Engineer.
I design and ship backend systems that sit at the core of operations — ERPs, PMS, POS platforms, distributed APIs. I also run a retail & production business, which means I understand cash flow, constraints, and what it costs when a system goes down.

ABOUT
I've spent 17 years designing and building backend systems for B2B companies — from ERP and PMS platforms to distributed APIs serving thousands of daily users. My core stack is PHP/Symfony and Node.js, but my real expertise is architectural thinking: how to structure systems that are maintainable, scalable, and aligned with business reality.
In parallel, I co-founded and operate a retail & production business. That experience changed how I think about software. When you've managed inventory, cash flow, and operations under real pressure, you stop over-engineering. You build what solves the problem — reliably, at the right cost, on time.
I work best at the intersection of both worlds: with teams and companies where technical excellence and business outcomes are the same conversation. Based in Tunisia, open to remote engagements with European teams.
EXPERTISE
Design scalable, maintainable systems from the ground up. API-first, event-driven, cloud-ready.
Deep expertise in PHP/Symfony and Node.js. Legacy modernization, performance optimization, CI/CD.
RESTful and async API platforms. Third-party system integration. Developer experience focus.
Hybrid architectures, Docker Swarm, Nginx load balancing, WireGuard networking.
PHP 5→8 migrations, Symfony upgrades, dependency refactoring. Zero downtime approach.
Team enablement, architecture documentation, delivery ownership, cross-functional communication.
| Category | Technologies |
|---|---|
| Languages | PHP 8.x Node.js Python JavaScript/TS |
| Frameworks | Symfony Next.js Express |
| Infrastructure | Docker / Swarm Nginx Jenkins GitLab CI |
| Databases | MySQL / MariaDB Redis PostgreSQL |
| Architecture | REST APIs Event-driven Microservices WireGuard |
CASE STUDIES
Legacy Symfony 1.5/sf3 application running on PHP 5.x. Needed migration to PHP 8.3 without downtime and without breaking a multi-module B2B workflow used by enterprise clients.
Single OVH VPS becoming a bottleneck as traffic grew. No redundancy, no horizontal scaling capability, deployment required downtime.
Building internal systems (inventory, POS, cash flow tracking) with zero VC budget, real operational pressure, and a need for immediate ROI.
OPEN SOURCE & TOOLS
CLI profiler analyzer for Xdebug 3.x cachegrind files — built for PHP performance debugging
Parses cachegrind output from Xdebug 3.x. Identifies top call stacks by time/calls. Flags external process forks (exec/shell calls). Detects Assetic formula-loading overhead. Outputs a structured performance report in terminal.
View on GitHubMore tools coming soon
Docker Swarm deploy script · Symfony profiler helper
WRITING
A step-by-step walkthrough: from slow page load to identified culprit using a custom cachegrind analyzer.
The 3 architectural decisions I make differently now that I've managed cash flow, inventory, and real operational pressure.
Most legacy migrations fail because they're treated as code rewrites. Here's how to approach them as design problems.
CONTACT
I collaborate with European teams on backend architecture and technical leadership — consulting, advisory, and fractional CTO engagements welcome.
© 2026 Anis Ksontini. All rights reserved.
Built with Next.js · Deployed on Vercel