30 Jan 2017
No matter how you spin it, computer science is a young field, especially compared to the other industries Domers go to. As such, there’s still a lot to figure out (in other news, Water: Wet). Today I want to talk about the figuring we need to do with respect to career management, and I’ll do so by sharing my personal experiences in the matter.
I consider the first job of my career to be my Summer 2016 gig with Booz Allen Hamilton, but I think my career started much earlier. By the summer after my high school graduation, I was strongly entertaining the notion of being a computer science major. I was already fascinated with programming. As a result, I did what I could to learn: I split my time that summer between a full-time job at a hotel and my personal website. Oh, and friends, I had some friends. Yeah.
So I kept up my projects, kept at it with Code Academy, and started studying CS. When I started at ND, I was pretty aggressive about finding an on-campus job. In October, I connected with The Kaneb Center for Teaching and Learning and started working in their Learning Technology Lab. I learned a lot from this job, about video production and, more importantly, web development. When I started, I knew enough from Code Academy to get hired, but I didn’t even know what Bootstrap was. By the end of the school year, I had deployed my first Angular application (it was a piece of garbage, but in production nonetheless). More than anything else, I consider my first year at the Kaneb Center a testament to the hands-on imperative.
Despite my best efforts, I didn’t get an internship the next Summer (2015) and worked at the hotel again. I also started Winston (I was vaguely aware that Ruby on Rails was hot, so I thought I’d learn the language). Let me tell you, my “best efforts” were pretty solid. I won’t go into detail, but the key takeaway is that a lot of companies had my resume in their HR databases.
Mentioning Winston brings me to a brief aside on side projects. Feel free to skip this paragraph to continue reading about my career adventures. There’s been a lot of talk in class about side projects and the popular thing to say is that you’re frustrated with this perceived obligation to do your own side projects, and that there’s a stigma faced after “confessing” you don’t have any. I understand how such treatment is frustrating, but equally frustrating is the lack of effort I’ve seen from the class to consider the other side of the coin. Why would an employer be biased towards someone who has side projects? When you say it out loud, it seems silly how obvious an answer this question has: if you devote your personal time to your craft, then you have passion for your craft, and employers, naturally, want to hire people who are passionate about their work, who see it as more than just a paycheck. It’s OK to not have side projects. But if you don’t have any, you should probably generate some other evidence of your passion for your craft. And, if
you don’t have such passion true, don’t complain that employers prefer passionate new hires.
Shortly the start of my sophomore year, career fair season rolled around again (the career center consistently starts their hype campaign within the first three weeks of the Fall semester). Just like in freshman year, I went HAM. Just like in freshman year, no dice. Back then, though, I could laugh it off with my friends with the old “no one hires freshmen” but that year, I felt like I had no excuse. In the months following the career fair I searched far and wide for a Summer opportunity. I scoured the internet, dug up email addresses from the previous year, and even connected with a number of my dad’s former colleagues, trying to find anything. Come February, I was still empty handed.
Then out of the blue, I got a phone call from some lady in California who had “pulled my resume in regards to a specific position.” Wouldn’t you know it, she was from Booz Allen. I thought that ship had sailed, but there I sat, reaping the seeds I’d sown freshman year. Within two weeks, I completed two interviews and had an offer in hand. I think the reason, leading up to that point, that I was so stressed and unhappy about not being able to find a job was that I craved validation of my talent. I’d spent the better part of the last two years working hard to learn and enhance my skills, while simultaneously hearing a near constant droning about how CS majors were just flying off the shelves, so to speak. In hindsight, I think that need for validation came from a lack of confidence in my abilities.
I’d like to take a moment to talk about my interview process with Booz Allen. Like I mentioned, there were two interviews, one right after the other. Both of them were in essence technical conversations about my past experience and the work being done by the team I was speaking to. I think this model worked excellently, as does Sam Phippen in On the unreasonable reality of “junior” developer interviews. Phippen advocates for “some kind of technical discussion” to serve as an interview, as it fosters listening and interest in both interview parties. (Let it be known however, that I disagreed with his overall argument about how flawed the whiteboard interview is; he just seemed a little salty that he never got the hang of it.)
So I spent the summer of 2016 in Washington D.C working for Booz Allen. I had a great time and am continuing to work for them part time (on the project I was on during the summer).
Cue career fair season 2016. My time in D.C. had sparked some interest in working for the feds (it seemed like an excellent and fulfilling outlet for my interest in cybersecurity), so when the NSA came to town, I went to all of their events; the day of the Fall career fair, I met their recruiting team at a presentation in the morning, spoke to them again at a CSE brunch, and when I “ran into” them again that evening of the fair, they asked if I could do an interview on the spot. I, doing my best to mask my excitement, said “yes” and had (after a brief initial screening interview) a technical discussion with the lead engineer of the team recruiting me. Afterwards we shook hands, and I wandered down to the next booths. Not five minutes later, said engineer caught up to me and said they wanted to extend an official conditional offer (federal agencies offer “conditional offers of employment” or COEs as employment is contingent on your ability to obtain a certain level of security clearance).
This was certainly a far cry from the previous two years. The funny thing was that I really didn’t do anything differently. My strategy, which was to work hard to learn and sharpen skills, and when the time came, create as many opportunities as possible, finally worked the way Dr. Kevin Bowyer told me it would in my freshman year.
Really the only difference I can identify between my job search in my first two years and my job search in my third year was the volume of work I’d done. In the grand scheme of things, I wasn’t that much more skilled in October 2016 than in January (recall I didn’t get a Summer offer until February), nor had my ability to acquire new skills grown, nor my personality changed. But now I’d been vetted; I’d passed Booz Allen’s talent test and was therefore a valid candidate for employment. It makes me think of the old “they want to hire someone with experience/ how do you get hired without experience?” I was very stuck in this cycle for quite a while, but now that I’ve broken it, I can look back and answer simply that you create your own experience, generate your own evidence of your talent. If you think I did side projects for fun, then you’d be right, but I also knew that they were an activity with literally zero barriers of entry that would show people that I meant business.
After making it a good way through the clearance process, I withdrew.
It was a tough call to make, given how closely intertwined cyber is with the NSA. One of the things a federal agency will tell you when you start clearance processing is that you should keep looking for opportunities. After all, if, after 12 months of processing, you aren’t granted clearance, then you’re out of a job. So that’s what I did. Just like freshman and sophomore year, I participated aggressively in networking events and sent out more than a handful of internship applications. At one point, a certain company came to campus for a casual recruiting event. I, at the time, was hosting a friend from Booz Allen who was visiting from out of town, so I couldn’t really be bothered with networking. Fortunately, I wasn’t that stupid, and reached out to the recruiters the next day via email addresses provided by my twin sister, who had attended the event.
I sent the two recruiters my resume, and they in reply initiated a game of 20 questions (literally, the body of the email was a numbered list of right around 20 questions). I answered them, apparently to the satisfaction of the recruiters, and was invited to schedule an interview.
I was trying to build a little drama by not mentioning the name of this company for a little while longer (get you to thinking, “Oh, who could it be, that made this cybersecurity nerd turn down the NSA?”), but it’s important you know who they are for the purpose of my discussion on their interview process, so it’s Facebook.
Facebook’s interviews were much more like the “traditional” whiteboard interviews condemned by Phippen and taught at every collegiate CS program in the country. I think these interviews still have their place, and I think Jeff Atwood, co-founder of Stack Overflow, shares this opinion. In his now famous article Why Can’t Programmers Program?, Atwood laments the state of hiring for software development positions, purporting that the majority of candidates just can’t program. He suggests code samples as a way to vet candidates before investing in interviews. I think that’s a good approach, but failing that, I think whiteboard interviews work too. What’s more though, is that I think whiteboard interviews are a good way to select talented computer scientists, though, as mentioned by Phippen, not so effective for selecting programmers. Phippen fails to make this distinction, so his thesis rests on the shaky-at-best-false-at-worst assumption that employers are only looking to hire programmers (and not looking specifically for computer scientists). I think the difference between these classes can be summarized with an analogy: if programmers are like screwdrivers, computer scientists are like multitools. It’s a lot easier to fasten a tough screw with a proper screwdriver (as opposed to a potentially flimsy or improperly sized screwdriver on a multitool) but the mutlitool can address a much broader set of issues. A complete toolbelt could have both.
Two phone + codepen interviews later, I had an offer from Facebook. A quick query on your favorite search engine will reveal that Facebook has one of the best CS intern programs in the nation (probably the world). And I don’t say that to brag, I say it to help explain why I turned down the NSA. I want to be in cybersecurity. Going to the NSA would have put me at the epicenter of the field, working to protect our country. Furthermore, in building a career at that agency, I might have been able to effect some real change from the inside (I’m a bit of a privacy geek and a proud sponsor of the EFF). And I gave that up. I really do feel like I sold out sometimes.
I wish I could say I’ve resolved that uneasiness, but I haven’t. I am still excited about my upcoming summer. The whole process has gotten me thinking about my long term plans.
If you had asked me six months ago where I was going to be in five or ten years, I’d have given you a short spiel on my (partial) “life philosophy” which amounted to: expectation is the root of disappointment. Having a specific vision of where I’m going to be in ten years is both unrealistic and sets me up for disappointment and unhappiness if I don’t end up there. I still believe this to some extent, but I think I preferred saying that to actually coming up with a plan since I really didn’t have enough information to make one. Now, while I might not have “enough” information, I have more, and can make an educated projection of my career.
I think I’ll enjoy my internship with Facebook a lot. I’m hoping that I land on a security team. I can’t say for sure if I’ll go back after graduation, but I’m pretty sure at this point that I’ll go into industry, ideally at one of the giants. I can’t put my finger on an exact number, but after some number of years (at least three, likely closer to five or seven) I’ll see about pivoting into government. After I withdrew from clearance processing, I received a letter from the NSA basically saying that their door would always be open. It’s hard to say how long I’d stay there; probably depends on what exactly I’d be doing and where I was going. I do want to go places, that’s a certainty. Equally hard to say is what I’d do after my work in government, if there is an after. When I was at a candidate event in San Francisco with KPMG this past Fall, I learned a lot about their international practice, which was pretty enticing. I also know that Booz Allen does a lot of work in the fields I’m interested in (security, data science, and the like). That would be kinda poetic, wouldn’t it?
Overall, the hiring process for CS people, has been, in my experience, frustrating, rewarding, taxing, and sometimes, a little fun. Call me an optimist, but I don’t think the process is fundamentally flawed; it’s just a bunch of companies doing what works best for them.
I wanted to write a quick addendum to mention the class’ recent discussion on privilege and how it relates to the stark contrast between the job searches of my under-class and upper-class years. To start, I’m not a fan of the tone that a lot of recent discussion on privilege in pop culture has taken. From MTV’s new year’s resolutions for white guys at the calm end of the spectrum (original video was taken down, but here is a brief commentary on it- NSFW language), to “kill all white men” at the other, the primary goal of a lot of the rhetoric is guilt: guilt over the evilness of your ancestors, guilt over the fact that your accomplishments are products of your environment and not your hard work, etc., etc. That’s why I was very happy to hear a very different tone struck in class the other day. I heard it effectively argued that the point of “checking one’s privilege” is not to invoke guilt or diminish accomplishment, but simply to recognize the role that your opportunities played.
Earlier I used the words “creating opportunity,” something I sincerely believe I did. Facebook is a great example here. I’m the one who latched on to those recruiters, put in the hours building a rock solid resume, and who studied day in and day out for those interviews. But I only met those recruiters because they came to Notre Dame. How many people get the opportunity to come to Notre Dame? Not a lot. Heck, it’s only through the generosity of a number of donors that I’m even here myself. How lucky am I? (I do want to note the gray area we’re starting to wander into: who’s to say I wouldn’t have gotten to work for Facebook if I’d been elsewhere? We start to get into some pretty untestable speculation.)
The other side of checking this privilege, as we discussed in class, is making the most of the opportunities you get and make. This one’s a little trickier to answer in the Facebook context since I don’t start working for another couple months, but I can say that I’ll try my hardest to make a difference.