Inside ProDev: Tom Johnson on what it takes to be a Senior Software Developer
This week we sat down with Tom Johnson to find out what it takes to be a Senior Software Developer at Unruly.
Q: Hi Tom, introduce yourself to our readers and tell them what you do at Unruly.
I’m Tom, and I’m a Senior Software Developer at Unruly. It’s a wider role than it is at many places, and covers a number of steps. Firstly I find out what people ‘really’ want when they ask for something. I then work out how to make it work most effectively within our systems. Next I write the code to make it happen, and finally I check that it does both what we intended, and what our users need.
I like to think of my role as being a software developer developer! I believe building the team to be more effective is as important as building the software.
Q: How did you find out about Unruly?
When I was looking to move on from my last job, there were things I wanted to change, and things I wanted to stay the same, particularly pair programming, empowered teams, and a focus on test-driven development, which are all key XP practices. I asked around and there were a few companies in London which had a reputation for doing XP well. Unruly was a name that kept coming up.
After speaking to a few people I went along to a conference and saw a couple of talks on culture from different Unrulies. That’s when I thought it was a place I could fit in well with.
Q: What notable roles did you hold prior to Unruly?
Unruly is my third software development role. Prior to that I worked at Aquila, a pensions administration company, and LMAX, a low-latency currency trading platform. That was all after I went back to university (I didn’t last long first time around). I also worked as a commercial liability insurance underwriter for almost five years.
Q: How would you explain your job to your grandparents?
My grandparents were pretty switched on, so I don’t think it would have been too difficult! Essentially, we build an automated marketplace for buyers and sellers of advertising. My job is to make sure that everything runs smoothly and that it provides buyers with the information they need to make an informed purchase.
Q: What draws you to the type of work you do?
It’s very social! We pair program, which means you’re always collaborating and reaching an agreement every step of the way. It’s also very satisfying starting out with a small, complex piece of software and slowly nurturing it into something much bigger, and yet somehow simpler.
Q: Tell us about something you’ve learned while working at Unruly?
Not to underestimate juniors, especially career-changers. One of the marvelous things about pair programming is if someone doesn’t know how to solve the entirety of a problem, but has deep insights about one particular part, then pairing allows those insights to shine whilst bringing them up to speed on the bits they’re missing.
Q: Tell us about any side hustle projects you’re working on…
I have two main side projects: I’m building an old-school platform game in Haskell (primarily to learn about Haskell), and a programming language of my own. It’s a great way to practice getting into a different problem-solving situation, and learning new techniques which can be applied back to my day-to-day work.
I’m also working on building an electric guitar. It’s interesting how different it is to software with software! I’m always trying to make things easy to change, whereas with woodworking, it’s important to know exactly where you’re going, act carefully, and get it right first time.
Q: It’s the weekend: what do you like to do in your spare time.
As little as possible! I like switching off for an afternoon with Netflix or a good video game (I’m currently gently working through Dragon Quest XI on the Playstation). As much as I enjoy the work-week, it’s also very draining, so I need to replenish.
Q: What kind of challenges do the developers tackle at Unruly?
Working out the right thing to do. I don’t mean ethically (although that’s something we should always be aware of), I mean commercially. Asking ourselves questions like is this the most valuable piece of work to do next? If we add this feature, will it actually sell? And when do we stop working on one thing and move on to the next?
There’s also working out how to grow. We’ve more than doubled in size since I started, and a lot of our core practices date from a time when we had a substantially smaller team. We’re now too big to think of ourselves as a team-of-teams, so we need to work out how to change. We need to think about where we are heading and how to navigate safely from where we are now to where we want to be.
Q: What makes you believe in the work you do?
It’s easy to believe in the work you do when you’re constantly doing small loops of deliver-and-validate, as you can see the outcome straight away. We talk to our users both before and after doing work for them, and it takes a matter of weeks, or sometimes days, to go from start to finish. You don’t need to ‘believe’ you can see it happening all the time, opening up new opportunities or making peoples’ lives easier.
And that’s a shared mentality across all of Unruly, not just something software developers do. A shared belief in communication, open-mindedness, and short feedback cycles.
Q: What music do you listen to while working. Do you have a specific coding playlist?
It’s generally considered a bit rude to pop in headphones when pairing! So most of the time I don’t listen to music. But when it’s my gold card (one day a week to work on my personal development projects), I’ll often put on nice ambient music, usually from video games, particularly the soundtracks for Chrono Trigger and Chrono Cross.
Want to join the Unruly family? You’re in luck, we’re hiring! Check out our job page for the latest roles!