In dev.life, we chat with developers about their passion for programming: how they got into it, what they like to work on and how.
Today’s guest is Dayle Rees, Head of Engineering at JustPark. Part of the Laravel PHP framework team, he has written a number of books about programming, including Code Happy about Laravel, PHP Pandas and HTML Hamsters. He’s also the creator of the popular package of themes for text editors, Colour Schemes.
Location: Cardiff, Wales
Current Role: Head of Engineering at JustPark
How did you get into software development?
Fantastic question! And yet, so difficult to answer. I’ve always been a bit of a nerd. Perhaps not socially, but certainly through interests. My parents bought me my first computer at the age of six. It was a ‘Reeves’ 286SX and came with a really old version of Windows, 2 I think, and obviously MS-DOS.
I instantly became curious, started playing with the startup scripts and fiddling with the operating system. I can recall destroying the machine a number of times, and in the process of restoring it, learning a lot more about its operation. I was absolutely hooked.
In my early days, I took part in a lot of customization projects. Those that created themes and skins for applications, and I think that’s where my love of design sprouted. On the development side, I recall some of my earliest projects being the reverse engineering of various messaging protocols using C. Effectively, creating a proxy, learning the request and response shapes for the protocol and attempting to replicate it. Later, I moved on to the .NET stack for the same purpose.
Based on these projects, I was maintaining a number of websites, and that is where the ‘web development’ portion of my skill-set started to trickle in.
Because of these activities, and learning through curiosity, I consider myself to be a self-taught developer. However, I did go to Aberystwyth University to study Computer Science… because it’s hard to get a job without one of those shiny certificates these days!
Tell us a little about your current role
I’m Head of Engineering for JustPark.com. JustPark is a London-based startup (with a Cardiff office) that aims to relieve the stress of parking for the people of the world. We allow property owners to rent out unused space to make extra cash. This allows for the most competitive rate on parking and keeps our hundreds of thousands of drivers happy.
I manage a team of 14 skilled developers working on a number of different projects. I act as consultant and architect to our developers. I get my hands dirty in the codebase and I do anything from design, front-end development to back-end development and DevOps. Essentially, I’m responsible for all that happens on the tech side of the company.
In work, I normally opt for the smaller development tasks. As Head of Engineering, I find distractions are common. Technical questions from the team, operational needs, interaction with product and business development teams. Sticking with smaller, non-urgent tasks allows me to be distracted without damaging a project. Normally, if there’s a problem that the team can’t find a solution to, that problem will trickle it’s way down to me. That’s where I step in and come up with a plan of action (be it good or bad, ha!) to keep the team moving forwards.
In my spare time, I’m working on a series of books teaching the basics of the PHP language, HTML and CSS, all the way up to design patterns and the Laravel framework. I absolutely adore helping people to discover new skills and hearing about the wonderful things that they go on to make with them.
The books I’m working on right now are ‘HTML Hamsters’ a mini-book to teach newcomers the HyperText Markup Language, and ‘Code Smart‘ which will be the latest instalment in my Laravel series covering version 5 of the framework. The only real challenge is time! My work keeps me busy, and while I love writing, it’s a time-consuming passion.
In JustPark, some of the challenges that we have involve porting legacy systems across to modern platforms. It’s a challenge that I’m sure many, many developers face. The trick is to keep moving forward with baby steps, finding opportunities to improve what you have, without pushing too hard for that “great rebuild in the sky”. Quick wins are the name of the game. Slowly re-shaping your application, until it’s close to what you dreamed up. The biggest challenge is deciphering (and reverse engineering) the meaning behind the original code!
When are you at your happiest whilst coding?
I absolutely love parsing things. Connecting systems by creating common interchange formats. Creating automated systems. It’s super nerdy, but I absolutely love it!
Outside of that nerdy passion, I love creating tools for other people. Creating systems with intuitive interactions. Using the things I build to inspire others to learn.
It’s hard to nail it down, but every developer knows that feeling when you’re wired in. You don’t care about deadlines, you’re creating beautiful code on a clean desktop, and you’re using a billion interfaces.
What is your dev environment?
Aha! I was once upon a time a Windows lad. Then, I become wise and started using Linux. Now… I’m sad to say it. I’ve fallen to the evil empire. I have a top-end Macbook Pro (the one with the integrated graphics), an iPhone 6+, and an Apple watch. Fortunately, I’ve not started wearing turtlenecks…
I use my own laptop for development at home and work because I don’t like maintaining two environments. Also, I have a terrible work/life separation!
I use the Sublime Text editor for anything simple. Day-to-day stuff. I find having less autocomplete keeps my knowledge of the language that little bit sharper. When I’m on a more complex project I’ll open up PHPStorm, wait 10 minutes for it to be ready, and begin my work.
My interest in design, colour and the emotions they bring stretch to Sublime Text too. One of my most popular creations is my color schemes package, which contains around 150+ colour schemes for a number of different text editors and software. The almost 6.5k stars and 75k installs on Sublime Package Control alone, makes it the most popular thing I’ve ever created. I’ve even seen the schemes show up in conference talks, screencasts, and on TV (hey there Silicon Valley!). If I’d have charged for the themes, I might be a millionaire, and you’d be interviewing me for a different reason, but alas, it was a weekend hack and I’m glad people enjoy them!
My perfect environment for development, is sitting on the sofa, in a nice cold room, listening to some acoustic rock. You just can’t code without music. Try it. It’s impossible!
What are your favorite books or resources about development?
I really like reading development books that have no code in them. The best of all would be The Pragmatic Programmer. I feel that if you want to learn a language or a skill, you’ll find a way to a learning resource. But the day-to-day attitude for a developer, and tips and tricks are more interesting to me.
I’d be absolutely terrible if I didn’t mention my buddy Alex Garrett’s CodeCourse (previously PHP Academy) project. It’s a wonderful project, and he has a goal that I share, to bring the world of development to newcomers, and lower that entry barrier.
I find many technical books very formal and dull. I’m a quirky person (some have said insane, they might be right), and I like to have a little fun in everything that I do. It’s my goal to create fun experiences for all developers within my book series.
What technologies are you currently trying out or want an excuse to try?
I sign up for almost every development related product I find – you never know when you might be missing out on something amazing!
When not coding, what do you like to do?
Please elaborate… Not coding?
Just kidding. When I’m not being nerdy, you’ll find me being nerdy. Playing video games, watching cult TV, or spending time with my exceptionally forgiving girlfriend, Emma. We both buy into ‘nerd-culture’ heavily, so you won’t find us at many sporting events!
What advice would you give to a younger version of yourself starting out in development?
Charge money for Colour Schemes…
Again, just kidding. I’d say chase any opportunities that are presented to you. Everyone has an idea, a passion, or something unique to themselves. Use it to build your own projects, and share your unique talents with the world.
Shove yourself right into the middle of development communities, make friends and share in projects. Without the support of the Laravel community, I’d never have had the confidence to become an author. Those guys have been fantastic.
Lastly, don’t try to learn without a purpose. The desire to learn a new skill is driven by curiosity. Try to build something, find a problem, and learn only to solve it. Keep moving forward and improving.
Thanks to Dayle for taking the time to speak with us. Have someone you’d like to be a guest? Let us know @FogCreek.
Recent dev.life Interviews