I’ve used a wide range of software across my client projects and jobs, as well as delivering training and writing articles.
PHP: My primary language for developing web sites, which I’ve been using for over 15 years (since PHP 4).
Go: My language of choice for developing software that needs to run on different platforms, including Windows on desktop machines.
MySQL: The database engine for nearly every web application I’ve worked with. For new sites I recommend MariaDB as it has a faster development cycle, and the majority of existing sites can be moved over with minimal changes.
SQLite: For very small projects and desktop applications, SQLite is a lightweight alternative to MySQL.
Apache: The majority of sites I work on use Apache with mod_php as the web server.
nginx: For new servers I generally recommend nginx with PHP-FPM unless there is a particular feature that is only available in Apache.
Libraries and frameworks
PhpOffice: For creating Word documents and Excel spreadsheets programmatically. I’ve used this heavily for producing automated reports for a range of audiences, from internal accounts departments to large reinsurers.
Laravel: A PHP framework which makes building web applications easier and quicker. I’ve developed and performed security reviews on existing Laravel sites and built new sites from scratch – including the accounts system which I use to manage my business.
dompdf: Producing PDF files from HTML output, including insurance documents and invoices. All the invoices issued by my business are generated using dompdf.
Git: The only version control system for modern projects. I’ve also delivered training on Git.
Vagrant: A tool for creating local test environments that mirror production, enabling development without risking live data.
Ansible: Configuration management for some of my servers and all of my local test environments. I’ve also delivered training on Ansible.
Linux: All the servers I work with run Linux, usually Debian or Ubuntu. I’ve also been running Linux as my primary desktop environment for over a decade, though I also have Windows and macOS machines for testing.
XML: Used by client APIs I have built and supplier APIs which I have integrated with.
CSV: I have built import and export options using CSV files.
JSON: Used by client APIs I have built and supplier APIs which I have integrated with.
Excel: Using PhpOffice, I have built systems to import and export data using Excel spreadsheets.