The Alexandra Grant AMA Interview

About Alexandra Grant

Alexandra Grant, at the time of writing, was a full-stack developer for Digg. Previously, she worked for the NSA as a developer. Grant graduated from Dartmouth College with BS in Computer Science

Foreward

Back in May 2015, Erik Finman hosted an interactive AMA with Alexandra Grant in the Day One Facebook group. There was a lot of good questions that was put out from the community. So, I highlighted a few questions from the community (including my own questions) and have edited some questions for clarity.

Jeremy Meyer: Do you work with the front-end, backend, or full stack? Which do you prefer? Do you recommend being a well-rounded generalist or specializing in a few things?

Grant: I’m a full-stack engineer but recently I’ve been focusing on the back-end at Digg. I’ve definitely jumped around the stack a lot and I think having a general understanding of both front-end and back-end technologies allows you to be a better engineer and to make smarter design decisions, wherever it is you’re working.

Sanny Lin: How is it like working for the government?

Grant: Working for the government can be awesome or terrible, it really depends what office you’re in and how much red tape you have to deal with. The other crazy thing is that it is usually very “stove-piped” so you don’t know what anyone else is working on. This means there can be a lot of redundancy in certain efforts. But it definitely made me feel very patriotic. There’s American flags and bald eagles everywhere.

Rodrigo Argumedo (me): What is your primary motivation for getting into programming?

Grant: I got into programming when I realized how much you could build if you understood computers. It really is a field where the only limit is your imagination.

Josh Grant: Mac or PC?

Grant: I’m using a Mac now but it’s a recent thing. I was using Linux primarily before.

Daniel Kao: What are some things that you would tell anyone before they went to work for the government?

Grant: I would tell them to make sure they know exactly what kind of work they’re going to be doing. I had other job offers from government offices which sounded really glamorous but once I ended up working there I realized those jobs would have been terrible. Thankfully for me I was in a rotational program which let me work in a new office every 8–10 months. Also, the kind of satisfaction you can get from government work can be really high because you have the chance to make some really big differences in the world.

Erik Finman (host): What do you think caused that realization (that you wanted to learn how to program)?

Grant: The programming realization? Honestly just being able to build Java applet games was really exciting to me. I was just thinking that if I could make this in a couple days, then imagine what I could build if I put years into.

Max Rais: What’s the worst thing you can legally say about your time at the NSA? And what’s the goofiest thing you can legally say about your time at the NSA?

Grant: Haha, yeah. I have some anecdotes about crazy things but sadly, I can’t speak much on those. But I have met the previous director, General Alexander, and received a coin from him which was pretty crazy. My coworker was briefing him and a lot of higher ups and wearing a Hawaiian shirt.

Probably the worst thing I can say about NSA is that their cafeteria food kinda sucks. And parking. Parking really sucks.

Ken Gene: What did you do when you got stuck on a problem, or you had trouble debugging. How long did it take you to debug, and solve the problem? What steps did you take?

Grant: So it really depends what I’m working on. If it’s web apps it’s a little more straight forward to do debugging. I think the hardest problems I’ve encountered were generally issues with unreliable networks, and assembly code. Looking at memory dumps gives me headaches.

Josh Harrington: Another question, favorite programming language(s)?

Grant: Um, right now I’m pretty fond of JavaScript but previously I would say C. I realize that’s kind of a big jump.

Adam Odell: What college did you go to?

Grant: I went to Dartmouth in Hanover, NH for a CS degree

Josh Harrington: Lol yes, a BIG jump… I am a fan of PHP mainly although I code a lot of JavaScript using Appcelerator now with my mentor. what would you say is/was your hardest (or one of your hardest) obstacles to overcome while learning / getting used to a new environment in the dev environment?

Grant: Honestly, doing development on Windows was the biggest pain I think, but that’s probably because I don’t have a lot of experience there. I found using JS and Node to be extremely easy to set up (especially with NPM). And Python isn’t bad once you start using virtual environments.

Ken Gene: Have you ever met someone at work, with no cs degree or anyone with no college degree at all? Just self-learn code. How will employers feel about hiring someone with no degree, but they went to a coding bootcamp instead.

Grant: I’ve met a couple people without college degrees, but these were people who had been in the weeds, hacking away, since they were very young. I found they had a much better understanding of code than I do which might just be because of years of hands on experience, alongside their natural curiosity for how things work. I also knew another really bright programmer who went to CMU, but he only went to class to take the tests. Otherwise he just textbooks and coded in his spare time.

I think if you’re genuinely interested in coding and tech then code school could be a good way to go, but if you’re just doing it to get the “cool job” you’re never going to be a great software engineer. People hiring you want to see that you’re curious and that you want to continue to learn. You can’t expect to go to a code school and get a job and be done with the learning part.

Rodrigo Argumedo (me): What is your typical advice for new programmers on joining the Computer Science field?

Grant: Hmm, so if I could go back in time and give my sophomore self some advice, it would probably be this:

  • Don’t be intimidated by people who know more than you. Everyone starts from square one. And don’t let others make you feel bad for not knowing something.
  • Pick one language in the beginning and learn it WELL. Preferably something that makes you think about memory management. After that, all other languages will come to you fairly easily.
  • Have fun! Build things you want to use. You learn so much just by messing around with code.
  • One last advice point: Never roll your own crypto.

Reposted from Starting Day One Medium publication.