Introduction
In this issue of Behind the Dev, we're going to be taking a look into the day-to-day of the developer Luke Downing.
Luke is a software developer from the UK that contributes to Pest (the PHP testing framework) and has also spoken at several meet-ups and conferences, including Laracon Online!
If you don't already follow him on Twitter, make sure to check out his profile at: @LukeDowning19!
Behind the Dev
Can you tell us a bit about yourself?
Hey there! My name is Luke, as you’re probably well aware. I’m a software developer from Derbyshire, which is a rural county in the middle of England. I’m 25 years old at the time of writing, although I do tend to find that every year that changes. I’m married to my best friend, and together we live in a small cottage where the views are incredible but the internet is terrible. Not great for a software developer, but somehow I get by!
How did you first get into web development?
When I left school, I started an apprenticeship in floor fitting. I’d always been interested in technology and had built my own PC, but I had no real programming experience beyond making a HTML page on the library computers at school. After a year, a good friend of mine who owned a web agency offered me the opportunity of a lifetime: come work for him as a WordPress and Android developer. With my jaw on the floor, I said yes! I vividly remember my first task: creating some XML layouts in Eclipse for an Android app. I also have a vivid memory from some of my initial work with Javascript where I manually flipped a huge array of latitude/longitude tuples because they were being passed in backwards to a function, only for my boss to inform me that I could just flip the variable order. Small beginnings!
In those early days, we created lots of landing pages for campsites and small businesses, but slowly our clients became more and more serious, from event management and hotel bookings to large insurance and banking companies. Looking back, it was hilarious what we were building using WordPress and WooCommerce!
Around 4 years ago, I found Laravel, which completely changed me as a developer. I was introduced to the Laravel community, and as a result was also introduced to automated testing, which is likely what you know me for. The rest, as they say, is history.
As a developer, what’s your typical day like?
It starts with a coffee. Once that’s done, I join a stand-up meeting with the rest of my team, where we quickly discuss what we’re currently working on. I’m fully remote so all my meetings are all online. I work on a team at Worksome called “Platform Core”, which is responsible for keeping the Worksome application and developer experience running smoothly. That could mean working on upgrading to a new Laravel or PHP version, creating a new Open Source package to improve common functionality in the platform, or improving the testing experience.
If something can be packaged and Open Sourced or be contributed to the Laravel framework, I’ll almost always opt for that route, both to give back to the community and help promote Worksome for the outstanding company that it is. It’s great to work for a company that have such an amazing attitude towards Open Source, and I’m always super excited to work on the projects I do. Recently, I’ve had my head deep in Lambda, trying to improve some of the tooling we use internally via serverless functions. That’s been an amazing learning experience that I’ve been able to apply to some Pest-related Open Source work that I hope to share soon.
Are there any tools that you use on a daily basis?
I use a M1 Mac mini, which is one of the best purchases I have ever made. Fast, small and silent. PHPStorm is my IDE of choice, albeit very stripped back. I’m a minimalist, so I disable all toolbars, popups and windows and use keyboard shortcuts for everything. It takes a little getting used to, but I highly recommend it; it puts the focus on the code you’re writing rather than the tool you’re using. I use the Warp terminal, which is super clean and modern. Obviously, GitHub plays heavily in my workflow. And when I’m working with databases, I turn to TablePlus, which is pretty stable, clean and minimal.
I use a tool called Raycast for navigating my Mac, which is outstanding and in my opinion way ahead of any competition. It’s also free! Interestingly, I make heavy use of Siri Shortcuts to quickly set up different apps, focus states and even open specific projects in PHPStorm depending on my current task. I’ve found it to be incredibly simple to manage and maintain. Give it a go if you haven’t already.
Worksome use JIRA to manage tasks, so I use that for work. For personal projects, I tend to stick with Apple reminders. I’ve tried other systems in the past but they always fall by the wayside so now I just keep it simple.
As I’m often in meetings and also speak at online conferences and meet-ups, I recently decided to upgrade my audio setup. I went with a Shure SM57 and Focusrite Scarlett 2i2, along with a Rode microphone arm. No regrets there; the sound quality is outstanding and it allows me to stop worrying about audio quality and focus on content instead. I was considering the SM7B, but I would encourage others looking to upgrade their setup to at least try the SM57 first. It still sounds great and is £300 cheaper! Just get a windshield and you’re golden.
Is there anything in particular related to development that you enjoy working on the most?
Anything testing related I really enjoy. Every chance I get to add features to Pest PHP is always a highlight. I love creating for Open Source, because the fact that I know others will be looking at the code motivates me to put that extra polish on, which always brings a smile to my face. After working more with Lambda recently, I’m enjoying exploring use cases for it and also realising where it’s limitations lie. I think you could sum up my favourite parts of development with the phrase “developer tooling”; I’d much rather be writing a CLI tool to help improve a dev’s life than creating a frontend feature for a webpage.
If you could go back in time and give younger Luke some advice when you were first starting in development, what would it be?
Learn to write tests. Honestly, this changed my life. In fact, I can trace back more of less every great thing in my career as a web developer to automated testing. I just wish I’d started with testing earlier. I won’t talk about this in depth, because I already have a talk I give called “Tales of a Test Driven Developer”. You can watch it here: https://www.youtube.com/watch?v=zr3xuNaB22U.
Do you have any hobbies outside of web development?
I do! I love playing tabletop games. I have a great group of friends, and we go play at a local gaming centre fairly often. I also have a PS5 and am currently working through Lego Star Wars: The Skywalker Saga. I’m a bit of a completionist so it’s taking some time to collect everything the game has to offer!
I also play saxophone, so when I get chance I love to play. I mostly play jazz and blues. I wish I played more often than I do, but the pandemic has put a bit of a damper on performing! Hopefully I can get back into it more soon.
Anyhow, I best let you all get back to work or whatever it is you’re pretending to do! I really appreciate you taking the time to learn more about me. Make sure to follow me on Twitter to stay up to date on everything I’m working on. I have some really exciting news coming up soon which I think many of you will love, so stay tuned. Keep on coding!