Meet Jess. Jess is latest subject of my ongoing series, So What Do You Do Exactly? Jess is the only female developer at food megasite GrubHub, where she heads up a team called something I didn’t understand until after I finished this interview:
What’s your actual job title? Manager, Quality & Release Engineering
What should your job title be? Automation Engineer. I write code to automate processes that were previously manual.
Nobody knows what release engineering is… Anytime you’re about to release new software (like a new version, or a new feature), the Quality Assurance (QA) team is the group that tests to make sure functionality is exactly as expected. On the GrubHub website, for example, if we are adding the capability for customers to pay by PayPal, we have to check, can you actually pay by PayPal? Does the product work? What happens when I try weird stuff, opening too many tabs, different payment conditions. We basically think of all the ways to break the software. Plus, we do something called regression testing, which is making sure that everything that used to work still does.
Release engineering is kind of a new thing. Back in the day, people used to have big long projects; every three years we’d release something huge, like Windows XP. The new “agile” methodology has you releasing new code really frequently. Release engineering (also called Dev Ops) is about building infrastructure so you can deploy new code painlessly.
My work is about ensuring that any time a developer changes something, like a line of code and they “check it in” to a pool of existing code and test it. We deploy the new code in a fake environment first, make sure something hasn’t broken, and then we actually deploy it to GrubHub.com.
Before GrubHub, you worked in consulting. What’s different about start-ups? In start-ups, if you have an idea, or a better way of doing things, you can just chat with people involved, and then you just… go do it. It’s easy to make fast improvements. The bigger the group gets, the harder that is to do, but it’s still possible. When I joined GrubHub, there were 50 people and I was the fourth developer hired. I came in and one of the first things I realized was that we weren’t doing a lot of testing and so I got some of that stuff rolling.
We all use GrubHub, what would we see that you’ve worked on? I’ve worked on all kinds of things. We had a sweepstakes game called Yummy Rummy. I’ve worked on the iPhone and Droid apps, and I worked on the pay by PayPal feature.
It seems like the different apps and sites would require different coding skills. How do you learn the different languages? Once you learn how to do object oriented programming,….
Whoa whoa whoa, what’s object oriented programming? There’s two types of programming. object oriented and procedural. Procedural is one line of code at a time; do A, then B, then C. Object oriented is writing code in a modular fashion; an object is like a container for code. For example, your food order with GrubHub is an object. It has a name, the time it was placed, the items, etc. You can write code that retrieves that object, and then does something to it. It makes it a lot easier to write large amounts of code, because you can swap it in and out.