• Tweet

  • Post

  • Share

  • Relieve

Ascend logo

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

I am fascinated past coding. It's everywhere! Every single 1 of the digital experiences nosotros bask is the result of code.

But honestly, I know about nothing most how it works or how the people backside the code — software engineers — do what they practise. To find 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 near her journey — from wanting to exist a doc, to studying computer science at Stanford, to thriving in the top echelons of software engineering. We also talked virtually some common misconceptions about software engineers, what it'southward like to work in a predominately white and male industry, and how to nail an interview for a job similar hers.

Tin can you tell me a little fleck about what your job entails? What does the solar day-to-twenty-four hours look like?

It can exist dissimilar depending on the day. But usually, information technology starts with looking through what I have to exercise for the day. I know a lot of software teams use task management tools. My team specifically uses Jira equally a ticketing system, and nosotros have sprints.

A dart will exist a week or two. In that amount of time, yous're supposed to get "x, y, and z" done. I'll look through those to-dos and make certain I'1000 on track — look at the tasks I need to do for the twenty-four hour period, and do them.

Then coding, of course. Merely at that place's a lot more to software engineering than coding. You lot lawmaking. You test. You deploy your code. You monitor your code, and brand certain things are working properly. Simply then, there can also be a lot of meetings around product evolution or new features that need to exist built on the team, and how we're going to build those features. I meet with engineers a lot on the plan for implementation. In that location'due south besides a lot of pair programming, or working together with some other coder to solve problems.

Did you always know that you wanted to be a software engineer?

No, not at all. I didn't fifty-fifty know what it was until I was in college. I wanted to be a physician in high school or a biomechanical engineer. My dad'due south a doctor. My mom's a chemical engineer. So something with Stalk, I knew, was going to be my path. But I didn't feel super inspired by the pre-med rails or a lot of my engineering classes — I couldn't really see how any of those skills or any 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 interesting and motivating to me.

I went to Stanford. And Stanford'south a huge computer science school. A lot of my friends were taking intro computer science courses. I had never coded. I just really didn't know what information technology was. Just everyone was having a bang-up time and seemed to detect it really interesting. Then around my sophomore year, I decided to accept a class in computer science. My mentality was, if I similar this class, I'll take the next form. And and so after that, if I like that course, and then I'll major in information technology. And that's basically what happened. Information technology was at that point I realized this is what I wanted to do.

What were those classes similar? When you offset started doing it, was it something that you were scared of or intimidated by? Or was it more than 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. Simply the introductory information science courses at Stanford are super accessible. I even think they're available publicly. They really start from the basics. You don't have to know how to lawmaking at all to take the course. The professors were really swell and they actually walk you through, from the very, very basics, of what you need to know in order to code.

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 straight application of skills. I am learning things that I will eventually utilise in my career.

At kickoff it's a lot of puzzles. You lot code a little robot that navigates a maze. Information technology's elementary stuff. I think my final project in my first form was edifice an extremely basic "Facebook." They offset you off simple and gradually ramp up the intensity.

When you were in higher, you interned at both Lyft and Slack. Can you talk a petty scrap about how you landed those internships and what the experience was like for you?

I had a very interesting path to my first internship. Stanford does a lot of job 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 zero clue how to land a computer science internship.

I got one interview for front end-end web development, which I had never washed. A lot of Stanford'due south introductory courses focus on dorsum-finish work, like algorithms and data structures. So they were asking me questions about spider web development I just couldn't answer. Information technology was terrible. I was really lost. I had no idea how I was going to get a chore for the summertime.

Then, I remembered some of my friends were applying to an organization called Code2040. Code2040 is an organization that helps Black and Latinx students who study informatics enter the software engineering tech field. They take partnerships with companies that have on Code2040 interns. And it's a pretty intense process. You lot take to exercise a technical interview to fifty-fifty get into the Code2040 programme. You have to do a writing interview and a video interview, besides.

Once you brand it into Code2040, at that bespeak you tin commencement interviewing with their partner companies. At the fourth dimension, Lyft was a partner visitor with Code2040. I interviewed and the interview process was really hard. But Code2040 definitely helps you lot navigate that process, also. And then it was a good program for me, as someone who had no clue how to get into tech at all.

I interviewed with Lyft and then eventually got a chore offering. Code2040 is a summertime-long programme. You go to workshops, you lot network with a lot of other people who are in the program, you lot piece of work with other companies who are likewise partner companies. Slack is a partner company who I networked with during my first summer interning and and so was able to apply that connection when it came to getting an internship the next summertime.

Tell me more than about the interview process. What was hard about it? What was that process like?

Now, having worked at Lyft full time, I know that their interview process is very dissimilar. Just at the time, it was very similar to a lot of other tech companies, where they inquire you lot random coding questions that don't really simulate what it's similar to be a software engineer on the job. Like, I tin't tell y'all the concluding time, on the task, I used a "breadth-first search algorithm." Only I'g pretty sure that was one of my interview questions for Lyft. And yous have to code on a whiteboard, which I never actually did — usually all of your coding happens on a figurer.

The interview test was just not very indicative of what I would be doing on the job. And I really had to written report for it. I think studying for software engineering interviews is a whole ordeal in and of itself. And at the time, I didn't really sympathize that, so I didn't study well. Luckily, I had some skills nether my belt that served me in my interview. But it fabricated it difficult because I was very dislocated virtually how this was going to translate into my job.

Y'all 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 "Keen the Coding Interview," which basically goes through all of the dissimilar kinds of questions that a lot of the big tech companies utilize — similar Google, Facebook, and Microsoft. A lot of mid-size and smaller companies base of operations their interview models off of those large tech companies.

There's a lot of new innovation that'south happening in that space, which will brand the process less of a test that y'all have to study for. But you usually do. And there are a lot of resources online, like Meetcode. Basically yous have to practise exercise bug, like practice math bug as if you're studying for a exam, except information technology'south practice coding questions that exam you on your knowledge almost data structures and different kinds of algorithms — all kinds of things that you have to brush upward on in order to do the interviews.

I know a lot of people who give themselves several months to report for interviews before even starting the procedure with whatsoever company. In higher, I was definitely studying for at least two months before I would interview. When information technology came to interviewing for full time, I likewise started studying a few months before I started interviewing.

So you lot have to basically start studying before yous even know if you lot have an interview lined upwards?

Yeah, and a lot of companies sympathise that that is function of the procedure. Recruiters are very, in my experience, flexible in giving y'all as much time as you want to written report. For my current job, I remember asking my recruiter if I could have four or five weeks to written report before I actually did the interview. And they were similar, "Oh, yeah, I totally get it." But a lot of people, once they make up one's mind that they're going to switch jobs, they know that means it's time to start studying.

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

Yes, in most cases. Lyft does an interview where you get an hour to code a modest project on your own. The interviewer doesn't take to be at that place, so you lot can focus. Merely I call back in all other interviews that I've been in, you're coding in front of someone or pair programming with someone during the interview. It's a lot of pressure.

Y'all practice pair program on the job. So interviews that involve pair programming I recollect are actually great. Only coding with someone watching and judging your performance is not typical on the chore. A lot of it you're just doing on your own. It's definitely something to get used to considering it's not something that you do ordinarily while you're studying informatics or working every bit a software engineer.

Tell me more near pair programming. Is information technology just programming with another person on your team?

Pair programming is when you work with someone on your team or another squad on a problem that either you need help on or that you two are solving together. There's usually someone who's the "commuter" and then someone who is in the "passenger seat."

The driver is the ane who's actually typing. Merely you're problem solving together. Information technology'southward a very collaborative experience, which I like. I call up I've learned a lot doing that process, fifty-fifty in interviews. You lot tend to solve problems a bit meliorate and faster when you're working with someone in that fashion.

So y'all interned at Lyft and so were able to get a full-time gig in that location. How were you able to turn that internship into a full-fourth dimension position?

More often than not, if y'all do well during your internship, the visitor will give you a full-fourth dimension offering. So the large question is, how do you do well during the internship?

There are a lot of pieces to that. My misconception going in was that I needed to get my project washed perfectly and completely, which I didn't do when I was interning at Lyft. I think what people are really looking for when you lot're an intern on a team is your ability to communicate, both verbal and written advice, and your power to problem solve and work your mode about an abstruse problem. And so even if you're not able to finish the project, demonstrating those communication, organization, and project management skills, and figuring out how to implement them — that's a lot of what people are looking for when you're an intern.

What kind of questions practice you ask? Practise you lot make sure you lot ask questions to solve your problems? How fast are you able to ramp up and learn new technologies, skills, and languages quickly? What kind of energy do you bring to the team? What is it like working with yous?

Now, beingness on the other side and having been an intern mentor, information technology definitely helps when your intern is super excited and super curious. That's what's and so fun about having interns. Not but are you helping to bring more people into the visitor, only you desire to brand sure that those people are positive and fun to work with.

Exuding that during your internship, that curiosity, that spice and passion for what you're doing, information technology definitely helps leave a positive, lasting impression on your team. If you take that, plus you're able to problem solve and go stuff done, you lot're pretty ready to get a full-time offering at the end of it.

I know very little about coding languages. How many coding languages have you learned over the years? And how long does information technology take to learn a new coding language?

In college, we were learning C and Associates, which are extremely low-level computer systems languages that y'all don't normally need to know. I as well learned Java and C++. Simply I don't utilise those very actively anymore.

In my professional person career, I take learned Python, Golang, PHP, React, and Ruby. Only every company uses something a piddling bit different. Or they introduce new languages that do different things. And and then that'south why I mentioned during your internship information technology'south a good thing if y'all're able to exhibit that you tin can acquire quickly.

When I started my internship at Lyft, I didn't know Python. I had no idea what information technology was. Luckily Python is a pretty approachable language. I remember I'm forever learning these languages. It's like learning an bodily oral communication in that way, where in that location's things that are irresolute all the time. There'south only a huge mix of things that these languages tin can do, and then you're constantly learning what those new things are.

For me, to actively lawmaking in a linguistic communication and experience comfy in information technology probably takes 4 weeks. But even at that indicate, you're still Googling a lot of stuff. I feel similar I Google how to exercise "for loops" in certain languages, which is a very basic thing. But each linguistic communication has different syntax for even simple things. And so luckily Google or any search engine is a smashing resource for learning how to do whatsoever you need to practise in any linguistic communication.

I Google the simplest things all the fourth dimension. I remember there was some Twitter thread recently where a lot of senior engineers were tweeting the things that they still have to look up. And it just helped a lot with my ain imposter syndrome, knowing that these people who I admire a lot because they're really slap-up engineers are as well looking upwardly very simple things.

How did you become your current chore at Stripe?

LinkedIn, honestly. I know LinkedIn is not for everybody. But I definitely use information technology as a tool for my career. I go along my LinkedIn up to engagement. I have my e-mail on in that location. People tin can reach out.

My electric current manager at Stripe reached out to me on LinkedIn. She just sent me a bulletin and was like, "Hey, I'chiliad hiring. Do you have any involvement?" And Stripe had ever kind of been on my radar. I wasn't really planning on leaving Lyft when I did. But I feel strongly that if at that place is an opportunity that seems interesting to you, you should at to the lowest degree have the conversation. So I did, and information technology went actually well.

From there, I was similar, I'm going to simply interview and see where it goes. Maybe it won't work out, and that'southward fine. And so and then, I started to study. I did the interview. You practise a phone screen interview, which is usually merely one or two questions with one person. And and so you lot practise an on-site, which now is merely all virtual. But the on-site interview involves about five interviews. Subsequently that, yous discover out if you lot got the chore or non, and and then you go into negotiations.

I think the hardest part a lot of the time is just getting your foot in the door, getting your resume recognized. I definitely apply LinkedIn to assist me make those connections.

Exercise y'all tend to get reached out to a lot by recruiters?

There are definitely more open up software technology roles than there are software engineers. That gap will continue to grow unless we practise a lot more to get more than people educated in information science. A lot of people will reach out to me about their open roles. When I was chore hunting, I was very proactive in reaching out to companies that I thought were interesting, even if they hadn't reached out to me. Then it's not all entering.

But, I'one thousand 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 retrieve I go a lot of inbound traffic because of these names that are on my LinkedIn, and on my resume. I know that that's not necessarily the case for a lot of other engineers — great engineers; improve engineers than I am — just considering they don't have these brand names on their resume. And so while there are a lot of open roles, I think that at that place'due south as well a lot of elitism in the industry.

I know of companies that are like, "Oh, we only rent from the top five computer science schools," which is ridiculous. I think in that location's still that weird tension in that there are actually a lot of people who can practise this work. There are a lot of open roles. But then people have unreal expectations of what a resume is supposed to wait like.

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

When you do have a ton of opportunities like that coming your style, how do you decide which ones are worth your time?

I remember it depends a lot on what y'all want to do. There are a lot of unlike kinds of software engineering. So when my manager at Stripe reached out to me, information technology was for a full-stack, more production-engineering office. I was doing a lot of infrastructure applied science at Lyft and was interested in what it would be like to work on a product team.

Stripe is too only super well-known and has a reputation for being a good identify for engineers and developers. That was a particular combination that was interesting to me. But someone who wants to piece of work on a lot of AI and machine-learning stuff might not be super interested in a product office at Stripe. And then when I get inbound requests for the hot new AI startup, it's not going to peak my involvement as much considering that'southward not necessarily where my interests lie.

There are all other kinds of factors, like what size company do you desire to piece of work at? Are you interested in a Google-size or a five-person startup?

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

In the futurity, that might change. I might look for something completely different. And I think that I probably should at some point just to widen my range of experiences.

But that's how I narrow it downwards. I take a pretty articulate idea of what I am looking for when I commencement a job hunt. And then I'll filter out based off of those requirements I have.

Yous've mentioned a few types of software engineering? Can you tell me a little more virtually all the different types?

In that location are a lot of different types of software technology. I probably don't even know all of them. I'thousand forever learning nigh new areas where people are innovating.

The basics are front-finish, which is more than similar web development or what you see on your computer screen. Back-end is more like servers and algorithms and things that you don't see every bit a user but that help power the front-end. And so there are people who are full-stack, who do both of those things.

In that location's infrastructure technology, which is building out services, like microservices, servers, monolithic servers, or observability pipelines — things that need to sit underneath the back-finish layer in order for information technology to work. A lot of programmer tooling is considered infrastructure, things that keep the upper layers working. That's a lot of what I did at Lyft.

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

Anywhere your interests lie, in that location'due south probably a kind of software applied science that fits that.

Is it challenging to switch betwixt those dissimilar types?

I retrieve the most difficult part is just learning the new technology. Hiring managers are pretty open — like if you've only worked in infrastructure, they are pretty willing to hire you on to a product team or vice versa. That can be good because they have a different perspective than people who've only worked in infrastructure.

The biggest thing you have to do is learn the new language and learn the new technologies. And there are a lot of resources in society to larn. There are Udemy courses, books, and online projects or tutorials you can follow to understand how to exercise something.

I think the parts that are a bit more difficult to learn are perhaps 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 information science or software engineering.

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

Definitely building, testing, and maintaining software is the core skill gear up. Getting your foot in the door and getting a task is a lot about developing those interview skills, which there are a lot of resource for developing those skills, as well. I'd say a lot of the skills that people don't really talk almost that you lot demand to be a good software engineer are more of the soft skills, like verbal and written communication, organization, and project management skills.

Can you lot talk a piffling bit about some of the misconceptions of this career path?

A big misconception is that software engineers merely code, which is non true. A lot of my job is writing documentation to explain things to people or communicate or pitch ideas. A lot of information technology is meetings where nosotros figure out the direction of a particular piece of software or a product. And those all involve a lot of other skills that are not coding.

I think people have this vision of software engineers that we're in a night room coding by ourselves all the time, which is the vibe sometimes. I'm non going to prevarication. Sometimes there'south a trouble you need to hammer out with lawmaking. But a lot of the job is very collaborative and not solo work at all — a lot of planning, existence a team player, communicating what you lot're doing, and asking questions you might accept then that people tin help yous.

Another piece that'due south huge that people don't really consider is how important mentoring people is in software engineering science. That can mean mentoring people who are younger than you or only people who are new to your team. Software engineering is such a squad sport, and I think a large skill is making sure that new people who are introduced to any it is that you're working on tin can work on it, be productive, and be an active fellow member of the team. 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 manufacture in general, it's predominantly white. It's predominantly male. Would yous mind talking a little bit about what it's like to navigate an manufacture like that?

It's hard. It's definitely a struggle. I have a lot of privilege in that I am able to navigate the field with the school I went to and the jobs I've had previously. And even with that, you definitely become people who doubt your skills, doubt your skill set, and undermine your work, which sucks. Information technology'due south hard and not off-white and definitely needs to alter.

A lot of navigating it, for me, has been my ain internal work of staying confident, sure of myself, sure of my skills, my education, and everything that I bring to the table, even if not everyone sees that. It'due south definitely articulate that a lot of people, companies, and teams practise see the skills that everyone can bring to the table despite their groundwork or the school they went to or visitor they previously worked at. But depending on the culture of the company, the specific makeup of the company, and your manager, it's definitely a daily grind to do it. I think it's more work than the white dude software engineer has to go through to find a team and find a company that will work for you.

One of the things I ask when I'm vetting companies and teams is, what does variety look similar at the company? How does your company think about or care for diversity and inclusion? Are there other people at the company who look like me who are doing well and feel good? That's definitely a slice of my research. And it's hard work in and of itself to vet those things and effigy those things out. Just it'due south necessary in order for me to be the best employee or engineer that I can exist.

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

Information technology can be different depending on who you lot are and what y'all struggle with in detail. For me, I struggle with imposter syndrome. So one of my struggles on a daily basis is just feeling like I'm doing a adept job. It actually helps me when people give me feedback at all just and then I know how I'm doing. And likewise it helps when I get some positive reinforcement.

Because applied science is a space that's and so male dominated and white male person dominated, it often can feel like I'm not measuring up because I retrieve a lot of people sometimes don't recognize the skills that I take because of my different identity. And so staying confident and staying sure of myself has been a particular challenge for me in software engineering.

There'due south also this notion of the 10x engineer — the engineer who just gets the work done of 10 other engineers and is super productive. That is an ideal that people expect out of engineers. But it'south but not true and not actually attainable, and information technology can affect work-life balance. Maintaining those boundaries, agreement what you're able to get washed in a day, and knowing that that'south OK is as well something that feeds into imposter syndrome. Information technology's something that I have struggled with and that I've had to bargain with.

What really helps is having a community of people who are doing what you're doing, either at your company or outside of information technology, or ideally both, who you can talk to nigh whatever struggles you have. Because 10 times out of x, when I've asked someone else in my customs or in my support group of other software engineers, "Have you lot struggled with this?" the respond is yes.

And whether they figured out the solution or non, information technology 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 engineering or not.  Having your people, having your community, helps with whatsoever kind of struggle you may face.

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

It depends on a lot of different factors. Your location — if you lot're a software engineer in Alabama, your salary will look different than a software engineer in San Francisco because of the dissimilar costs of living. Visitor size also matters, and what stage of growth they're at. The Googles and the Facebooks volition have the higher offers. Companies that are maybe pre-IPO and going through a lot of growth, they'll also have high offers. Companies that are maybe pre-seed startups or seed-stage/Series A startups will have lower salaries. But there are a lot of upsides when you lot think almost equity 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 you are non making $100,000 out of college, you're probably being underpaid or could at least discover a company that would pay you more than. I'm not certain what that looks like if yous're finding a chore in Atlanta, for example. It might expect very dissimilar.

In that location are resources online to help yous figure out, if you only got an offer, if information technology'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 figure out salary information.

I would also say talk to your friends. People don't talk about how much they brand enough, which I call up leads to a lot of pay inequity in the industry. I would direct up ask people, "How much do you make?" When I have seen people realize that they are not being paid fairly, information technology is because people around them accept been honest well-nigh what they brand and they realize something'due south not calculation upwardly. So I would talk to people and encourage them to be transparent because it's what needs to happen in order to concord these companies, that a lot of times don't want to pay you fairly, accountable.

What do y'all honey almost software engineering?

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

I savour my teams. I relish working with people, and I savour doing my own thing a little flake. Software engineering definitely allows you to do both and, depending on what kind of company you work at, allows you to do more than of one or the other based on what you want. There'south a lot of flexibility in that way, also.

Is there annihilation that you wish yous'd known most this career path before you lot started?

When I started and majored in computer science, I did not know the intensity of interviews and how much yous had to study for them. Even if yous're 10 years into your career, if y'all want to switch jobs, yous have to study. I did not know that.

I also wish I would have known all the different kinds of engineering that you tin can do. When I started my full-time task at Lyft, I didn't actually care which part of the stack I was working on. In my head it was kind of even so. My first two internships were different in what I was working on. But that wasn't what I was really paying attending to at the time. I was just trying to do a adept job but non actually thinking nearly, what is it that I want to work on? What are the kinds of problems that I think are interesting and want to solve? Is it infrastructure problems? Is it product problems? Is it front-end? Is it back-terminate?

For example, I actually wish I had invested more fourth dimension in learning mobile engineering. I could switch into doing that and probably will at some point because I discover information technology interesting. Only I just didn't even call up about any of those things. It tin really modify your solar day-to-day. It can actually change the kind of work you do, depending on what kind of team y'all're on, what their stack looks similar, 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 beat out?

I really look up to Erica Joy Baker. She is a software engineer. She worked at Slack at the fourth dimension that I was interning there, and I had known of her before that. She was at Google for a really long time. And now she has transitioned into management and is the Main Engineering Officer for the Autonomous Congressional Entrada Committee. I just actually similar the fashion 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 likewise writes a lot online to give you more insight into how she'south thinking.

She is someone who brings her whole cocky to work and uses her unique qualities to atomic number 82. I really admire that and would love to exude more than of that at piece of work. She seems to be super confident in herself and her skills. And people are super confident in her because of that. And I also admire that.

Too, transitioning into management and moving up that career ladder into a managing director of applied science is likewise something that's super interesting to me and I think something that I will eventually pursue. I think they're solving a higher level of engineering science questions about organization and how people work together, which is super interesting to me.