Alex Miles
Verified Expert in Engineering
PHP Developer
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
Experience
Availability
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
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.
Freelance Full-stack Developer
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.
Contract PHP and Laravel Developer
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.
Senior PHP Developer
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.
Experience
Warehouse Management System
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/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/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.
Skills
Libraries/APIs
Doctrine 2, Vue
Tools
Git, PhpStorm, Vagrant, Docker Compose, Ansible, Google Kubernetes Engine (GKE)
Languages
PHP, SQL, HTML5, CSS3, Elm, JavaScript, HTML
Storage
MySQL, MariaDB, Databases, Propel ORM, Database Migration
Frameworks
Laravel, PHPUnit, Symfony, Swagger, Bootstrap 3
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
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring