Once again we return to our So You Want My Job series, in which we interview men who are employed in desirable jobs and ask them about the reality of their work and for advice on how men can live their dream.
A lot of computer and software-related gigs get lumped into the same bundle of careers, with no real differentiation. The reality, though, is that there are a number of vocations that include programming, development, computer security, etc. Last year, we covered the ins and outs of being an IT professional. Today, we’re looking at the world of app developers. We talked with Jason Butz, who gives us a peek into what he does, and how it’s different from other programming careers.
1. Tell us a little about yourself (Where are you from? How old are you? Describe your job and how long you’ve been at it, etc.).
I was born and grew up in Indianapolis, Indiana. I’m 26, but approaching 27 quickly. I’m an Application Developer, which is a fancy way of saying I build web applications. I’ve been with my current employer for almost 2 years, but I have been professionally working on web applications for about 5 years. I’ve been playing with websites and web technology in my free time for more than 15 years.
2. Why did you want to get into application programming/development? Was it something you always knew you wanted to do?
Growing up I wanted to be a vet or a zoo keeper, so this wasn’t exactly what I originally wanted. In middle school I took a summer enrichment class where I learned to build websites. It was still the 90s, and the websites weren’t good looking, but I was hooked. In high school I took every computer class I could and was learning more about web development at home on my own time. I was taking classes on everything from programming to building and fixing computers. I was actually able to get a couple certifications. I wasn’t sure exactly what I wanted to do, but I knew it would deal with computers. Once I started my college search I zeroed in on a Computer Science degree and figured out in college that I was good at web applications and loved building them.
3. Can you define for us what an application developer does? It tends to get lumped in with a variety of other tech careers. What is it that defines your specific role?
With the titles companies use things do get very murky. For example, at the company where I work, an Application Developer can get a promotion to a Software Engineer, where the only real difference is the pay scale available. I had a previous job where I did the same thing, but my title was Developer/Analyst. I am sure there are even more titles used than those, but I don’t know them all. It gets even more complicated when you take into account that the title of Software Engineer is used for jobs that don’t necessarily work with web applications, but just do some sort of programming.
In my case, an Application Developer builds and maintains web applications. In the department I am in we have 3-4 primary internal web applications that we have built and maintain. In another department the Application Developers build custom web applications to extend the product and services that customers have purchased.
For example, one of our internal applications is a project management suite built around our processes and needs. A few of the developers on my team just finished deploying a massive overhaul to our Gantt chart feature. I’m working my way through understanding and building out a complex financial report that needs to be built entirely with information we have in our system. We all work on the same tools, but what we are actually doing can have a great deal of variety.
4. How do you become an application developer? Do you need a college degree? Are there certifications required? If you do go to college, what should you study?
A college degree isn’t necessarily required, but there are a lot of companies that won’t even consider you for a position unless you have one. Without a degree you will need to have a good portfolio of work and projects you have built. If you have made good contributions to popular open source projects, that would be especially helpful (of course, a good portfolio is going to be helpful even with a college degree).
There aren’t too many certifications that I am aware of if you want to do any sort of web development, though I am sure some exist. Certifications can be helpful with any technology job, but employers seem to be getting more leery of potential employees who have a slew of certifications but no real experience to back them up. It isn’t unheard of for people to cram for certification tests and pass but still have no real understanding of the information.
There are several paths you can take for a college degree. I went the Computer Science (CS) route. There are some people on my team who have Information Science (IS) or Computer and Information Science (CIS) degrees. I’ve even worked with one person who had a Computer Graphics degree. CS degrees tend to have more computer theory than IS or CIS. I think I have also seen some colleges offer Web Development degrees, which could even work. It really comes down to what the individual degree program teaches and what exactly you want to do.
5. How do you find work as an application developer? Are there different types of jobs within the field? What’s the job market like?
The best way, which I actually had some trouble with, in finding work as an application developer is to start with an internship. My college didn’t put much emphasis on them, which really worked against me. We had a few interns on my team last summer; one of them did such a good job that he has been all but told he will be hired when he graduates if he applies.
There are also a lot of recruiters for all technical jobs. In Indianapolis there is actually a shortage of technical people, so the recruiters are working really hard. They can be a great way to get interviews and find work, but you have to remember this is their job. They have an interest in getting you hired somewhere, even if it isn’t the best fit for you.
I have had the most luck with referrals from family and friends. I got my first job out of college thanks to a guy I knew who had graduated the year before me. We hadn’t really been friends at the time, but he knew the classes I had been taking and he knew he could vouch for my skills by the simple fact I was getting a degree from the same program he did. While in school I can’t emphasize enough that you need to network with your professors, the alumni, and even people a year or two ahead of you. They could be the key to you finding that dream job. I actually got my foot in the door at my current employer thanks to my half-sibling’s cousin. Sounds kind of crazy and always gets a laugh, but I will take whatever I can get.
There is also the good old method of sending out resumes. I would suggest not using the job finding sites, like CareerBuilder, if you can help it; just send your resume to the company through their own careers section. Look up companies in your area and take a look at what they do and what jobs they have available. If you have a question about whether or not they even have certain types of jobs, don’t hesitate to call them and ask to speak with an HR recruiter. You never know, you may get lucky and get an interview from that. The big thing with sending out resumes is that you are less likely to get a call than someone who has been referred by another employee, so get out there and network.
6. Tell us a little bit about an average work day.
I start my days at 7:30am by choice. The rest of the team doesn’t come in until 9:00. I’m a morning person and more productive in the mornings, so my boss doesn’t mind and I enjoy the quiet. I generally start the day by skimming my email and the helpdesk looking for any issues that I can take care of or need to provide an update on. After that I pick up whatever I was doing the previous day and do my best to focus on that until our SCRUM meeting at 9:30. Our SCRUM meetings are a short meeting where we say what we have been working on and what we plan to do for that day. It’s also the time when our boss might switch up priorities and tell us to do something different if need be. After that I keep going on my work for the day, taking periodic short breaks to walk around and look at something that isn’t code or my current problem.
One thing that is a little unique and different about the team I am currently on is that during lunch we almost always play a game. We tend to play games that we can finish in under an hour, though we are starting to try games that we can easily take a picture of and resume the next day.
After lunch I just keep going on my work until it is time to go home. One thing a little different about my situation is that there is one system that I am the only one who knows how to fully administer or develop on. This isn’t exactly ideal, but training others on it isn’t exactly a priority. So I get a lot of helpdesk tickets for the system and get pulled into meetings whenever people want new features or have questions. All in all the average day isn’t too bad. I work at a technology company and we have an internal instant messaging tool. The whole day the team may not be talking a lot, but we have conversations and jokes constantly flying around in those messages. It makes it easy to socialize while still being productive.
Every month or two we have a release, which makes for a far more stressful and varied couple weeks. Those weeks usually involve testing the entire system and fixing any bugs we find as quickly as possible. Then we release over the weekend and have to release a lot of small fixes the next week as people find more bugs.
7. What is the work/life balance like as a programmer?
It is generally very balanced. Usually you get to show up and leave at regular times, though there are exceptions. If something is critically broken you will generally have to stick around until that is fixed. If you have a feature that needs to be in a release and you are running out of time you’ll have to put in some extra work. If more time is needed to get a release put together and it can’t be pushed back to another day, then you will probably have to put in some more time there. The extent to how much any of these things interrupt your life really depends upon where you work and who your boss is. A lot of times it is possible to know ahead of time that you will have to put in some extra hours and you can plan accordingly.
8. What’s the best part of your career?
The puzzles. Programming things is really like a giant logic puzzle. I have to put different things together to build an application that does something. I may get told that when someone approves an item in the application a certain group of people needs to get an email, but I can’t just put that in as is. I have to take that and break it down to a very basic level. Once I have it broken down I arrange my pieces — the code — so it will accomplish what I want. I also love when you get to create something new. New features that aren’t reports are usually a lot of fun to make. Sometimes complex reports can be interesting too. Having users come to you and say “We need a Gantt chart” and then creating that and handing it to them is a wonderful experience. They tend to look at you like you are some sort of wizard or magician.
Aside from the puzzles and creation the people can be really great. I am a geeky person, but everyone on my team is geeky too. The conversations we’ll have can get insane. Sometimes you hear someone going on about what Marvel is doing with their comic books. Another time you will hear incredibly detailed game reviews. Other times you’ll hear random but fascinating facts about movies. Occasionally things get philosophical. There is never a boring conversation and we all make each other laugh all the time.
9. What’s the worst part?
Boring projects or projects that were once exciting but have turned monotonous. Creating a really basic report that just lists information is not a lot of fun. The only saving grace for them is how quickly you can finish them. You don’t get to do much creation and the biggest puzzle is how you are going to pull all of the right information. The rest of it you have done before. Sometimes big projects can go from really interesting to monotonous and then continue to drag on for weeks. Figuring out how to do everything at the start and having all of these grand ideas is great — it combines some of the best parts of the job. But then you have to do all of those grand things you thought up and it can start to get boring really quick, and then gets frustrating as you forget how you did some things and planned to do others. You have to balance making notes and trying to remember things. The grander your ideas the harder it is to make all of the pieces fit together correctly.
10. What’s the biggest misconception people have about your job?
People think that since I work with computers I know everything about computers, including how to fix them. In my case I do know how to fix computers, but that isn’t as common as people think. Another common one is that since I can write programs, people think I can write a program for anything. I can learn to write programs for other systems, but every platform is a little different. I can’t tell you how many times I’ve had people tell me, “Hey, I need your help. I have this great idea for a phone app and I need you to make it.” They always look a little dumbfounded when I tell them I’m not familiar with how to make phone apps.
11. Any other advice, tips, commentary, or anecdotes you’d like to add?
If you want to get into any kind of computer programming you will need to know programming languages, but a lot of times it is the ability to learn languages quickly and the right mindset that are more important. You have to take complex problems and break them down to something simpler. Poking holes in ideas and finding logical edge cases is also very useful.
An important lesson I’ve learned, that I feel is pretty useful for everyone, is always own up to your mistakes. At the last company I worked for I was working on the financial system and had pushed out an update that I had written. The next day a manager came over to where the other developer and I sat and told us it looked like $2 million had disappeared from the system. I quickly said that it was probably my fault because I had pushed out some code affecting that the previous day. Admitting that I had messed up went a long way. I was also able to fix the problem and make the money reappear in the financials, which probably didn’t hurt. The other developer there had made $200 million disappear and he hadn’t lost his job either. Always own up to your mistakes and do what it takes to fix them, if they are fixable.