• Tweet

  • Mail service

  • Share

  • Save

Ascend logo

Where your work meets your life. See more from Ascend hither.

I am fascinated past coding. It's everywhere! Every unmarried one of the digital experiences nosotros savour is the result of code.

Merely honestly, I know well-nigh nothing about how it works or how the people behind the code — software engineers — practice what they do. To discover out, I spoke with Lindsey Redd. Lindsey has coded for some of the coolest tech companies in the world: Slack, Lyft, and now Stripe. She shared with me the details nearly her journey — from wanting to exist a doctor, to studying computer science at Stanford, to thriving in the top echelons of software engineering. We also talked nigh some mutual misconceptions about software engineers, what it's similar to work in a predominately white and male industry, and how to blast an interview for a job like hers.

Can you tell me a little bit well-nigh what your job entails? What does the 24-hour interval-to-day look like?

It tin can exist different depending on the day. But usually, it starts with looking through what I have to do for the twenty-four hours. I know a lot of software teams apply task direction tools. My team specifically uses Jira every bit a ticketing organization, and we have sprints.

A sprint will be a calendar week or two. In that amount of time, you're supposed to get "x, y, and z" washed. I'll look through those to-dos and make sure I'one thousand on track — await at the tasks I need to do for the day, and do them.

And then coding, of form. But at that place'southward a lot more than to software engineering science than coding. You lot code. You exam. You deploy your code. You monitor your lawmaking, and make sure things are working properly. Only then, in that location tin too exist a lot of meetings around product evolution or new features that demand to be built on the team, and how we're going to build those features. I meet with engineers a lot on the plan for implementation. There'south as well a lot of pair programming, or working together with some other coder to solve bug.

Did yous ever know that you wanted to exist a software engineer?

No, not at all. I didn't even know what it was until I was in college. I wanted to be a doctor in loftier school or a biomechanical engineer. My dad'due south a doctor. My mom'due south a chemical engineer. And so something with Stalk, I knew, was going to be my path. Simply I didn't feel super inspired by the pre-med rail or a lot of my applied science classes — I couldn't actually see how any of those skills or whatever of the things I was learning would be applied. I was looking for something else in the Stem field that would exist a bit more than interesting and motivating to me.

I went to Stanford. And Stanford's a huge computer science schoolhouse. A lot of my friends were taking intro computer science courses. I had never coded. I just really didn't know what it was. But everyone was having a great time and seemed to find information technology actually interesting. So around my sophomore yr, I decided to accept a class in information science. My mentality was, if I like this form, I'll accept the next course. And and so after that, if I similar that class, then I'll major in it. And that's basically what happened. It was at that bespeak I realized this is what I wanted to do.

What were those classes like? When y'all first started doing it, was it something that you were scared of or intimidated by? Or was it more accessible?

If I hadn't seen other kids taking the classes, other people who didn't know how to code, I would have been a lot more than intimidated. But the introductory computer scientific discipline courses at Stanford are super accessible. I even retrieve they're available publicly. They really start from the basics. You lot don't accept to know how to code at all to take the course. The professors were really great and they really walk you through, from the very, very basics, of what you need to know in order to lawmaking.

I enjoyed the classes because a lot of it is coding. And that is what I currently do right now on the job. I like that direct application of skills. I am learning things that I volition somewhen use in my career.

At first it's a lot of puzzles. You code a lilliputian robot that navigates a maze. It's simple stuff. I call up my final project in my first class was edifice an extremely basic "Facebook." They start you off simple and gradually ramp up the intensity.

When you were in higher, you interned at both Lyft and Slack. Tin can you talk a little bit nigh how you landed those internships and what the experience was similar for you?

I had a very interesting path to my start internship. Stanford does a lot of chore fairs specifically for computer science students where tech companies in Silicon Valley evidence up and recruit. I had no idea how to navigate those spaces. I had aught clue how to land a computer science internship.

I got one interview for front-end web evolution, which I had never done. A lot of Stanford's introductory courses focus on back-terminate work, like algorithms and data structures. And so they were asking me questions about web development I just couldn't answer. It was terrible. I was really lost. I had no idea how I was going to get a task for the summer.

Then, I remembered some of my friends were applying to an organization chosen Code2040. Code2040 is an organization that helps Black and Latinx students who report informatics enter the software engineering tech field. They take partnerships with companies that accept on Code2040 interns. And it's a pretty intense process. You have to do a technical interview to even become into the Code2040 program. You have to do a writing interview and a video interview, as well.

Once yous make information technology into Code2040, at that betoken you tin can start interviewing with their partner companies. At the time, Lyft was a partner company with Code2040. I interviewed and the interview process was really hard. Only Code2040 definitely helps yous navigate that process, also. So it was a expert program for me, equally someone who had no clue how to get into tech at all.

I interviewed with Lyft then somewhen got a job offer. Code2040 is a summer-long programme. You become to workshops, you network with a lot of other people who are in the program, you work with other companies who are as well partner companies. Slack is a partner visitor who I networked with during my starting time summer interning and and so was able to use that connection when it came to getting an internship the next summer.

Tell me more nigh the interview process. What was difficult about information technology? What was that process like?

Now, having worked at Lyft full time, I know that their interview procedure is very unlike. Just at the time, information technology was very similar to a lot of other tech companies, where they ask you random coding questions that don't actually simulate what it's like to be a software engineer on the task. Like, I can't tell you the last fourth dimension, on the job, I used a "latitude-starting time search algorithm." Simply I'm pretty sure that was one of my interview questions for Lyft. And you lot accept to lawmaking on a whiteboard, which I never really did — usually all of your coding happens on a reckoner.

The interview examination was merely not very indicative of what I would be doing on the chore. And I really had to report for information technology. I think studying for software engineering science interviews is a whole ordeal in and of itself. And at the time, I didn't really sympathise that, so I didn't study well. Luckily, I had some skills under my chugalug that served me in my interview. Merely information technology made it hard considering I was very confused nigh how this was going to translate into my job.

You have to written report for software engineer interviews? What does that look like?

The best communication I was given was to purchase this book called "Cracking the Coding Interview," which basically goes through all of the different kinds of questions that a lot of the big tech companies use — like Google, Facebook, and Microsoft. A lot of mid-size and smaller companies base their interview models off of those large tech companies.

There'southward a lot of new innovation that's happening in that infinite, which will make the process less of a test that yous have to study for. Only you usually practise. And at that place are a lot of resources online, like Meetcode. Basically you accept to do practise bug, like practice math issues as if yous're studying for a exam, except it's practice coding questions that test you on your knowledge about information structures and different kinds of algorithms — all kinds of things that you have to brush upwards on in order to practice the interviews.

I know a lot of people who requite themselves several months to study for interviews before fifty-fifty starting the process with any visitor. In college, I was definitely studying for at least 2 months before I would interview. When it came to interviewing for full time, I besides started studying a few months before I started interviewing.

Then yous have to basically beginning studying before yous even know if y'all take an interview lined up?

Yeah, and a lot of companies sympathize that that is role of the procedure. Recruiters are very, in my experience, flexible in giving you as much fourth dimension as yous want to study. For my current job, I remember asking my recruiter if I could take four or five weeks to study before I really did the interview. And they were similar, "Oh, yeah, I totally get it." But a lot of people, in one case they decide that they're going to switch jobs, they know that ways information technology's time to get-go studying.

When y'all're answering these questions, are you coding live in front of the interviewer?

Yes, in about cases. Lyft does an interview where you get an hour to code a small projection on your own. The interviewer doesn't take to exist there, and so you can focus. But I call up in all other interviews that I've been in, you're coding in front of someone or pair programming with someone during the interview. Information technology's a lot of pressure level.

You do pair program on the job. So interviews that involve pair programming I think are really smashing. Just coding with someone watching and judging your operation is not typical on the job. A lot of it you're only doing on your ain. It'south definitely something to get used to because information technology's non something that you exercise normally while you're studying informatics or working as a software engineer.

Tell me more near pair programming. Is it but programming with another person on your team?

Pair programming is when you lot work with someone on your team or another team on a problem that either y'all need aid on or that y'all two are solving together. There'due south usually someone who's the "driver" and and so someone who is in the "passenger seat."

The driver is the one who'southward actually typing. But you're problem solving together. It'due south a very collaborative feel, which I like. I recollect I've learned a lot doing that process, fifty-fifty in interviews. You tend to solve problems a scrap meliorate and faster when you're working with someone in that style.

So you interned at Lyft then were able to get a total-time gig there. How were you able to turn that internship into a full-time position?

Generally, if you do well during your internship, the company volition give you a full-time offer. So the large question is, how exercise yous do well during the internship?

There are a lot of pieces to that. My misconception going in was that I needed to become my project washed perfectly and completely, which I didn't do when I was interning at Lyft. I call up what people are really looking for when you lot're an intern on a team is your ability to communicate, both verbal and written communication, and your power to problem solve and work your way nigh an abstract problem. So even if you're not able to finish the project, demonstrating those communication, organisation, and project management skills, and figuring out how to implement them — that's a lot of what people are looking for when y'all're an intern.

What kind of questions practise you enquire? Do you brand sure you enquire questions to solve your problems? How fast are you able to ramp upward and learn new technologies, skills, and languages quickly? What kind of energy do you bring to the team? What is it like working with you?

Now, being on the other side and having been an intern mentor, it definitely helps when your intern is super excited and super curious. That's what'south so fun nigh having interns. Not only are you helping to bring more people into the company, but you lot want to make sure that those people are positive and fun to work with.

Exuding that during your internship, that marvel, that spice and passion for what you're doing, it definitely helps leave a positive, lasting impression on your team. If you have that, plus you're able to problem solve and get stuff done, you lot're pretty set to get a total-fourth dimension offer at the end of it.

I know very piddling about coding languages. How many coding languages have yous learned over the years? And how long does it have to learn a new coding linguistic communication?

In higher, we were learning C and Assembly, which are extremely depression-level calculator systems languages that you don't usually need to know. I also learned Java and C++. Just I don't use those very actively anymore.

In my professional career, I have learned Python, Golang, PHP, React, and Ruby. But every company uses something a little scrap different. Or they innovate new languages that practise different things. And and so that'southward why I mentioned during your internship information technology's a good thing if y'all're able to showroom that yous can acquire quickly.

When I started my internship at Lyft, I didn't know Python. I had no idea what it was. Luckily Python is a pretty outgoing language. I call back I'm forever learning these languages. It's like learning an bodily spoken language in that style, where there's things that are changing all the time. In that location's just a huge mix of things that these languages can practice, and and so you're constantly learning what those new things are.

For me, to actively code in a language and feel comfortable in information technology probably takes four weeks. But fifty-fifty at that signal, you're notwithstanding Googling a lot of stuff. I feel like I Google how to exercise "for loops" in certain languages, which is a very bones thing. But each language has different syntax for even uncomplicated things. So luckily Google or whatever search engine is a great resources for learning how to do any you need to exercise in any language.

I Google the simplest things all the time. I retrieve there was some Twitter thread recently where a lot of senior engineers were tweeting the things that they withal take to look up. And it just helped a lot with my ain imposter syndrome, knowing that these people who I admire a lot considering they're actually peachy engineers are besides looking up very unproblematic things.

How did you get your current job at Stripe?

LinkedIn, honestly. I know LinkedIn is not for everybody. But I definitely utilize it as a tool for my career. I go along my LinkedIn upwards to date. I have my e-mail on there. People tin attain out.

My current manager at Stripe reached out to me on LinkedIn. She just sent me a message and was like, "Hey, I'm hiring. Practice you have whatsoever interest?" And Stripe had always kind of been on my radar. I wasn't really planning on leaving Lyft when I did. Merely I feel strongly that if there is an opportunity that seems interesting to you, you should at least have the chat. So I did, and information technology went actually well.

From in that location, I was like, I'm going to but interview and see where information technology goes. Maybe it won't work out, and that'southward fine. So then, I started to written report. I did the interview. You do a phone screen interview, which is usually only one or two questions with one person. And and then y'all do an on-site, which at present is just all virtual. Only the on-site interview involves about five interviews. After that, you discover out if you got the job or not, and and then you lot go into negotiations.

I remember the hardest office a lot of the time is just getting your pes in the door, getting your resume recognized. I definitely use LinkedIn to aid me make those connections.

Exercise you tend to get reached out to a lot by recruiters?

There are definitely more open software applied science roles than there are software engineers. That gap will continue to grow unless nosotros practise a lot more to become more than people educated in figurer scientific discipline. A lot of people will reach out to me about their open roles. When I was task hunting, I was very proactive in reaching out to companies that I idea were interesting, even if they hadn't reached out to me. And then it's not all entering.

Only, I'm very privileged in the sense that I have my Stanford degree. I have Lyft, Slack, and at present Stripe all on my resume. And these are really well-respected organizations and institutions. I remember I get a lot of inbound traffic because of these names that are on my LinkedIn, and on my resume. I know that that'due south not necessarily the instance for a lot of other engineers — cracking engineers; meliorate engineers than I am — simply considering they don't accept these make names on their resume. So while there are a lot of open roles, I recall that there's also a lot of elitism in the industry.

I know of companies that are similar, "Oh, nosotros only rent from the summit five informatics schools," which is ridiculous. I think there's still that weird tension in that there are really a lot of people who tin can do this work. In that location are a lot of open roles. Simply and so people take unreal expectations of what a resume is supposed to look similar.

And of course the interviews are intense, as I was describing. Not everyone has the resource to prepare for three months for an interview. So there needs to be some bridging of those gaps there, in my opinion.

When y'all do have a ton of opportunities similar that coming your way, how do you decide which ones are worth your time?

I think it depends a lot on what you lot want to do. There are a lot of different kinds of software engineering science. And so when my director at Stripe reached out to me, it was for a total-stack, more product-engineering role. I was doing a lot of infrastructure engineering at Lyft and was interested in what information technology would be like to work on a product team.

Stripe is also just super well-known and has a reputation for being a expert identify for engineers and developers. That was a detail combination that was interesting to me. But someone who wants to work on a lot of AI and machine-learning stuff might non be super interested in a product role at Stripe. And so when I go inbound requests for the hot new AI startup, it'south not going to peak my interest as much because that's non necessarily where my interests lie.

At that place are all other kinds of factors, like what size visitor do you lot desire to work at? Are you interested in a Google-size or a five-person startup?

The company choices I've made so far are all pretty on par with each other. Slack, Lyft, and Stripe are all similarly sized, and have similarly sized applied science organizations. Valuations are in a similar realm. They were all pre-IPO when I started working at these companies, which is something that I was especially looking for.

In the hereafter, that might change. I might expect for something completely unlike. And I remember that I probably should at some point just to widen my range of experiences.

But that's how I narrow information technology down. I have a pretty articulate thought of what I am looking for when I start a job chase. And so I'll filter out based off of those requirements I have.

Yous've mentioned a few types of software applied science? Tin can you tell me a little more about all the dissimilar types?

There are a lot of different types of software engineering. I probably don't even know all of them. I'm forever learning about new areas where people are innovating.

The basics are front-end, which is more than like spider web development or what you see on your calculator screen. Back-stop is more like servers and algorithms and things that you don't come across as a user but that help ability the front-end. And and so at that place are people who are full-stack, who do both of those things.

In that location'southward infrastructure engineering, which is building out services, like microservices, servers, monolithic servers, or observability pipelines — things that need to sit underneath the back-end layer in club for it to work. A lot of programmer tooling is considered infrastructure, things that go along the upper layers working. That'southward a lot of what I did at Lyft.

There's machine learning and bogus intelligence engineers. There's information engineering. There's SRE, which is site reliability engineers — they keep the lights on and brand certain everything'south working properly. In that location are QA engineers, who examination the quality of the things that other engineers are building. And they build automated systems in order to test the quality of products. And there's mobile engineering science — people who build iOS apps, Android apps, which is a whole different kind of skill set.

Anywhere your interests lie, at that place's probably a kind of software engineering that fits that.

Is information technology challenging to switch between those different types?

I think the most difficult part is merely learning the new technology. Hiring managers are pretty open — similar if you've simply worked in infrastructure, they are pretty willing to hire you on to a production team or vice versa. That can be good because they accept a different perspective than people who've but worked in infrastructure.

The biggest thing you have to do is learn the new language and learn the new technologies. And in that location are a lot of resource in social club to learn. In that location are Udemy courses, books, and online projects or tutorials yous can follow to sympathize how to exercise something.

I recall the parts that are a bit more than difficult to acquire are maybe AI and machine learning because they crave a very specific, more math-based education. Otherwise it's pretty straightforward to lean into a different area of computer science or software technology.

If I wanted to become a software engineer, what are the most important skills that I should exist developing right now?

Definitely building, testing, and maintaining software is the cadre skill set. Getting your human foot in the door and getting a job is a lot nigh developing those interview skills, which there are a lot of resources for developing those skills, every bit well. I'd say a lot of the skills that people don't really talk about that you need to be a good software engineer are more than of the soft skills, like verbal and written communication, organization, and project management skills.

Can you talk a little flake near some of the misconceptions of this career path?

A big misconception is that software engineers but code, which is not true. A lot of my job is writing documentation to explicate things to people or communicate or pitch ideas. A lot of it is meetings where we figure out the management of a item piece of software or a product. And those all involve a lot of other skills that are not coding.

I remember people have this vision of software engineers that we're in a dark room coding past ourselves all the time, which is the vibe sometimes. I'm not going to lie. Sometimes in that location's a trouble y'all need to hammer out with code. Just a lot of the job is very collaborative and not solo work at all — a lot of planning, existence a squad player, communicating what you're doing, and asking questions you lot might have so that people tin aid you.

Another piece that's huge that people don't actually consider is how of import mentoring people is in software engineering. That can mean mentoring people who are younger than y'all or just people who are new to your squad. Software engineering science is such a team sport, and I call up a big skill is making sure that new people who are introduced to whatever it is that y'all're working on can work on it, be productive, and be an agile member of the squad. That involves getting people ramped upward, helping them, answering a lot of questions, and being able to communicate your ideas.

Software applied science and the tech industry in general, it's predominantly white. Information technology's predominantly male person. Would you heed talking a little fleck about what it's like to navigate an manufacture similar that?

It's hard. It'southward definitely a struggle. I take a lot of privilege in that I am able to navigate the field with the schoolhouse I went to and the jobs I've had previously. And even with that, you definitely go people who doubtfulness your skills, doubt your skill set, and undermine your work, which sucks. Information technology's hard and not fair and definitely needs to change.

A lot of navigating it, for me, has been my own internal piece of work of staying confident, sure of myself, sure of my skills, my education, and everything that I bring to the table, fifty-fifty if not everyone sees that. It's definitely clear that a lot of people, companies, and teams do see the skills that everyone can bring to the tabular array despite their background or the school they went to or company they previously worked at. But depending on the culture of the company, the specific makeup of the visitor, and your manager, it's definitely a daily grind to do it. I call up information technology'south more than work than the white dude software engineer has to go through to notice a team and find a company that will work for yous.

One of the things I inquire when I'm vetting companies and teams is, what does variety look like at the company? How does your company think about or treat diversity and inclusion? Are there other people at the company who look like me who are doing well and feel expert? That's definitely a piece of my research. And information technology'southward hard piece of work in and of itself to vet those things and figure those things out. But it'south necessary in order for me to exist the best employee or engineer that I can exist.

What are some of the other obstacles and challenges of this career path?

It tin be different depending on who you are and what y'all struggle with in particular. For me, I struggle with imposter syndrome. So one of my struggles on a daily basis is just feeling like I'k doing a good chore. It actually helps me when people requite me feedback at all just so I know how I'grand doing. And likewise it helps when I go some positive reinforcement.

Because engineering science is a space that's so male dominated and white male person dominated, information technology often tin experience like I'k not measuring upwardly considering I retrieve a lot of people sometimes don't recognize the skills that I have because of my different identity. So staying confident and staying certain of myself has been a particular challenge for me in software engineering.

There'south likewise this notion of the 10x engineer — the engineer who just gets the piece of work washed of 10 other engineers and is super productive. That is an ideal that people expect out of engineers. But it'south but non true and not really accessible, and it tin affect work-life residue. Maintaining those boundaries, understanding what you're able to get done in a twenty-four hours, and knowing that that's OK is likewise something that feeds into imposter syndrome. It's something that I have struggled with and that I've had to bargain with.

What actually helps is having a community of people who are doing what you're doing, either at your company or outside of it, or ideally both, who you tin talk to about whatever struggles you lot have. Because 10 times out of 10, when I've asked someone else in my community or in my support group of other software engineers, "Take you struggled with this?" the answer is aye.

And whether they figured out the solution or not, it does feel better to know that other people are dealing with the same things that you are. I would suggest that for any career path, whether it be software technology or not.  Having your people, having your community, helps with whatsoever kind of struggle you may face.

Let's talk money. What should I expect to get paid in a software engineering role?

Information technology depends on a lot of different factors. Your location — if you're a software engineer in Alabama, your salary will look dissimilar than a software engineer in San Francisco because of the different costs of living. Company size also matters, and what stage of growth they're at. The Googles and the Facebooks will take the higher offers. Companies that are maybe pre-IPO and going through a lot of growth, they'll also take high offers. Companies that are maybe pre-seed startups or seed-stage/Series A startups will take lower salaries. But there are a lot of upsides when y'all think about disinterestedness and stock.

If you're in one of the coastal locations — San Francisco, New York, LA — some of these larger, more established tech hubs, if yous are not making $100,000 out of college, you're probably existence underpaid or could at least observe a visitor that would pay you lot more than. I'm not certain what that looks similar if you're finding a task in Atlanta, for instance. It might look very different.

In that location are resources online to aid you lot effigy out, if you just got an offer, if it's fair, depending on your location, your level, and the size of the company. I would recommend looking at websites like Levels.fyi and Glassdoor to effigy out salary information.

I would also say talk to your friends. People don't talk well-nigh how much they make enough, which I think leads to a lot of pay inequity in the industry. I would straight upwards ask people, "How much practice you make?" When I have seen people realize that they are not being paid fairly, it is considering people around them have been honest about what they make and they realize something'southward not adding up. And so I would talk to people and encourage them to be transparent because it's what needs to happen in order to hold these companies, that a lot of times don't want to pay you fairly, accountable.

What exercise you dear most software engineering?

Information technology'due south the mix of teamwork, collaboration, pair programming, and trouble solving with the ability to exercise a lot of solo work and figure problems out on your own. I savour the process of coding and not knowing what's actually going on, merely testing and working through an issue, Googling any I need to, and then getting to a solution. That feeling, that gratification of figuring out how to do something or solving a bug, is unmatched.

I relish my teams. I enjoy working with people, and I enjoy doing my own thing a little chip. Software applied science definitely allows y'all to do both and, depending on what kind of company you work at, allows you to do more of one or the other based on what you desire. In that location's a lot of flexibility in that fashion, besides.

Is in that location annihilation that you wish you lot'd known about this career path before you lot started?

When I started and majored in computer scientific discipline, I did not know the intensity of interviews and how much you had to report for them. Even if you're 10 years into your career, if you desire to switch jobs, you take to study. I did not know that.

I also wish I would take known all the dissimilar kinds of engineering that you can practice. When I started my full-time chore at Lyft, I didn't really care which part of the stack I was working on. In my head information technology was kind of all the same. My get-go two internships were unlike in what I was working on. Just that wasn't what I was actually paying attention to at the fourth dimension. I was just trying to exercise a good task just not really thinking about, what is information technology that I want to work on? What are the kinds of problems that I think are interesting and want to solve? Is it infrastructure bug? Is it product issues? Is it forepart-end? Is it back-stop?

For example, I actually wish I had invested more time in learning mobile technology. I could switch into doing that and probably will at some point because I find it interesting. Just I just didn't even think about any of those things. Information technology tin really change your day-to-solar day. It can really change the kind of piece of work you lot do, depending on what kind of team you're on, what their stack looks like, and what kind of product that they produce. I wish I had known those differences and how those kinds of teams differ in how they operate.

Okay, last question: Who is your career crush?

I really wait upwards to Erica Joy Bakery. She is a software engineer. She worked at Slack at the time that I was interning in that location, and I had known of her before that. She was at Google for a really long time. And now she has transitioned into direction and is the Chief Engineering Officer for the Democratic Congressional Entrada Commission. I merely really like the way that she shows up. I had the opportunity to speak with her a few years ago about her work and about how she approaches her work. She besides writes a lot online to give you more than insight into how she'due south thinking.

She is someone who brings her whole cocky to work and uses her unique qualities to lead. I really admire that and would beloved to exude more than of that at piece of work. She seems to exist super confident in herself and her skills. And people are super confident in her because of that. And I besides admire that.

Too, transitioning into management and moving upwards that career ladder into a director of engineering is also something that's super interesting to me and I think something that I will eventually pursue. I call back they're solving a higher level of engineering questions about system and how people work together, which is super interesting to me.