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.
Okay, so once you learn how to do object oriented programming… Right. Every language has its own “right way” to accomplish things, and its own syntax, but the basic concepts are the same. I imagine it’s like learning other spoken languages. Once you know five, the next one isn’t as big a deal.
How did you get into programming in the first place? My dad is an electrical engineer, so I got a computer early in high school, so I was just on the internet all the time. I wanted to build a website, so I went to other websites to learn how. I like project-based learning, gives me something to learn towards. I wanted to get into robotics, so I looked for entry-level robotics project and I found this kit (Arduino), that’s basically a prototyping board designed exactly for entry-level hobbyists like me.
You build robots? What do you do with them?
There are all these different competitions and project. Right now, I’m doing Robo Magellan, which is run by ChiBots
. They place orange traffic cones all over a field, and you have to capture as many cones as fast as you can with your robot. I’m really interested in autonomous robotics. Another project was for work; we had these meetings with a guy that worked remotely, and we would put the laptop camera on a table, and manually turn it around. I built a camera on a tilting unit that he could swivel on his own. It was a smaller project, but fun to do. To see Jess’ robotics, check out her blog.
The developer community has a reputation for being a little bro-tastic, and you’re still the only female developer at your company. How would you describe the crew?
I have met a few guys like that, the bros, at other places, but to be honest I haven’t met many and I don’t work with any now. For most of them, it’s just that they literally haven’t ever worked with girls. Once they figure out you’re just another programmer, that oh wait, you’re just a human being, they figure it out. If they are being offensive, it’s only because they’ve worked with all dudes for so long that no one ever calls them on it. They don’t even realize it.
Say I wanted to learn how to program, where do I start?
Find a project. Like, say you’re interested in knitting, build a website about knitting. Use the internet, find a coding buddy or mentor. It’s hard to know where to start, which is why you need to pick a project and learn the skills for that project. I would suggest learning Python (a coding language) because it’s easy to pick up. You can take classes at Udacity
which are virtually taught in an interactive lecture format. I just really recommend project-based learning because you’re working towards something you’re invested in.