Transition from policy research to software engineering

 

Samuel Anozie
University of Texas
Dallas (32.7° N, 96.7° W)

 

featuring Jessica McElroy, Software Engineer, Airbnb, San Francisco (37.7° N, 122.4° W)

After graduating from Rice University with a degree in sociology and policy studies in 2012, Jessica McElroy has been thriving as a software engineer at Airbnb since 2017. Her transition from research in public policy to software engineering in the lodging and hospitality field is a story of learning, both within her career and for her own interests. Throughout our interview, we discussed topics such as the mechanics of career changes, the future of web development, and cultural differences within small and large organizations.

Jessica’s professional journey ended up having many different twists and turns, but it was her initiative that opened up various opportunities for her. The most important aspect of her success in changing careers was the momentum she gave herself by acting early, from learning programming necessary for data analytics to networking with like-minded individuals and enrolling in bootcamps. When asked about advice that she would give those looking to change careers, she stated that trying something, whether by reaching out to people in the industry or working on personal projects, before fully committing to it as a career will usually give a signal for the right direction to go.

In terms of web development, Jessica and I discussed how the field is ever-changing in a unique way. As apps get more complicated, front-end projects scale much faster than their backend counterparts. Solutions like content management systems create an easy way for businesses to create user interfaces with dynamic data, taking some burdens off of front-end developers. However, shifting that responsibility may result in the creation of even more complex interface frameworks.

In Jessica’s opinion, the pros and cons of working for large corporations versus small startups depend heavily on the goals of the individual concerning what they want to learn. In a corporate environment, it’s expected to focus on a small set of topics within a field, so gaining expertise and specialization is easy. However, a startup may require you to wear many different hats, so those with more generalized mindsets will find it more rewarding.

By working hard and staying curious, Jessica was able to capitalize on various opportunities. As a student, it’s a reminder to be grateful for opportunity, yet curious for experiences, and to always reevaluate what you’ve learned and what you’d like to learn. This is a time of great uncertainty for the American workforce, as many individuals have lost jobs in lifelong industries. As we attempt to re-skill for a post-virus world, it’s important to keep the various methods of continuous improvement in mind.


Highlights from the interview

Could you tell me a bit about how you started off in your career, and how you moved through different fields to get to where you are now?

I majored in sociology and policy studies with a focus on urban issues, and I was really interested in contributing to research that would be incorporated into public policy evaluation and planning. So, I got extremely lucky when I first got out of college to find a job that was right up my alley. It was for a company called Mathematica Policy Research, located in Oakland, California. The work that Mathematica does is exactly the kind of thing I wanted to be involved in, which is, they would conduct these large-scale research studies to evaluate public policies and programs that were either already in place or that were proposed…My role was survey research assistant, so I helped formulate the survey instruments, test them out, if we were doing a different methodology—maybe like focus groups—then I would help train focus group facilitators. So I basically just did all the administrative stuff associated with carrying out the research and collecting the data…It’s funny because going into it, it was my dream job, but after maybe only six months there, I started getting antsy, and I felt bad for feeling that way because this is my dream job, why am I not enjoying myself? I just felt like a lot of the stuff that I did was really repetitive, and also I felt like that there wasn’t a lot of opportunity for growth in the role. At one point I got very lucky…there was a project I was on where they needed a data analyst, and so I ended up getting to learn a little bit of data analysis myself using a statistical programming language called Stata. I had never programmed before in my life, but I learned just basic programming in order to do this simple analysis that we needed, and I thought that was so much fun. I enjoyed that more than anything I had done at my job previously, so I wanted to get more training in that. I started looking for my own ways to learn programming. I enrolled in a couple of different Meetup groups in my area that were targeted at women who wanted to learn how to code. Fortunately, I was in the Bay Area where there’s a ton of things like this. I started going to these Meetup groups where they had hack nights and study groups; they also had these workshops that you could pay for at a discounted rate in the evenings and on weekends. So I started going to these just because I was curious about programming and wanted to see what I could do with it, and I was having so much fun with it that I wanted to figure out how I could do it full time. In the course of going to these Meetups, I learned about coding boot camps and decided to apply to a few of them. I ended up getting into Hackbright [Academy], which is a coding boot camp for women in San Francisco. It was a very scary jump to make, but I started reaching out to people who had done the program, and I heard great things—they had landed good jobs—so I decided to take the risk. It was a three-month program, and then I think I spent maybe six months of time doing self-study. I went into Hackbright with a pretty good foundation in web development, but then Hackbright really accelerated that and got me to a level where I felt like I could start applying for jobs. I landed at a small startup called Getable. They were building an app for construction equipment rentals, which was not at all what I imagined myself working on, but it was a great team and they were really supportive of me, considering I was just starting out in my career, and it was a fantastic experience. I was there for two years before an old Hackbright friend who had been in my same cohort who was at Airbnb, referred me to a front-end developer job at Airbnb, so that’s where I am now.

Do you have any advice for those looking to move into different fields? 

I think what helped me a lot was being able to dip my toes in the career I was interested in before making a leap. So, you know, at my very first job at the public policy research firm I knew that I was bored and wanted to do something different, but I didn’t know what, so I just started getting curious about other careers. And then when I started dabbling in programming I was like, “Hmm, I wonder what it would be like to do this full time,” so I just started doing projects in my free time to get a sense of what the work actually feels like and to see if it was something that intrinsically interested me and luckily it did. Another thing that I thought was really helpful was actually reaching out to people who do that career, to talk to them and figure out what their day-to-day is like, and what they like about their job, what they don’t like, what advice do they give someone looking back. I feel like anything you can do to try something on before fully committing to it will give you a signal about whether it’s the right direction to go in.

What do you think some of the most important nontechnical skills would be?

I think—this is going to sound maybe a little trite or obvious—but I think communication and collaboration are incredibly important in software engineering. You could be a complete whiz at programming, but then if you don’t know how to connect it to the problem that you’re solving, and explain technical concepts to nontechnical people, then you’ll have a hard time progressing in your career, so I think just as important as being a good developer is being able to communicate about what you’re doing to other people, whether they have a technical background or not. The most effective developers I’ve seen are people who can approach a problem and very clearly communicate what the different approaches are, and the advantages and trade-offs to those approaches.

What are some of the things that you’ve learned just by working at startups versus bigger corporate organizations?

I’ve had one startup experience and two big corporate experiences, so my startup knowledge is limited to just that one, those two years that I was at Getable. But I did feel like it was a pretty good taste of what startup life was like. I think what I learned is that when you work at a startup, the survival of the business is the driving factor every day, so what that means is even as an engineer, you’re constantly having to think about what is the most impactful thing you could be doing at any given moment. And if you’re not working on the most impactful thing right then, then you should probably rethink what you’re doing, because startups often have runways…numbered in months or years. Within that time, they need to figure out their product market fit and grow, become sustainable, become profitable. At startups, you just have to be really thoughtful about how you’re spending your time…your work is much more time sensitive. Time is a precious resource…as an engineer, you become much more involved with the rest of the company. You’re not just thinking about, “Oh, what is the very best, most optimal way that I can solve this problem?” You’re also thinking, “How do I solve this business problem, and how do I do it in the most efficient way possible?” I do think it makes you a more well-rounded engineer because you’re not just thinking about the code that you write, but you’re also thinking about the problem that it’s solving, and often because these startups are really small, you’re often having to play multiple different roles. You know, maybe you don’t have a technical project manager, so you’re playing that role; maybe you don’t even have a project manager, so you’re also playing that role; and maybe you don’t have design resources, so you’re designing things on the fly. It’s a really cool experience because instead of being just a cog within a system, you become a jack of all trades. It’s all hands on deck; you do whatever you have to do to keep the business going even if that goes beyond just coding.

So I guess that leads to what the corporate experience is like, where…rather than getting this broader view of things that you do at a startup, in a corporate world, you tend to be focusing on one thing. At my company, I focus on compliance with home-sharing regulations, it’s a very specific topic, and I’ve been working on that for three years. So you develop expertise that you wouldn’t at a startup because you are focusing on one domain. You get the time and the space and the resources to solve problems in the most optimal way, and you get the time to drive projects to completion and perfection. Oftentimes your teams are very well-resourced, you’re going to have project managers, technical project managers, designers, data scientists, so you are left to just really focus on your role as an engineer, which is to write technical specs and code.

Where do you see the future of web development going?

Interesting question. Well, I don’t think the career of the web developer is going to go away anytime soon. I think…online experiences are becoming richer and richer, and I think, especially when you look at front-end development, the front end of an app is often more complex than the back end. I do think there are some interesting tools coming out…we, of course, already have things like WordPress and other CMS sites that have been around forever for creating websites through a GUI [graphical user interface], but they don’t necessarily solve the problem of how to make a data-driven site, like a full stack application through GUI. There are also some innovative tools being built that to make it so that a nontechnical person could connect an app to a database and build data-driven displays, so I think it’s really cool that they’re trying to solve that problem. But I think there’s just infinite possibilities and sophistication that can exist in an app, as well as constantly evolving browser technologies. I think tools like that…are never going to capture or do everything that you want, and so there’s going to continue to be a need for web developers.

Interview excerpts have been lightly edited for clarity and readability and approved by the interviewee.