Slow pages, a sluggish database, imports that take hours – I measure, find the bottlenecks and fix the ones with the biggest effect first.
PHP & MySQL Performance Optimization
"The application is slow" almost always has a concrete cause – and it is rarely the one people suspect. A bigger server helps briefly, costs permanently and does not solve the problem. I measure first, then fix the bottlenecks with the biggest effect: in PHP code, database queries, caching and architecture.
Typical tasks
Slow database queries
Missing indexes, N+1 queries from the ORM, unfavourable joins, tables nobody cleans up: analysis with slow query log and EXPLAIN, then targeted fixes – often the biggest lever.
Imports and exports that take hours
Process product imports, stock reconciliation and exports in batches, reduce memory usage, parallelise and move them out of the request into background jobs.
Use caching properly
HTTP caching, application cache (Redis, Symfony Cache), Doctrine cache, precomputation of expensive results – where it pays off, without risking stale data.
Blocking external calls
External APIs that slow down every page view: timeouts, queues, asynchronous processing and fallbacks so that a slow provider does not paralyse your application.
PHP runtime and server configuration
OPcache, PHP-FPM settings, sessions, logging, Composer autoloader, current PHP version – basics that are often overlooked.
Load peaks and scaling
Campaigns, seasonal business, nightly processing runs: find bottlenecks before the rush, introduce queues and workers, run load tests.
Shopware environment
Custom plugins, integrations and extensions that slow the store down – measured and fixed without touching the store core.
How I work
- Measure: Profiling (Blackfire, Xdebug, Symfony Profiler), database analysis, server load – with concrete numbers as the baseline.
- Prioritise: The three to five measures with the biggest effect per effort, agreed with you.
- Implement and re-measure: Each measure goes live individually and is measured. You get before/after figures, not gut feelings.
How I work
Three principles that apply in every project
Understand before building
First the short technical assessment: what is the actual problem, where is the lever, what makes economic sense? Then the implementation.
Build instead of forwarding
You talk to the developer who does the work – no handover chain, no black box, clear status updates and early warning about risks.
Hand over instead of holding on
Code in your repository, tests, documentation and a deployment process your team understands. No vendor lock-in – your system does not depend on me afterwards.
Background
Experience at a glance
- Today
- Senior freelancer in ongoing Shopware projects of several agencies and merchants – at home in foreign repos, processes and deadlines.
- Since 2021
- Self-employed as Stefan Pilz Ltd. – remote for merchants and agencies: Shopware 5 and 6, Symfony, migrations, maintenance.
- 2015 – 2020
- E-commerce backends: inventory, PIM and Amazon/eBay integrations for around 3.5 million products, then the Drillisch mobile-carrier web stores.
- Since 2012
- Full-time web developer – first at an agency: websites and stores with Joomla, xt-Commerce and Shopware.
- 2002
- Completed vocational training as a software developer (C/C++). First own PHP websites from 2004.
See current and completed projects Career and stack in the CV
Good fit
Works well when...
- you have a concrete business requirement that standard software does not cover cleanly.
- you need an experienced PHP/Symfony developer who implements directly instead of forwarding tickets.
- you run existing systems, stores or integrations that have to work together.