Archive By Category
# AI (3)
- How to automate AI agents to read JIRA tickets and create pull requests - February 23, 2026
- Finding broken migrations with Bisect - December 11, 2025
- AI is a Junior Dev and needs a Lead - August 19, 2025
# Code Review (5)
- Design Decision: Technical Debt in BillaBear - February 10, 2026
- Musings About Code Review - June 24, 2022
- Code Review: How to make enemies - June 9, 2022
- Code Review: Sanity Checks - February 27, 2017
- Code Review: Single Responsibility Principle - February 21, 2017
# Database (1)
- What I learned with a big database - January 15, 2017
# Debugging (7)
- Rejecting rebase and stacked diffs, my way of doing atomic commits - December 13, 2025
- From 204 requests per second to 480 with a single configuration change - July 1, 2022
- OVH & Docker - Failed to register layer: devmapper - February 6, 2017
- Go dep in Docker - February 4, 2017
- RabbitMQ One consumer blocking others - February 1, 2017
- Increase docker device size on Ubuntu - January 30, 2017
- xvfb-run and wkhtmltopdf won't run in Jenkins/Apache - March 29, 2014
# Design Decision (5)
- Design Decision: Technical Debt in BillaBear - February 10, 2026
- Design Decision Separate Dtos - August 28, 2023
- Design Decisions:Throw Custom Exceptions - December 20, 2022
- Design Decisions: Final Classes - December 20, 2022
- Design Decisions: Why use final classes - December 1, 2022
# Design Patterns (1)
- Observer pattern in golang - March 22, 2014
# Developer (1)
- Are you a good developer - January 16, 2017
# Development Process (4)
- The Reality of Not Invented Here - September 4, 2023
- Musings About Software Development Estimations - June 17, 2022
- How much damage can technical debt really do? - October 14, 2021
- The git-flow branch model is waterfall? - March 20, 2014
# Encryption (2)
- The software development community has a naysayer problem - September 30, 2026
- Introducing the Triple Cipher encryption concept - September 28, 2026
# GDPR (1)
- GDPR For Developers By Example - August 3, 2022
# Git (1)
- Rejecting rebase and stacked diffs, my way of doing atomic commits - December 13, 2025
# Go Lang (5)
- Don't couple your Go code to GitHub - September 27, 2026
- Revel : How to use Drone.io for testing - April 27, 2014
- Revel : Force template format - April 26, 2014
- Why Revel? - April 19, 2014
- Observer pattern in golang - March 22, 2014
# Hack Lang (1)
- Hack: Types - November 23, 2014
# Logging (1)
- How to remove secrets from log with monolog - August 1, 2021
# No-Code (1)
- To code or to NoCode? - February 5, 2022
# Non-Technical Founder (4)
- To code or to NoCode? - February 5, 2022
- What is serverless and should you be using it - October 5, 2021
- How we think GDPR will going to change the tech landscape - August 26, 2021
- How to review your MVP project as a non-technical founder - August 8, 2021
# Nutrition (1)
- Quick rundown on BCAAs - April 1, 2014
# Opinion (1)
- The software development community has a naysayer problem - September 30, 2026
# PHP (11)
- Creating Dynamic Billing Workflows With Symfony - August 12, 2024
- Conditional loading of Doctrine mappings - December 1, 2022
- Some Monolog logging best practices - June 3, 2022
- PHP Code Quality Tools - May 13, 2022
- Using Deptrac to maintain code quality - May 6, 2022
- Migrate Entities to Microservice From Doctrine - October 20, 2021
- Is PHP the best beginner language? - October 6, 2021
- How to remove secrets from log with monolog - August 1, 2021
- PHP, isn't that, like really bad?' - July 4, 2021
- Business value over correctness - January 23, 2021
- Symfony Password encoding - June 1, 2015
# Privacy (2)
- GDPR For Developers By Example - August 3, 2022
- How we think GDPR will going to change the tech landscape - August 26, 2021
# Product (3)
- The Reality of Not Invented Here - September 4, 2023
- Is Your It Harmful?: Product Team - September 10, 2018
- Ticket Types - September 7, 2018
# Recruitment (3)
- How to Prepare For a PHP Technical Interview - October 27, 2021
- Hiring Developers: How to avoid the best - September 5, 2021
- Why hacking on production code during an interview is a good thing - March 21, 2014
# Satire (3)
- How to Create Unbreakable Job Security: A Software Developer's Guide to Making Yourself Indispensable - August 4, 2025
- Code Review: How to make enemies - June 9, 2022
- Hiring Developers: How to avoid the best - September 5, 2021
# Security (3)
- The software development community has a naysayer problem - September 30, 2026
- Introducing the Triple Cipher encryption concept - September 28, 2026
- Social Engineering defence - April 14, 2014
# Software Design (10)
- Design Decision: Technical Debt in BillaBear - February 10, 2026
- How to Create Unbreakable Job Security: A Software Developer's Guide to Making Yourself Indispensable - August 4, 2025
- Design Decisions:Throw Custom Exceptions - December 20, 2022
- Design Decisions: Final Classes - December 20, 2022
- Design Decisions: Why use final classes - December 1, 2022
- How to Scale Complex Data - November 3, 2021
- Code Review: Sanity Checks - February 27, 2017
- Code Review: Single Responsibility Principle - February 21, 2017
- Don't return null - November 1, 2014
- How I use Dependency Injection - June 6, 2014
# Software Quality (2)
- PHP Code Quality Tools - May 13, 2022
- Using Deptrac to maintain code quality - May 6, 2022
# Software Testing (1)
- My Opinion on testing code with 3rd party API calls - October 9, 2014
# Symfony (3)
- Creating Dynamic Billing Workflows With Symfony - August 12, 2024
- Conditional loading of Doctrine mappings - December 1, 2022
- Symfony Password encoding - June 1, 2015
# logging (1)
- Some Monolog logging best practices - June 3, 2022
# serverless (1)
- What is serverless and should you be using it - October 5, 2021