BatchGeo
Modernizing a 15-year-old data-mapping platform onto Symfony and Doctrine, and shipping AI and security features on top of it.
BatchGeo is a data-mapping product that turns spreadsheet and location data into interactive, shareable maps. Users paste tabular data and get clustered, filterable maps without touching a GIS tool.
This is my current role, at SlideFactory. The work is a modernization programme running alongside active feature delivery — the least glamorous and most valuable kind of engineering.
Modernization
Re-architected a 15-year-old procedural codebase onto a compiled Symfony 7 DI container, attribute-routed controllers, and a full Doctrine ORM entity/repository layer, migrating legacy scripts into typed, dependency-injected, tested services.
AI features
- An in-app AI chat assistant that streams over SSE, with provider-neutral tool use — knowledge-base lookup plus live map-data introspection — behind server-side model routing, role-based gating and cost budgeting.
- An AI-powered document-extraction pipeline that turns CSV, Excel, PDF and DOCX uploads into map data.
Security
Delivered a complete two-factor authentication system — TOTP, email and backup codes — on a new Symfony Security RBAC layer.
Reliability
Established data integrity through phased foreign-key and collation migrations, integrated Sentry tracing, profiling and logging across backend and frontend, and bootstrapped PHPStan to level 5.