This is the second in a series of interviews with Atomic makers.
Meet Jason Porritt: car racing hobbyist, soon-to-be father, and software developer at Atomic Object. I recently sat down with Jason to talk about how he became the developer he is today and why he still loves making software.
Why are you a software developer? And why at Atomic?
I like the blend of creativity, problem solving, and getting to make things that do something good for someone else.
I’ve known for a long time that I wanted to study computer science. I always played with computers, starting as soon as I learned to read and discovered what a keyboard was. My family had a computer when I was young—a 286, which ran at a whopping 13-1/3 megahertz—and one of my friends had a Commodore 64 we’d goof around on. I loved playing around and seeing what they could do, trying to make them run as fast as I could. Then in junior high, my parents bought me Q Basic Programming for Dummies to spur me on. It helped me get a taste for what people do with computers.
I got my computer science degree from Michigan Tech in 2003. Then I worked at Gordon Food Service and Priority Health before coming to Atomic. I wanted to work at a company where software was the focus of what they were doing; there’s value to providing the core service your company offers. I chose Atomic because I’d met several people from here and was impressed.
Through the years, has anything about development surprised you?
I expected that it might be…not exactly a lonely endeavor, but isolated. But the longer I’ve worked, the more I’ve had a chance to be a part of larger and closer teams, and to meet more people who really value the human aspect of software.
My expectations have also shifted as I’ve experienced more of what’s possible in software. I’ve been surprised by how much I use the non-technical parts of my of education, going all the way back to high school—things like writing and giving presentations.
So what skills and traits do you think a software developer needs?
First and foremost, a technical mindset. They need to develop an understanding of how computers work and be able to reason out how the software they’re building works at a fundamental level.
It’s also beneficial to be really organized. That’s something I have to make an effort to do, but it’s worth it. Organized thinking helps you put your thoughts and code into logical structures, and it makes it easier to communicate with your team members about how something works. Organization also helps with project management and staying in sync with customers.
Writing skills are also really important. I look at software developers as professional authors, just in a different way. We have to learn the rules of the languages that we’re using, then develop themes and patterns that we reuse across the software we build. And there’s actual English language writing as well. That’s involved in everything from coming up with names to express the intent of variables and functions, to conversations with customers and team members, to putting together presentations.
As for traits, perseverance is a big one. When you’re diving into something new, you have to stick out the difficult parts, the parts that aren’t your favorite. You have to get things done and get them to work.
Creativity is another big one. As consultants, we get to apply it not just in the code, but in how we help clients address their overall problems and goals. Creativity is helpful when you’re considering questions like whether shifting goals slightly could make the solution less complex, or whether these problems could be solved without software.
Name something unexpected that has made you a better developer.
On the technical side, spending time with tools I didn’t think I’d like has pushed me to grow in a lot of ways. There are always positive aspects to tools or languages that you’ve dreaded learning to use. You also learn how to build around the weaknesses in the pieces you don’t like—how to take up the slack presented by a specific tool. Paying attention to which tools make you effective is a big leap forward for a developer.
What do you like to do when you’re not writing software?
I like to race cars and play music. Both my wife and I participate in autocross and rallycross with our Subaru and MINI Cooper. It’s fun because we get to meet a lot of interesting people. I also play guitar, a little bit of mandolin, and a very, very little bit of banjo.
Do any of those interests ever relate to what you do at Atomic?
Music and software actually have a lot in common. Music is playing in a particular key with specific notes, with a set of chords and progressions. You have to understand how the melody and harmony fit in with that, see the reasoning behind it, and get it all into your head. It’s very similar to how a developer has to understand the overall structure of an app, as well as all the pieces that make it up. I’ve heard people say that music and software have more in common than math and software, but of course math and music have a lot in common, too.
What’s the most satisfying product you’ve ever worked on at Atomic?
The SCAN 3 app for Drug Free Sport. The project had some interesting challenges on both the technical and business sides. We replaced the software that runs the core of their business with a completely new system that works reliably and well, and now they’re set up to keep using it well into the future. We had a lot to accomplish, with a lot of complexity, and we pulled it off. That’s extremely satisfying.