From ERP Architect to Self-Hosting Enthusiast
The Journey from ERP Developer to Self-Hosting Enthusiast
If you'd told me fifteen years ago that I'd end up running a home server, building Docker containers, and writing blog posts about it, I'd have said you were dreaming. But here we are. This is a bit of a yarn about how I got here - from enterprise software to side projects and everything in between.
Where It All Started
I got into software development because I've always been fascinated by making computers do what I want them to do. Even as a kid, the idea that you could write a few lines of code and make something happen on screen was magic. That curiosity never went away - it just turned into a career. Before I knew it I was knee-deep in enterprise resource planning systems, writing business logic and solving problems that no one outside the industry would find remotely interesting. But I loved it.
As a software engineer and architect, I've worked across a range of development languages and tools over the years. My primary focus has been building solutions around ERP platforms, working with languages purpose-built for business logic as well as general-purpose languages like C#. The work isn't glamorous, but when you build something that saves a warehouse team two hours a day or stops an accountant from pulling their hair out at month-end, that's a pretty good feeling.
Customisation Is Where It Gets Fun
Out of the box, most ERP systems do about 80% of what a business needs. It's that last 20% where things get interesting. Over the years I've built up a solid background in developing, customising and extending ERP platforms - creating add-ons and tailored solutions that make the software more flexible and genuinely useful for the people who rely on it day to day.
Every business is different. The way a manufacturer in Melbourne manages their inventory is nothing like how a distributor in Perth does it. Cookie-cutter solutions only get you so far. The real value comes from understanding the business, understanding the platform, and building something that fits like a glove. That's always been my approach - listen first, build second, and make sure the end result actually makes someone's life easier.
Integration - The Bit That Never Sleeps
With everything shifting toward cloud and connected systems, the need for proper integration between platforms is bigger than ever. Gone are the days when you could get away with a standalone system that lives on a server in the back room. These days, everything needs to talk to everything else - your ERP to your CRM, your warehouse to your ecommerce platform, your accounting system to your bank.
Designing solutions that let systems talk to each other across locations and platforms is a core part of what I do - whether that's REST APIs, JSON, XML or a combination of the lot. I've spent a fair chunk of my career designing and maintaining software built specifically for cross-platform, cross-location integration.
It's not always straightforward. You're dealing with different data formats, different authentication methods, different ideas about what a "customer" even is. But when you get it right and data flows seamlessly between systems without anyone having to manually export a CSV and email it to someone - that's when you know you've done your job properly.
Building Tools That People Actually Use
Earlier in my career I built a developer productivity tool that became a central hub for managing ERP environments and streamlining project workflows. It started as a small utility to scratch my own itch - I was sick of jumping between different tools and environments just to get basic tasks done. So I built something to bring it all together.
It was designed to be useful regardless of your role - developer, consultant or end user - and it ended up being picked up by thousands of users worldwide. That was a bit of a surprise, honestly. What started as a side project turned into something that people genuinely relied on to get their work done faster and with less fuss.
That experience taught me a few things. First, if you're frustrated by a workflow, chances are other people are too. Second, developer experience matters just as much as end-user experience. And third, sometimes the best tools are the ones that just get out of your way and let you focus on the actual work.
From Enterprise to Side Projects
Working in enterprise software is rewarding, but it can also be a bit rigid. Everything goes through change management, everything needs sign-off, and sometimes you just want to build something without a twelve-page requirements document. That's where side projects come in.
Self-hosting scratched an itch I didn't know I had. Setting up a Plex server led to Docker, which led to reverse proxies, which led to building my own monitoring tools. Before I knew it, I had a full infrastructure running at home and a couple of applications that other people were actually using.
The skills transfer more than you'd think. Designing a REST API for an ERP integration isn't that different from building one for a self-hosted application. Understanding how systems communicate, how data flows, and how to make things reliable - that stuff carries over no matter what you're building.
What Drives Me
At the end of the day, I'm a builder. Whether it's an enterprise integration that connects three systems across two countries, or a side project that monitors my Plex server, the motivation is the same - create something that works well, looks decent, and makes someone's day a little bit easier.
I reckon the best software is the kind you don't really notice. It just works. No friction, no confusion, no wondering where that button went. That's the kind of outcome I'm always chasing - tools and solutions that deliver a ripper user experience without making you read a manual first.
If you've made it this far, cheers for sticking around. If you're working on something similar - whether it's enterprise software, side projects, or just trying to figure out why your Docker container won't start - flick me a message. Always happy to have a yarn.