A little about me
I Want To Give You Peace of Mind
I’ll be honest. I do want to give you peace of mind. You need someone who knows what they’re doing with PHP and all the related technologies to get the job done. But someone like that can be hard to find — especially one who can communicate as well.
That’s where I come in. With over 15 years of profession software development experience, specialising in the web — and PHP in particular — I’m ready to take on your project, or enhance your team. Feel confident that you’re hiring the right developer, and be able to focus on your business.
The Short Version
I’m originally from Queensland, Australia, but now living in Wendelstein, (just outside of Nuremberg), Germany. I’ve been developing web-based software since 1999 and just love writing it, any chance I can get. It might seem strange, but I just love to write and debug code because it’s both personally satisfying, and because I’ve seen just how much well designed and developed applications have helped people.
When I’m not writing software, I regularly share what I know — and what I’m continuing to learn — about web development on my blog, YouTube channel, podcast, and products. I’ve given talks at international conferences and user groups. I also hang out on Twitter. Come say hi!
The Longer Story
The path that my web development career took happened almost by accident. I studied C and Java at university and loved the way that they worked, and imagined that that’s what I’d be doing till my career ended.
However, very early in my career, I was working for an engineering firm in a small town, and the boss asked if I knew anything about PHP and MySQL. I said that I’d not heard of PHP, but that I did had worked with MySQL. After that came: “Well, are you keen to learn them better — because no one else is!”
I said “yes”, and then dove in and learned all I could about them. And with that, my life changed. Bear in mind that this was the time of PHP and MySQL 3.x.
Since then, it’s been a rich and rewarding journey of creating all manner of web-based software, primarily with PHP, in three countries: Australia, the United Kingdom, and (currently) Germany.
I’ve written web-based apps and services, largely in PHP, against all manner of databases, including MySQL, PostgreSQL, Oracle, and MSSQL Server and queuing, caching, and logging servers (both self-hosted, and cloud-based), to name just a few technologies.
I never realised at the time that the decision I had just made would lead me to where I am today. Like many others, I saw a world of possibility open up the more I discovered and embraced open source.
I’ve had the good fortune to learn about and use a rich tapestry of tools and languages, including Docker, Python, Java, IPTables, Apache, NGINX, Fail2Ban, Snort, ELK, Bash and Zsh, Curl, and so many other fantastic tools.
So many options. So much freedom. So many possibilities!
When not creating software or talking about it, I love spending time with my wife and family, and trying to make the most of German weather. I miss the warmth of sunny Queensland, Australia.
A Little Bit Too Much Information
My first two computers were Apples; the first was an Apple IIc and the second was an Apple IIe. Yes, you can program on those. My second computer I bought for myself was shortly after Windows 95 came out — and cost me over $5,000. It was, seemingly, a lame duck of a computer that, when combined with Windows 95a, crashing, what seemed like, constantly.
From that experience, I went desperately looking for something stable, something that worked. I found Linux (starting with Red Hat 6.0), and have never looked back. I discovered all manner of software available for free, including compilers (including Python, C, and Java), text editors, office suites, you name it.
My first (after getting back in to software development) most satisfying experience and fond memory of software development was a small networking client/server app that I wrote on Linux, using a custom protocol. Sure, it didn’t do a lot, but it worked, gave me my first taste of network programming, continued to keep the flame of my love of software development roaring, and left my father wondering what I was so excited about.
Sure, it wasn’t the sleekest of desktop experiences, but it worked, the documentation was available in abundance, and I could just get on and get my work done. Since that time I’ve written code in PHP, Python, Java, Ruby, Kotlin, Bash, Go, Prolog, C, C++, and a handful of other languages. Am I a master of any one of them? No. Do I need to be? Not so far. Would I like to be? No, but I’m enjoying progressively getting better at them all, slowly but surely.
The first compiler that I remember using was Borland Turbo C++ on Windows 95a, for the short period of time that I used that operating system. After that I used open source compilers. I’ve built networks, setup DNS, DHCP, queueing, caching, logging, and web servers, configured firewalls, and done all manner of things in Linux, including starting down the certification track.
In addition to all these things, I love to write, mainly blogging, but also ebooks. I’ve been blogging for over 8 years, and have written for such sites as Sqreen, Twilio, PHP Architect, Codeship, Loggly, ownCloud, Pantheon, and Tideways.
I also love to walk, cycle, wander, explore other cultures, and try new foods. I love spending time with my young family, listening to good music, talking with friends and family until we all get too tired and have to go to sleep.
I’m a native English speaker, but am fluent in German, and have learned the basics of French and Czech (believe it or not). I’m intending to pick up those languages, just as soon as I’ve sufficiently mastered German.
- PHP, Go, Bash, TDD, & BDD
- MySQL, PostgreSQL, & MSSQL Server
- Docker, & Git
- AsciiDoc, Antora, reStructuredText, Markdown, & Vale
Frameworks and Tools
- Slim, Laminas, Mezzio, Zend Expressive, Zend Framework, & Laravel
- PHPUnit, Codeception, GoConvey, & JUnit
- Pico, Nano, & Vim
Linux Distributions and Tools
- Alpine Linux, Debian, Linux Mint, & Ubuntu
- Apache, NGINX, ufw, & iptables