One day in your development career, you will receive a quest for the holy grail: an offer to work at a startup.

Holy Grails come in all shapes and sizes.

Hard work awaits, of course. But so does the dream: cashing in your shares in the next unicorn company, which will set you up for the rest of your life. (Or at least allow you to put a deposit on a small house in San Francisco or Sydney or Vancouver or London.)

Our industry is built on startups and dreams. On the stories of basement startups that became tech icons. From the early days of Jobs & Wozniak, Gates & Allen, to the LinkedIns, Atlassians, Stripes and Airbnbs of the world. They built the world that we live in, the…

I made a thing. My soon-to-be-six-year-old asked for an Among Us cake so I made it. It’s ugly and imperfect, but I made it.

I made a thing.

It is ugly, but I made it, and it is mine.

My nearly-six-year-old requested an “Among Us” cake, and I accepted the challenge.

Yeah, it’s messy. I am no Reynold, no Zumbo, no Martha Stewart. I am no master pâtissier. My cake belongs on Nailed It, not Masterchef. Though I gave up on perfectionism a long time ago, I am still painfully aware the lines aren’t straight, the icing was too thick and then too thin. Though the visor isn’t bad, the sides are pretty rubbish.

It’s not perfect.

It doesn’t matter. It shouldn’t matter.


Here is an entirely subjective list of things that made me better at my job as a developer. No two careers are the same, so your mileage may vary. But these things have all helped me over the last two decades of my career. Maybe they’ll help you.

Learn to touch type

Two-fingered typing (Stock Media)

Look, I know very good programmers who type two-fingered. But for me, looking for keys on a keyboard is just not something I think about anymore. The location of every key — not just the 26 alphanumerics but all 104 keys — are programmed into my muscle memory, including keystrokes, key combinations…

An array of solar panels (photo: American Public Power Association via Unsplash)

In my corner of web development, we expect web developers to be familiar with both PHP and Javascript. I’ve found this one simple question tells me if a developer truly understands the tools they use every day:

Q: What are the similarities and differences between arrays in Javascript and PHP?

It’s one thing to be able to cut code. It’s another thing entirely to be able to understand the bones of the languages you work with.

This single question tells me volumes. See, almost every major programming language has arrays, and it would be easy to assume that they’re all…

Photo by Charles 🇵🇭 on Unsplash

I am a horrible, horrible human being, so I really enjoy t̶o̶r̶t̶u̶r̶i̶n̶g̶ interviewing other developers. The technical questions can be fun, but my favourite questions are the ones that help me figure out what this developer is like as a human being. Are they someone I would enjoy working with for 40 hours a week for the forseeable future?

There are lots of good technical questions out there. Here are my soft-skill questions so I can figure out if a developer is someone I want to work with.

Troubleshooting Your Grandma

Me: Is your grandmother good with computers?
(This setup question is here because…

Nail Polish and Varnish (Image: Pixabay)

At Allure Media, I helped oversee four high-traffic WordPress news sites.

A critical piece of technology that kept our server stack stable was our reverse proxy. We used Varnish, others use Nginx, and there are other options available out there.

A reverse proxy caches our responses. That means the first request to a web-page will be handled by the standard Apache/PHP/MySQL backend and stored in RAM by Varnish, and the next hundred will all be served from Varnish’s cache. The ninety-nine requests will be lightning-fast, even if the first is an extremely slow request.

This system presupposes several important things…

I am a senior PHP developer. It’s what I tell myself, anyway.

That means I should know how to do stuff life this.

I had to handle a file-upload in a project recently, without the hand-holding of a framework, and I found it harder than I remembered.

Here’s all the bits and pieces I nearly forgot about.

Is PHP going to let you upload your file? How big a file can I upload?

Check the following section in your php.ini file and check your settings.

; File Uploads ;
; Whether to allow HTTP file uploads.
file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not

This article began life as SydPHP Meetup talk on 30th May, 2019, hosted by the fine folk at Deputy. The technical demo had “technical difficulties” so I wrote this up so you could play along at home.

If you’re impatient and want to skip the introduction, this article contains snippets on: Scotchbox, WPDistillery, Bedrock, WP-CLI, and Corcel.


Life is good for the modern PHP developer. Our discipline has come a long way since spaghetti code and PHP scripts that posted back to itself and the CMS wars of the early 2000s. We now have Composer and autoloading and name-spacing. We…

For a recent project, I had to generate JSON files in a sensible, structured, and extensible way.

In the course of doing so, I developed a neat bit of syntactic sugar that saved me lots of lines of code, and made my PHP a lot more readable.

The End

So here’s my neat little bit of syntactic sugar.

class JsonThing {public function __get($key) {
$this->$key = new JsonThing();
return $this->$key;
public function __set($key, $value) {
$this->$key = $value;
}class SomeOtherClass extends JsonThing { ... }

The Beginning

Why is this great? …

Series Introduction: This is a series of articles based on the some of the minor characters in the books of 1 & 2 Samuel in the Bible. On one hand, they are margins in the footnotes of history. On the other hand, these are real people who lived real lives that are too easily passed over.

In the middle of David’s reign, his son Absolom seizes power and usurps the throne. Events here are pivotal. Absolom has the backing of the Judahite stronghold Hebron, the support of the common people and power in Jerusalem. …

Haoran Un

Code geek. Board game geek. Coffee geek. Bible geek.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store