Can you tell us a little about yourself?
I’m about 28 years old, living and working near the city of Cape Town. It may sound familiar because South Africa hosted the previous World Cup, and some of the games were played in Cape Town.
I work for a company called Connect. It’s part of an international company called Joe Public. Connect is based in Cape Town, and we have around 15 people, 5 of which are developers.
I’m married to the lovely Mrs Liz and have 2 kids; Elijah and Naomi. We live on a farm outside the city.
How’d you get into web dev?
I was never really into web dev. I was fortunate to have had access to computers from a young age, but my interest in them was purely for playing games.
What I wanted to do was to build electronic devices – robots and such. When I was about 8 years old, my grandfather passed away; leaving me a huge assortment of electronic components. I would spend all my time sifting through them and trying to combine them in ways that they would interact to form larger machines.
In truth, I really had no idea what I was doing, but sometimes I made something work. The process is in many ways similar to programming, and the feeling I got when something worked is comparable too!
My dad’s friend had a website, so he arranged for me to just sort of hang around the agency that maintained it. This was just before I finished high school.
I visited their office for a few weeks, and after a while they gave me a job (though I’m not really sure what it was for). I knew nothing about making websites. I still sometimes feel like that. Just me bumping components together until they do something useful.
Do you remember how you first came across Laravel and what made you start using it?
I was introduced to Laravel by my friend, and colleague, Wayne Berry. Until then I had been making websites using Zend Framework, CodeIgniter and Plain Ol’ PHP.
I didn’t want to start using it because it reminded me of CakePHP. With all the statics and a command-line tool; I half imagined it would lead to the same sort of headaches I had experienced before. I was quite wrong.
Thanks to the wisdom of folks like Dayle Rees and Jeffery Way; I’ve become quite familiar with the framework. I find it works well for about 70%-80% of the applications I need to build. The other 20%-30% work better in micro-frameworks like Slim, or plain PHP.
You have already written one book and I’ve heard you have plans another. Can you give us some details?
I have two books I’m working on at the moment.
The first is a little book on working with PHP data types. I’ve always been interested in language design, and one of the big problems with PHP is the loss of design fidelity when it comes to the APIs used to modify these basic data types. In other words, the slew of inconsistent, global functions often make working with these data types result in messy code.
The book explains two things really; how to create clean and consistent APIs for working with these data types, and how to leverage extensions to give object-oriented access to the data types.
I’ve mostly completed the theoretical part of the book, and am working on the sample library implementations. You can find the book at https://leanpub.com/typedphp.
The second book is about building commerce applications on top of Laravel 4. There are a great many which describe how to build commerce websites. There are also a great many books on using Laravel. Hesitant to add just another of those kinds of books to the pile, Stidges and I decided we wanted to put together one that would show all the good parts of modern PHP application theory, in something practical.
We’re keen to draw on the wisdom of leaders, in the Laravel community. We want to reflect the architectural ideas in Taylor’s book, the testing ideas in Jeffrey’s book. We want to mix in the practical aspects of API design, from Phil’s book. We cite ideas and implications from these (and others), in an attempt to produce a balanced and useful outcome.
It’s shaping up to be a great mix of architectural theory and grounded practice. The Cartalyst guys have also been kind enough to give us access to their catalogue of libraries; so we hope to also demonstrate, not only how developers can build their own solid stuff, but how they can integrate with what’s already out there if they so choose.
You can sign up for the release announcement at https://leanpub.com/laravel4commerce. We hope to be able to published (an in-progress version) within the next month or so.
It was just announced that you joined Cartalyst. Is this full time? What is your role going to be? Do you see commercial packages gaining traction?
Dan Syme invited me to work on the Cartalyst documentation and to help build a bit of a learning eco-system around the libraries. It’s a part-time thing, as I’m still very much involved with Connect.
I think the position Cartalyst are in is a unique one. I don’t know of many companies who operate by licensing premium composer packages, so they’re able to build relationships with their subscribers free from the pressures of competition.
I have no doubt they will face stronger competition than it appears they are facing now, and this should continue to drive the quality of the components up.
I’m only just getting to grips with the full suite of libraries, but I like what I’ve already seen. The code is clean and well-documented. I think this is going to be an enjoyable undertaking.
It seems you are very busy with a full time job and doing a lot of writing. What is your typical day like?
I get up around 6am (GMT+2), on account of little people jumping on me. I’ll make some food and coffee and chase Elijah round the house a bit. Then, at about 7-7:30am, I’ll start working on Connect projects (mostly in PHP API design).
Connect has a good system for remote working, so we can be flexible with the time we spend at the office. This means I’ll often arrive and depart at odd hours, to avoid traffic. After all, the less time I spend sitting in a car, the more time I can spend writing code.
Usually, at around 5pm-6pm I finish up with my Connect work. Then I’ll chase Elijah around the house some more, read stories to Naomi and hang out with Liz. The kids go to bed around 7pm. Liz and I hang out for a couple more hours, and then she’ll go off and do something creative, while I code.
Sometimes I code in bed, other times it’s in the lounge or the office. I usually sleep around 1am, unless I’m doing something particularly exciting.
Sometimes things change, which is refreshing. I also really love what I do, so the writing/coding at night is fun work for me.
Can you tell us about your local environment?
I work on a 13″ Macbook Air, using only the built-in trackpad and keyboard (no additional screens either). I’ve used bigger setups before, but I am enamored with the mobile sufficiency of my current setup.
I also use iTerm2 (oh-my-zsh) and a selection of personal dot-files (for things like aliases and system settings). I use Chrome to -test- browse and iTunes to keep my company.
If you could be a superhero, what superpowers would you want?
I guess flying would be cool. Elijah would really enjoy that, and I could go to conferences ALL THE TIME. “Thanks for the great talks guys WOOOOOOSH“