Vojtěch Biberle

Resume

I’m a developer and software architect. I design and modernise large backend systems, APIs and data platforms. I still enjoy PHP, but these days I see languages mainly as tools.

I focus on agentic development, agent orchestration and environments for autonomous agent work. Alongside architecture, I work on developer infrastructure and validating results. My own tools and experiments are in projects.

Work experience

Some collaborations overlap.

  1. February 2024 – present

    Freelance – Developer (PHP and other languages)

    I contribute to the architecture and development of Keboola’s data platform, Storage API and related backend services. My work includes migrating legacy Zend Framework 1 code to Symfony with Doctrine and modernising Manage API. I work on Snowflake, BigQuery, Supabase and PostgreSQL integrations, Global Search built on Elasticsearch, and co-created a microservice with a schema-driven API.

    I also work on the move from Azure Pipelines to GitHub Actions, E2E test reliability, PHPStan and coding-style checks with PHPCS and ECS.

    I help prepare the large repository for agentic development through rules, skills and tooling for automated tasks and code review. A colleague and I built CLI tools; I also added kbc llm export to Keboola CLI and used AI to build an API documentation MCP server in Python.

  2. May 2020 – present

    Freelance – PHP Developer

    I’ve worked with Devix for several years, alongside other projects. Some engagements, including ShipMonk and Škoda X, came through Devix or their recommendation. I also spent several years conducting technical interviews with PHP developers. These days, the collaboration is more occasional and includes technical consulting.

  3. May 2023 – February 2024

    Freelance – Developer (PHP and other languages)

    I started on HoppyGO, an application built on Symfony. The project had lacked consistent architectural guidance for some time, so alongside day-to-day backend work I focused on improving its architecture. I also contributed to the analysis and migration plan for moving HoppyGO and ŠkodaGO to Open Mobility Platform.

    On Open Mobility Platform I then started developing in Go, including pricing and vehicle rental services. What I valued most was learning Go and microservice design from experienced engineers. It helped me pick up good practices and avoid a number of common beginner mistakes.

  4. September 2020 – March 2023

    Freelance – PHP Developer

    I worked on processes in a system serving several large warehouses: order queues, a wholesale module and user management for the Locus robotics module. I joined a mature, well-designed project. Some parts initially seemed complex, but at that scale many of those decisions made sense.

    Almost the entire system was a PHP monolith backed by an Amazon Aurora database of around 1 TB in AWS. It reinforced my view that well-written PHP can handle a great deal. I also became much more disciplined about static analysis and type checking. I still use PHPStan today, including in agentic development.

  5. May 2020 – July 2020

    Senior Team Lead

    I led a team of PHP developers working on an automotive platform. It had many tightly coupled microservices, with frequent communication between them. The other parts of the system also depended on a large central Elasticsearch instance. To me, the architecture was unnecessarily complicated and difficult to navigate. I’d call it a complete tangle of microservices.

  6. September 2019 – April 2020

    Freelancer – PHP Developer

    At Footshop I worked on the warehouse system, one module of a well-designed Symfony shop. I handled locating and picking goods and communication with the point-of-sale systems in stores. We used DDD, CI/CD and automated testing.

    The most interesting part was dealing with traffic spikes. Normal demand could be fairly modest, but Christmas or a limited-edition sneaker release changed that quickly. We had to think about performance, bottlenecks and scaling ahead of time. You don’t want to discover an inefficient solution just as everyone is trying to buy that new limited edition.

    Symfony 4 · Doctrine · RabbitMQ · Elasticsearch

  7. December 2018 – July 2019

    Freelancer – PHP Developer

    I worked on a document generation system built on Nette, automated testing in GitLab CI and server infrastructure design. There were about five custom abstraction layers between the framework and the business logic.

    To me, the whole thing was unnecessarily complicated. At the time, practically only one other colleague understood it in depth; finding my way around the architecture was the biggest challenge. Mostly, I learnt not to make things more complicated than they need to be. :-)

  8. March 2015 – November 2018

    BIG Ideas Center

    Freelancer – PHP Developer

    For Sklizeno I developed an online shop, a B2B application and kiosk ordering for the MyFood restaurant on Holandská in Brno. The three applications had their own frontends and backends over shared data. I worked with Zend Framework 2 and on the migration to version 3.

    The WinShop integration was particularly interesting: it only supported direct database access. We didn’t want it accessing the shop’s production database, so I designed and built a separate database synchronisation layer. We exported the data WinShop needed and imported warehouse updates. When WinShop produced bad data, it didn’t affect the production shop; at worst, synchronisation stopped. Well-designed timestamps made it straightforward to repair and resume.

    I also worked on RabbitMQ queues for EET and email, and maintained an Android tablet application. This was where I introduced Docker as the development environment.

    Zend Framework 2/3 · Doctrine · Sass · Vue.js · Riot.js · jQuery

  9. July 2013 – February 2015

    Backend PHP developer

    My first full-time job. I developed eBRÁNA System, now eSYSTEM: originally an internal application covering email, tasks, time, budgets, teams, calendars and website building. It was later sold to other companies too. I worked on integrations, file storage, static content and remote module installation.

    Developers were working on shared drives over SMB. A git pull in the morning, then a commit and push in the evening, often including unfinished work. I introduced Vagrant and local stacks with a database and web server. Everyone could have their own environment, and Git finally made sense.

    I set up CI with GitLab, Jenkins and PHING, introduced automated testing, administered Linux servers and trained colleagues in Git, design patterns, SOLID and DRY. I also helped recover a failed MySQL server holding the company’s data over roughly 36 hours; the backups were damaged too, but we managed to restore the data.

  10. November 2010 – October 2013

    Server Administrator · Faculty of Electrical Engineering and Informatics

    At the Faculty of Electrical Engineering and Informatics I managed VMware and around 30 production and teaching Linux servers. Moodle was the main part of the job: environment setup, operation, backups and helping lecturers build courses. I also wrote scripts to simplify the creation of new Linux virtual servers.

  11. October 2009 – January 2010

    Practical classes · Faculty of Electrical Engineering and Informatics

    I taught several practical classes in Apache web server administration and building pages with HTML and CSS, including PHP and Oracle work. I occasionally helped teach Linux system administration too.

Expertise & technologies

Agentic Engineering

I design environments for autonomous agent work, task breakdown and model orchestration. I connect rules and tooling with automated checks, independent review and human approval; I’m still experimenting with fully autonomous coordination between these parts.

Software Architecture

I design backend systems, APIs, microservices and data pipelines, including system interfaces, DDD and incremental modernisation of legacy applications.

Backend Development

I’ve used PHP since 2002 and still enjoy it. I work mainly with Symfony and Doctrine, using other languages as the task requires. Alongside design and implementation, I work on testing and incremental modernisation of running applications.

PHP · Go · Symfony · Doctrine · Composer · RabbitMQ

Databases & Data Platforms

I work with data warehouses and operational databases: integrations, data models, querying, optimisation and separating systems so that a faulty integration doesn’t put the whole application at risk.

Snowflake · BigQuery · PostgreSQL · MySQL / MariaDB · Amazon Aurora · Supabase · Elasticsearch

Infrastructure & Developer Tooling

I build isolated development environments, Git worktrees, CLI tools and CI/CD. I administer Linux and containers, work on E2E test reliability and use static analysis and code review. I need to validate the result against the brief, rather than rely on green checks alone.

Linux · Docker / Podman · Git · GitHub Actions · GitLab CI · PHPStan · PHPCS · ECS

Earlier technologies & experience

I also have experience with Laravel and CakePHP, JavaScript, HTML and CSS, jQuery, Vue.js and Vuex, Riot.js and Sass. Earlier PHP tooling includes PHING and robo.li.

Basic knowledge of SQLite and Microsoft SQL Server; academic Oracle experience from four semesters covering querying, database design and data warehousing. I have also worked with Memcache.

OOP, MVC, design patterns, SOLID and DRY, as well as Unified Process and UML. Alongside Git, I have experience with SVN, administering GitLab and Jenkins, including network repositories and automated deployment.

Education

  1. October 2008 – September 2012

    Information Technology · Master’s degree (Ing.)

  2. October 2005 – September 2008

    Information Technology · Bachelor’s degree (Bc.)

  3. September 2001 – June 2004

    Information Technology · Secondary education

Community & organising

  1. December 2012 – present

    Developer community & event organising

    I’m involved in the developer community and event organising through GUG.cz. I started with GDG Pardubice and later became involved in GDG Brno and GDG Cloud Brno. In 2013, I organised DevFest in Pardubice.

  2. August 2010 – March 2011

    CareerDays 2011 IT Coordinator

    I handled IT infrastructure, Wi-Fi and panel discussion streaming for the Career Days conference. I built the conference system for company meetings, appointment booking, student registration and on-site information.

  3. March 2008 – June 2011

    Local Committee President & Vice-President Incoming Exchange

    I led the local committee and team, planned its activities and reviewed progress. I represented AIESEC Pardubice and built relationships with new partners.

A little more about me

Czech is my native language. I use English in conversation, writing and when reading technical documentation.

I hold a category B driving licence and own a car. I also ride a bike and a scooter, go rollerblading and snowboarding, and occasionally get behind a wheelbarrow.

I like computers, new technology, science fiction and fantasy in books and films. And my wife, daughter and dog.

How it all started

When I was about fourteen, Dad bought our first home computer because he needed it for his design work. I discovered a world where, if the computer made a mistake, it meant you’d made one. I was hooked. I started with simple .bat scripts, copied BASIC listings from ABC magazine and tried writing my first simple games.

I then went to ISŠ Purkyňova in Brno to study information technology and programming. That’s where I got hooked on PHP. I built my first websites, wrote a few desktop applications and picked up small website jobs for friends and people I knew.

I’ve been programming pretty much ever since.