Soli Deo gloria
A profile picture of Joseph Kerkhof

It's me!

Hello, nice to meet you! 👋 I’m Joseph, a software engineer by day ☀️, and a software engineer by night 🌛. I am saved by grace thru faith ✝️.

Dev Philosophy

You won’t find me chasing new, trendy tools. I’ve come to love mature, well-tested, open source tools and frameworks - professionally and personally! In this way I tend to lean towards technologies like PHP, Laravel, Linux, and vim. Not only are mature tools valuable due to their stability, but their large communities are what turbo-charges them.

At work, I love asynchronous work and remote teams. I’ve been working 100% remotely since 2019. I have the communication skills required to make this work in a distributed team. Jira? Slack hygiene? High quality PRs and reviews? I can do that.

It’s not just about writing code. I have an eye for reducing tech debt, ensuring the code I write is maintainable, efficient, and scalable. All software rots if it isn’t maintained, that’s why a proactive strategy is so important.


“Today is Joseph’s two-year anniversary with Clockwork. In that time, I’ve seen him excel as a software engineer. He’s demonstrated a depth of expertise in LAMP stack web application development, content management systems (Craft, Drupal, WordPress), and building out a series of job portals on PageUp.

He’s also shown a breadth of expertise by inspiring his team as a scrum master, teaching machine learning to other engineers, and most recently, leading a migration from Salesforce Pardot to HubSpot. Joseph sets an outstanding example for his peers and it’s not a surprise why they love working with him. Thank you Joseph for all your contributions these past two years!”

- Vince Cabansag (2021), COO @ Clockwork


Indexing Tough Fields in MySQL

Intro When working with a database, you’re often working with a lot of data, and it’s likely necessary to search through that data quickly. One excellent option to help with this is to use indexes to speed up your queries. But what if you’re working with a field (or multiple fields used together) that are quite long and difficult to index? It is possible to index these fields, but what are the trade-offs and how can you do it effectively?…
Read more ⟶

A Match Made in PHP

PHP is often criticized for being a bad language. Developers often point to the inconsistent function names inconsistent parameter order a history of insecure mysql functions there is a lot of bad PHP code in the world Despite these criticisms (though the last isn’t really PHP’s fault), PHP remains a very popular web language choice. There are plenty of mature , well-tested frameworks to make getting started easy. Composer is an excellent package manager and there are no shortage of testing libraries .…
Read more ⟶

The Dots Find Their Way

It started with boredom as all good things do I was at the end of the summer semester while getting my Masters in Data Science and I was bored and needed a hobby project. Naturally, I was interested in concepts I was learning about in machine learning and I had discovered something called a “genetic” algorithm. A genetic algorithm would “evolve” as each generation passed without having specific instructions on how to explicitly solve the problem.…
Read more ⟶

My Christian Testimony

I was really fortunate to grow up in a Christian home where we went to church almost every weekend. Weeknights in childhood would be filled with church-related activities like Sonlight (a lot like Awana). My parents homeschooled me to have a deeper relationship with me and I always had plenty of social interaction. During one of the Sunday school classes there was a speaker who told us how every one of us are sinners and because we’ve sinned, deserve eternal separation from our Holy Father.…
Read more ⟶