So, here's the short version of the last decade or so, ending up roughly where I found myself at the start of 2022. If you're only here for the random technology guides, skip this one, I won't be offended.
I did not come in through the front door
There is no computer science degree at the bottom of this. There's a Diploma of Business, a Diploma of Management and (for reasons that made sense at the time) a Diploma of Quality Auditing.
I have been immersed in computers and technology from since before I can remember; from building a 8086 with my father in the shed and learning about DMAs and IRQs, to building a small computer consultency with my best friend in the early 2000's, to also developing webpages for friends and family in PHP back around the same time. We even dabbled in running a LAN party when those were a craze back then; Fortana LAN.
Originally, I didnt even work in tech, I went the hard road by doing odd jobs, blue collar temp work, anything to pay the bills. Tech was always a passion from building office PCs for friends and family businesses, gaming PC's for myself and friends, home automation, etc.
Once I got serious with direction I naturally gravitated to the tech aspects of the businesses I worked in, until I ultimtely landed a role at a software company in the support department. And as they say, the rest is history...
I mention the quality auditing one because people usually raise eyebrows at it, and they shouldn't. A decent chunk of what I do now is looking at a system somebody else built, working out where the process actually breaks rather than where everyone assumes it breaks, and then writing it down in a way that survives contact with management. That's the job. The Kubernetes is incidental.
AroFlo: learning what "production" actually means
I joined AroFlo in Ringwood in late 2016 as a web developer, on a field service management product with a real customer base and a lot of years already on the clock.
The work that taught me the most there was the unglamorous integration work. I built a credit notes system that had to talk to Xero, MYOB, QuickBooks, Reckon and Saasu — every one of them with its own idea of what a credit note is, its own API mood swings, and its own set of customers who would notice immediately if you got it wrong. I also put localisation through the system so it could handle multiple countries and currencies, which is one of those jobs that sounds like a string table until you're three weeks in discovering every place a date, a tax rate or a dollar sign was hard-coded by someone in a hurry in 2003.
Somewhere in those two years I became the person people came to with the awkward questions. Not because I knew the most (I didn't - that was Bradley 😉) but because I'd read the parts of the system nobody else wanted to open, I tackled the really hard bugs that were in the too hard basket, and the stuff that meant the most to the people putting the most hours on the system. That's still, in my experience, the fastest way to become useful in any organisation.
In late 2018 I moved into a Technical Lead role there, though with any newly created role like that you've done it for much longer than it shows on your resume. This was the first time in the tech space that I was responsible for work that wasn't coming out of my own hands. I ran the backlog of bugs and small improvements, gave stakeholders timeframes I then had to defend, pushed Lambda into the AWS stack to get the heavy jobs off the critical path, and mentored a few juniors at various stages of working out whether they liked this career.
That last part changed my trajectory more than anything technical did. It turns out I quite like it.
Zenu: the stability years
In July 2019 I moved to Zenu in Cremorne as Software Development Manager, with a team of eight across multiple products — including the re-platforming of the third largest real estate portal in the country.
I'll be honest about the state of things when I arrived: we had client-impacted downtime on a nearly daily basis. That is a genuinely horrible way to run a business and an even worse way to run a team, because nobody gets to do any real work when everybody is permanently on fire. Getting that to four nines was the hardest and most satisfying stretch of work I've done, and almost none of it was clever. It was boring things, done consistently: know what's actually breaking, stop guessing, fix causes instead of symptoms, write down what you learned so the next person doesn't rediscover it at 2am.
I also put Confluence in for business processes and documentation, which is not the sort of achievement that gets you a round of applause, but I'd argue it saved more hours than most of the code I wrote that year.
Technically, this was my quiet era, and I look back on it fondly. CloudFormation and Elastic Beanstalk, with the devs running Docker locally. It worked, I understood it end to end, and — most importantly — it stayed out of my way.
I'm not romanticising it. Elastic Beanstalk has a catalogue of sins and CloudFormation YAML is nobody's idea of a good evening. But there's real value in a platform that one person can hold entirely in their head, and I don't think our industry gives that anywhere near enough credit. Complexity has to actually buy you something.
Cm3: and then, Kubernetes
In September 2021 I took a DevOps-centric role at Cm3 in Kew East (then a software division of Greencap), which sits inside a rather larger organisation than I'd worked in before.
This dropped me straight into the deep end of Kubernetes, and with it the entire tooling ecosystem that comes along for the ride: ArgoCD, Helm, cdk8s, Jsonnet and Tanka, the whole zoo. Some of it I've come to genuinely appreciate. Some of it I've written thousands of words about at 11pm out of pure spite, then mellowed on over six months, then posted anyway.
The other half of the job that I didn't expect to enjoy is the money side of things. I'm the person directly responsible for our cloud costs, which means Reserved Instances, Savings Plans, and Spot Instances, but mostly it means being the one who notices that two teams have independently bought the same capability. Nothing focuses the mind on architecture like an invoice.
That transition is really the dividing line in my career so far. On one side, I was the person who understood the whole system because the whole system was small enough to understand. On the other, I'm the person whose job is to know how a dozen managed services misbehave when they interact, because nobody else in the building has the full picture either.
Which is my answer to the "do we even need ops people anymore?" conversation. Managed services didn't remove the need for people who understand databases and networks and storage. They just changed who gets called at 2am, and how much that person has to know before they're any use. We're the DBAs of the modern era, whether we asked for the job or not.
What I'd landed on by early 2022
- Big picture thinking is not a luxury. Ask a squad to solve a problem and they'll solve exactly that problem, with whatever tech is easiest to reach from where they're standing. Multiply by a few projects a year and you're paying for three products that do the same thing, plus the consolidation effort you'll inevitably run in two years' time.
- Path of least resistance is how tech debt gets in the door. Never maliciously. Always reasonably. Always expensive later.
- Cognitive load is a real engineering constraint. If nobody can open one file and understand what a deploy actually does, that's a design problem, not a skill issue.
- Boring, proven technology wins more often than it loses. I've seen NoSQL chosen where a relational database was plainly the answer more times than I care to count.
- Stability is a people problem wearing a technology costume. See: the two years I spent learning this the hard way.
Out of hours
None of this switches off at 5pm, which my partner can confirm.
There's a stack of Raspberry Pi 4's in this house doing real work (k3s cluster anyone?), a home lab that gets rebuilt roughly every time I learn something new (or move house), and a steady rotation of small apps and integrations that exist purely because I got annoyed at an existing one. Most of it lives in code, all code lives in a repo, everything gets a Helm chart eventually (or docker-compose if its on my antiquated Unraid box). I also game (badly) and enjoy indie titles on handhelds, and I'll write about that here too, because it's my blog.
So what is this thing for?
Mostly, it's for the posts I wish I'd found when I went looking. The ones where somebody had already hit the same wall, worked it out from first principles, and written down the actual steps rather than linking a Stack Overflow answer from 2016 that no longer applies.
Some of it will be guides. Some of it will be opinions I've been chewing on for six months and rewritten four times. Occasionally it'll be a review of a gadget I probably didn't need.
Stay tuned, as they say 😉
no comments yet