Toggle sidebar

Theme

Sitemap

Find your way around.

Browse the public pages, writing, and open source projects available on myke.codes.

XML sitemap

Blog posts

Practical notes on Laravel, PHP, developer tooling, and delivery.

Azure DevOps vs GitHub in 2026: Which Should Developers Actually Use? A practical 2026 comparison of Azure DevOps and GitHub for developer teams: repos, CI/CD, boards, pricing, and when to combine both platforms. Securing SSH Access for Multiple Developers Secure SSH access the right way for multiple developers. Learn how to use individual SSH keys, disable password logins, restrict access, and harden your Linux servers without slowing down your team. GitHub Actions CI/CD for PHP 8.3 with Zero‑Downtime Deploys Configure a practical GitHub Actions pipeline to build, test, and deploy a PHP 8.3 app over SSH with rsync and zero downtime symlink releases. XMLRPC in WordPress: A Security Risk You Should Disable Enhance WordPress security and protect against brute force attacks by disabling XMLRPC.php. Learn about the risks associated with XMLRPC vulnerabilities and why using security plugins or leveraging Cloudflare's powerful features can safeguard your website. Discover the benefits of Cloudflare's CDN for WordPress and how it optimizes performance while fortifying your site's security. Take control of your WordPress site's security and boost its SEO with these essential tips How to Run Laravel Queues in Production Using Supervisor If your Laravel queue works locally but nothing happens in production, it’s almost always because there’s no worker running. queue:work needs to run continuously, and SSH sessions don’t count. The correct solution is Supervisor. Install Supervisor On Ubuntu: Bashsudo apt update sudo apt install supervisorsudo apt update sudo apt install supervisor Make sure it's running: Bashsudo systemctl status Setting Up a Microsoft Teams Room on a Budget in 2025 Official Microsoft Teams Room setups can cost thousands, with even the cameras alone pushing £800+. But what if you could achieve the same professional, reliable setup for a fraction of the cost? That’s exactly what I set out to do. By repurposing a Dell Micro PC, a second-hand 4K TV, and some budget-friendly peripherals, I built a fully functional Teams Room for just over £450. In this guide, I’ll walk you through the exact steps - from setting up Microsoft 365 to configuring the hardware - so you can create your own cost-effective, business-ready conferencing space without breaking the bank.

Projects

Open source packages, product systems, and selected commercial work.

Inkstone - Laravel-Native Static Documentation Generator Transform your Markdown files into a premium static documentation site. Built specifically for the Laravel ecosystem with zero-config, GitHub integration, and executable demo blocks. Laravel Decorators A Laravel package that brings Python and TypeScript-style method decorators to PHP 8.2+ using native Attributes and the Laravel IoC container — stack #[Log], #[Cache], #[Retry], #[Transactional], and more on any service method with zero boilerplate. Laravel DSQL A small, focused Laravel package for building dynamic, user-driven database queries safely from structured instead of rolling query logic for every filter form. Laravel DSQL lets you accept user input from UI or APIs and translate it into real Eloquent/Query Builder queries with guardrails. Standalone & Laravel Currency Casting A lightweight PHP currency casting package for turning raw money values into consistent, predictable currency objects and back again. It works cleanly in Laravel, but it’s not limited to Laravel applications. Laravel Event Log A high‑performance, structured, asynchronous, relational event logging package for Laravel. Designed for auditability, traceability, and cross‑service correlation without ever dumping raw payloads or PII into your database. PHP Duration A lightweight PHP package for working with time durations in a consistent way, with support for parsing, converting, and formatting duration values. This package is designed to keep duration handling simple and reusable across Laravel and standalone PHP projects. It helps you avoid repeating custom parsing logic for things like minutes, seconds, human-readable strings, or time stamps coming from forms, APIs, or internal tools. Laravel Limit Columns Limit the number of columns when using Eloquent ORM to avoid SELECT * Laravel Stub Maker Quickly and descriptively create generator Artisan commands for your Laravel project. PHP GraphQL Easily build GraphQL statements from within a PHP project (framework independent).