Alex Miles, Developer in St Albans, United Kingdom
Alex is available for hire
Hire Alex

Alex Miles

Verified Expert  in Engineering

PHP Developer

Location
St Albans, United Kingdom
Toptal Member Since
September 12, 2022

Alexander is an experienced PHP developer passionate about building high-quality web applications. He has worked with PHP since 2001, collaborating with boutique web agencies, large eCommerce companies, and many freelance clients, including on projects for the public sector. Experienced with many different platforms, Alexander has recently specialized in Symfony and Laravel and is willing to leverage his expertise while working on new challenging projects.

Portfolio

Virgin Media Business
Laravel, PHPUnit, Docker, PHP, SQL, MySQL, Docker Compose, Git, Databases...
Rebecca Jade Beauty
PHP, JavaScript, CSS3, HTML5, Propel ORM, Event Sourcing
CIRCA5000
PHP, Laravel, Ansible, PHPUnit, Test-driven Development (TDD), APIs

Experience

Availability

Part-time

Preferred Environment

Ubuntu, PhpStorm, Slack, PHP, SQL, Docker, MySQL, Git, Docker Compose, MariaDB

The most amazing...

...solution I've developed is an inventory management system inspired by event sourcing architectures, which tracked a complete stock quantity and value history.

Work Experience

PHP Developer

2020 - 2022
Virgin Media Business
  • Assumed the ownership of two key Laravel JSON API microservices. The network model service was the source of truth for user configuration, relying upon the rest of the microservices in the application and the organization management service.
  • Articulated closely with the design team to clarify and improve designs, deliver complex new features, and agree upon amendments to the design where ambiguities or oversights were the underlying cause of bugs.
  • Identified and resolved several architectural issues with the codebase, such as global scoping issues causing bugs and thwarting PHPUnit testing.
  • Implemented changes to development Docker containers, enabling the flexible use of Xdebug through the HTTP API interface and when running application commands on the console. Added documentation to help others make use of this.
  • Led a small team to improve the test coverage of existing API endpoints and wrote features to simplify and speed up writing tests and assertions.
  • Identified and resolved many previously unknown and unreported bugs.
  • Reduced the number of reported bugs by using automated tests and judicial refactoring. The component fell from being one of the top sources of reported bugs (over 80%) to one of the lowest (less than 10%).
  • Identified mechanisms in the team’s planning process that inadvertently contributed to undermining its on-time delivery capability and articulated with the project manager to find ways to avoid it.
  • Articulated with the lead PHP developer to improve code quality across the team using code reviews and tooling, such as PHP Insights, and authoring a best practice and team code standard document to help with the process.
Technologies: Laravel, PHPUnit, Docker, PHP, SQL, MySQL, Docker Compose, Git, Databases, Google Kubernetes Engine (GKE), Microservices

Freelance Full-stack Developer

2017 - 2020
Rebecca Jade Beauty
  • Liaised with stakeholders to understand and develop new requirements and deliver features as part of an existing custom CRM they use to manage their business.
  • Implemented a stock management system inspired by event sourcing. It used an event-store-like stock ledger to track stock quantities and values, as well as projections to provide usable information for views.
  • Set up a Twilio integration and appointment reminder system, drastically reducing the number of missed appointments.
  • Delivered improvements to the scheduling system allowing automatic detection and helpful feedback for users about scheduling clashes when booking appointments.
  • Set up a Mailchimp integration, allowing salon customers segmentation based on custom details such as their last visit.
  • Implemented various other straightforward features, including a gift voucher system using 2D barcodes, a waiting list system, a system for managing customer consultation documents, and multiple data reports.
Technologies: PHP, JavaScript, CSS3, HTML5, Propel ORM, Event Sourcing

Contract PHP and Laravel Developer

2019 - 2019
CIRCA5000
  • Helped maintain an existing Laravel API service and worked with colleagues to develop a replacement, delivering new features and improvements. These APIs were the back end of the company's core investment app.
  • Collaborated with the tech lead to plan and execute data migration and the deployment of the API service replacement. Completed the migration within the allotted maintenance window, causing minimal disruption for the thousands of active users.
  • Developed Ansible Playbooks allowing the team to quickly build, rebuild, and manage servers in different cloud environments.
  • Identified and resolved various performance issues with the API. These included identifying and resolving a high latency round-trip request between physical data centers and a proxy misconfiguration causing unexpected request throttling.
  • Upgraded the Laravel API service from version 5.8 to the 6.0 LTS version that had recently been released.
Technologies: PHP, Laravel, Ansible, PHPUnit, Test-driven Development (TDD), APIs

Senior PHP Developer

2012 - 2016
VioVet
  • Built a new picking and packing system that allowed the warehouse team to increase order shipment from 1,000 to 3,500 orders per day without significantly increasing headcount.
  • Genericized code for warehouse picking processes, allowing common tasks to be easily reused as building blocks to create new warehouse processes and enabling their quick implementation when possible efficiency gains are identified.
  • Built a full eBay integration, allowing the business to list products from the existing catalog, compete on prices, and fulfill orders without introducing a new administrative workload.
  • Launched a new customer-facing site for the business, significantly improving page response times and SEO. I later redeveloped it to accommodate a business shift towards a mobile-first strategy.
  • Mentored the team in transitioning from SVN to Git, helping team members better understand Git internals and how to manage their branches and working directories.
  • Introduced an automated continuous integration system using TeamCity, Docker, PHPUnit, Codeception, Selenium2, and WebDriver. Developed acceptance tests for key customer journeys, ensuring broken code wouldn't get deployed to production.
  • Solved a complex, intermittent SQL transaction bug occurring since a Galera Cluster for MySQL was introduced. Used file logging, Bash, and Rollbar to identify and correct mistaken assumptions about when SQL transactions might fail.
Technologies: PHP, SQL, MySQL, MariaDB, HTML5, CSS3, JavaScript, Galera Cluster, Databases

Warehouse Management System

A PHP and MySQL application for managing warehouse inventory, order picking, and packing processes.

I was part of a two-person team dedicated to building a more efficient replacement system that utilized trolleys for order picking, allowing staff to pick and pack more orders in a day.

Initially, we worked together to define key terms and design processes before dividing the main elements for development. I developed a deterministic method of guiding picking processes with the trolleys, enabling the detection of changing conditions between actions so the picker could take the appropriate action without the out-of-sync and competing sources-of-truth issues we experienced with the previous system. Genericized this approach to be used with simple discrete actions as building blocks to write new processes quickly.

I also built a modular order packing prioritization system to decide the following order to be packed, allowing modules to be easily changed based on requirements at the current time of day.

We delivered the new system on time and saw a roughly 350% improvement in the peak number of orders shipped per day without significantly increasing headcount.

Beauty Salon Inventory Management System

https://www.rebeccajadebeauty.co.uk/
This system was built as a new prominent feature within an existing salon management application. It was built in PHP using Propel 2 and some Symfony components. Inspired by event sourcing architectures, the system fundamentally relies on a single append-only stock ledger table that tracks changes to stock levels and values. Other tables are essentially projections of this data. The project budget didn't allow for a fully-fledged event sourcing system. However, the approach still allowed the salon to reap some of the same benefits, such as quickly rebuilding projection tables when a bug was resolved soon after adoption.

Used aggregate and sortable Propel behaviors to speed up development and manage some projected data automatically. It includes a configurable stock alerts system staff can use to warn of low stock levels and prompt a reorder from suppliers. It also integrates with the existing overall management application's permission system to restrict who can perform certain operations, such as manually adjusting stock levels.

The system tracks over £50,000 worth of stock in production across around 900 different stock levels stored in 25 locations and dramatically reduces the effort required for stock checks.

Major Upgrade of Back-end API for Mobile App

https://circa5000.com/
As a contractor, I worked closely with the tech lead at Tickr, now CIRCA5000, to plan and execute the deployment of a replacement for the API that powers their flagship mobile app. At the time, the app already had thousands of active users, and the nature of the app—financial investments—and the business's aggressive growth strategy meant there was little room for extended downtime or ongoing issues.

The project involved a lot of preliminary testing, planning, and executing a complex, multi-stage process on the day, including dramatic data migration. We also worked with the app team to make changes ensuring forward compatibility with new API responses after the switch and continued backward compatibility should a problem have forced a rollback. Used Ansible Playbooks for most server tasks and a PHP script for the data migration element.

In the event, our planning and preparation proved their value, and the upgrade went very smoothly, completing well within our allotted 3-hour maintenance window, and no rollbacks were necessary.

Languages

PHP, SQL, HTML5, CSS3, Elm, JavaScript, HTML

Tools

Git, PhpStorm, Vagrant, Docker Compose, Ansible, Google Kubernetes Engine (GKE)

Storage

MySQL, MariaDB, Databases, Propel ORM, Database Migration

Frameworks

Laravel, PHPUnit, Symfony, Swagger, Bootstrap 3

Libraries/APIs

Doctrine 2, Vue

Paradigms

Test-driven Development (TDD), Event Sourcing, DevOps, Microservices

Platforms

Docker, Ubuntu

Other

Domain-driven Design (DDD), Galera Cluster, Web Applications, System Design, Barcode Reader, UPC & Barcodes, APIs

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring