Increasing Your Sphere of Influence as a Staff Engineer

This ad is not shown to multipass and full ticket holders
React Summit US
React Summit US 2025
November 18 - 21, 2025
New York, US & Online
The biggest React conference in the US
Learn More
In partnership with Focus Reactive
Upcoming event
React Summit US 2025
React Summit US 2025
November 18 - 21, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

Discover practical strategies for expanding your influence as a staff engineer. This talk covers building technical credibility, effective communication, mentorship, and leading technical initiatives, helping you make a lasting impact within and beyond your engineering team.

This talk has been presented at React Advanced 2024, check out the latest edition of this React Conference.

FAQ

The speaker is Ian Schwartz, who works at CarGurus.

The talk focuses on 'How to Increase Your Impact as a Staff Engineer'.

Ian Schwartz works for CarGurus, a company that provides a marketplace for selling cars.

Ian Schwartz holds the title of Principal, which involves responsibilities similar to those of a staff engineer.

Ian Schwartz specializes in JavaScript, TypeScript, and functional programming.

Mentorship is crucial for helping junior developers grow, ensuring high-quality deliverables, and fostering a supportive team environment.

Ian Schwartz believes AI can help improve the quality of code review feedback by analyzing sentiment and suggesting more effective communication methods.

A staff engineer focuses on strategic projects, setting technical direction, advocating for the company's technology needs, and mentoring junior developers.

Public knowledge sharing is important for building influence and ensuring that solutions and best practices are accessible and discoverable by the entire team.

He suggests keeping hands-on with the codebase to stay in touch with team challenges while also making time for high-level problem-solving.

Ian Schwartz
Ian Schwartz
26 min
28 Oct, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Welcome to my talk at React Advanced 2024, How to Increase Your Impact as a Staff Engineer. In this presentation, I will give actionable tips on increasing your influence as a staff developer. Staff engineers have responsibilities such as identifying inefficiencies, performing background tasks, and balancing sprint work with staff-eng tasks. They also share knowledge through documentation and mentorship, and drive high-impact projects. Staff engineers ensure high-quality code through testing, advocacy for best practices, and innovation. To build influence, lead by example, be a mentor, and prioritize documentation and project management. Strategic thinking and problem-solving are crucial for staff engineers. Broadening expertise, showcasing work, and having public visibility are important for career growth and recognition. Open sourcing code and public engagement are valuable for staff engineers. Thank you for attending the talk!

1. Introduction

Short description:

Welcome to my talk at React Advanced 2024, How to Increase Your Impact as a Staff Engineer. I work at CarGurus, writing JavaScript since 2015, with a focus on functional programming in TypeScript. In this presentation, I will give actionable tips on increasing your influence as a staff developer. Let's discuss what a staff engineer is, focusing on strategic projects, setting technical direction, advocating for the company's technology needs, and supporting the growth of others. Staff engineers also participate in higher level discussions, make time-sensitive decisions, and tackle high impact challenges in prototyping and problem solving.

All right. My name is Ian Schwartz. Welcome to my talk at React Advanced 2024, How to Increase Your Impact as a Staff Engineer.

This is so let me talk a little about who I am. I work at a company called CarGurus. We make a marketplace for, you know, we don't sell cars, but you might sell your car on CarGurus. And although my title is Principal, we don't have a staff title, but Principal is the title that has a lot of the same responsibilities you would typically see in staff and other roles. I've been writing JavaScript in some form or another since 2015. I love TypeScript and functional programming. In fact, most of the talks I've given at other conferences have been about functional programming in TypeScript.

And really, you know, the goal of this presentation, this actually came out of another presentation that I went to where I was kind of hoping for this kind of content. And when it wasn't there, I said this is the talk I have to give. So, you know, we're going to basically give you some actionable tips on increasing your influence as a staff developer. This mainly focuses, you know, this is not going to focus on any relationship where you have direct reports or one-on-ones with people. You know, if anything, the challenge of this role is that we usually don't. So let's talk a little bit about what a staff engineer is. You can see my AI generated memes that I did. So you know, when I think of a staff engineer, it's a really broad definition, and I'm going to fly through a lot of these. But you know, at a very high level, you're supposed to focus on strategic projects of value for the company and level up the team. You want to set the technical direction. You know, what does this mean? You know, it could mean that you want to institute a higher quality of, you know, testing or code review or process. There's a lot of ways that you can go with it, but it's your job as a staff engineer to be the advocate for the company's technology needs, right? In a world where every developer is trying to meet their targets and their deadlines, you know, it's your job to think about, well, how can we make the system more efficient? How can I help them to thrive in this setting without them actually, like, being my underlings that report to me? So there's a lot of mentorship involved. You know, a junior developer who comes on or somebody new to the company, they're going to come to you and you should be able to support them. So you really, it's your job to help people grow. You know, we do a lot of planning. So participating in higher level discussions, you know, making decisions that are time-sensitive decisions in engineering context. What can we commit to? What can't we commit to? These are things I would look to staff engineers for. Prototyping and problem solving and ambiguous high impact challenges. This is a big part of what I do. You know, most of the time you come in on a code base and there's these sort of patterns that have gotten entrenched into the code base.

2. Responsibilities of a Staff Engineer

Short description:

I expect staff engineers to identify inefficiencies and challenges, even if they are not voiced. They are also responsible for performing background tasks, ensuring work is done efficiently, and balancing day-to-day sprint work with staff-eng tasks. Keeping hands dirty in the code base is crucial to understanding the team's challenges. Continuous learning, seeking feedback, and being open to input from all team members are essential for growth.

And I expect the staff engineers to look and see where the inefficiencies are, see where the repeated challenges that people are running into, but not necessarily voicing. This is a staff engineer job to me.

Being the glue. I love this graphic. AI is getting really good. Being glue. A lot of times the staff engineers are the ones to perform the background tasks, like, you know, upgrading dependencies or taking care of technical debt or performing refactors, which are often invisible to the company. You know, ensuring that work is done in the right speed. A big part of what I do at work is about, you know, writing tickets and making sure you write the tickets the right way and the work can be done much faster than if you write them a different way. Right. We think about those things.

A lot of times when you come into a company as a staff engineer, you are expected to write code. And, you know, I asked on Reddit and I got the opinions of the community and almost unanimously they said, oh, if you're a staff engineer, you shouldn't be doing day-to-day sprint work. But the truth is that at a lot of companies you're expected to balance day-to-day sprint work with more, you know, staff-eng type of tasks. And this is really challenging to do. And it's not always obvious how to find the time or make the space to do the more staff-eng jobs when you have day-to-day targets.

But that said, I think it's important to keep your hands dirty and in the code base because, you know, there's one thing to solve high-level problems. But to be able to see those problems, I think it's really important to, you know, know what everybody else is going through. And so a job that had a staff engineer that didn't do any sprint work, I would question how in touch they were with the problems that the rest of the team were facing.

You always have to be learning and doing skill development. I actually think this is how you get to be a staff engineer is if you're doing this already anyway. So a lot of you probably have this checked off. But especially the last point about seeking regular feedback, I truly believe that feedback is something that should be happening from everybody on the team. The most junior developer is just as qualified to do code review as the most senior developer. And you never know what people know or what insight they'll bring or what questions they ask will cause you to see things in a different way. So, you know, lead by example on receiving code review. Be gracious about comments. Be, you know, be willing to really hear people's feedback because that helps them grow. And that's a big part of your job as well, too.

3. Additional Responsibilities of a Staff Engineer

Short description:

Staff engineers share knowledge through documentation, presentations, mentorship, and training. They lead high-impact projects, drive design discussions, and ensure high-quality deliverables through rigorous testing and code reviews.

And that's a big part of your job as well, too. Sharing knowledge, staff engineers do a lot of documentation. They do. They tend to do presentations at my company. We have company-specific tech talks that other companies have seen Lunch and Learns and those sort of things. Mentorship and internal training sessions. You know, if you're not doing these things, it doesn't mean that you're not being a staff engineer. But this is just sort of the way the role has presented itself for me. And I think actually helping junior developers grow is is it's just it's so important. Right. Because the seeds that you sow with with people today are going to affect the way the code is written six months or a year from now. So I truly believe that.

Building and leading high-impact projects, you know, big part of being a staff engineer, even though you may be doing sprint work, is also like having projects that you yourself are spearheading. And it's one thing to have technical goals and things that you want to research. But it's really important to make sure that those things are high impact and have value for the company. And based on how well you do this, it's going to really help to help you with the other aspects of being a staff engineer. You know, you need people besides other engineers to notice you and you need other engineers to notice you. So I think that's very important.

Leading design and architecture discussions within your team. Here's a question. Does your team have conversations about, you know, design and architecture? Are you guys thinking about how to structure your code in a way that's going to make it easy to work on in the future and how to design the app in a way and architect it in a way that it's going to stay pliable? And, you know, a lot of teams don't have those discussions. The pressures of day-to-day sprint work are too much to be able to really step back and then think about how do we refactor this or how do we build differently in the future? So I think it's very important to lead those discussions and they should be coming from the staff engineer levels.

Ensure high-quality deliverables through rigorous internal testing and reviews. I really you'll hear me say code review a couple of times in this presentation. I love code review. I think it is one of the best things that we have on any development team I've worked on. And if you don't have it, I you should. But testing is also important, too. I've really spearheaded making sure not just me, my whole team has made sure that our test coverage is some of the highest that our company and it really pays off because not only not only do we have fewer bugs and all the other upsides of testing, I don't need to sell you on the idea of testing. But when you write code that's well tested, the corollary of that is that you're writing better code.

4. Additional Duties of a Staff Engineer

Short description:

Staff engineers ensure high-quality code through rigorous testing. They advocate for best coding practices, establish coding standards, and utilize internal tools for code quality and performance analysis. They also drive innovation by trying out new strategies and backing opinions with experience.

Typically, if tests are painful to write, if tests are the worst part of your job, that's probably a code smell. And so having high tests sort of ensures high quality code, in my opinion. What else do we have here?

Advocate for and help implement best coding practices company-wide. This is not always easy to do, but you really need to be vocal as a staff engineer. You can advocate for non-negotiable things like accessibility and high test coverage. It's important to establish coding standards and guidelines and utilize internal tools for code quality and performance analysis. Driving innovation is also a responsibility of a staff engineer, trying out new strategies and backing opinions with actual experience.

5. Establishing Coding Standards and Innovating

Short description:

To establish coding standards and guidelines, utilize internal tools for code quality and performance analysis. Driving innovation requires trying out new strategies and backing opinions with experience. Stay updated on JavaScript trends to make informed decisions about adopting new technologies and practices.

But a lot of it is, you know, saying, look, I think I found a better way to do this or I think that if we, you know, change our strategy, I don't know. So you want to be you want to establish the main coding standards and guidelines on the team. This again comes to code review. I had a boss who once said that any rule that you're going to write in a knit, you should probably just make a linter rule for. So, you know, make sure there's a linter on your project, right. And make sure it's configured in the way that that you see and the rest of the team see as being like this represents good practices.

Utilize internal tools for code quality and performance analysis. Well, I just mentioned the linter, you know, you really want to make writing good code in your code base foolproof. Any comment that you leave in a pull request and you're like, well, you know, knit, I would like it to be done this way, right, that only exists in that pull request. Nobody's going back through your pull request looking for suggestions of how to write the code. So if it's a knit, it should probably be a linter rule or at least represented somewhere in documentation where somebody can do it. But if you can offload that work to automated tools, right, and have the linter and the type checker, etc., etc. enforce those for you, you will have a much easier time because these problems will never make it to code review and therefore you won't have to leave those comments.

Driving innovation, I don't know, I didn't realize this one turned out sideways. You know, this is pretty typical stuff, but, you know, I spent a lot of time trying out new things, trying out new strategies and writing them up and you learn just as much from the failures as you do from the successes. You know, there's always a lot of in the JavaScript world, a lot of hype about this is the way we're going. Oh, we're all using Redux. Oh, we're all using Zustand. Oh, we're all using whatever. Right. You're going to have to give those opinions to the staff engineer. And, you know, there's an expression about what opinions are like because everybody has one. But make sure your opinions are founded in actual experience. So many engineers, they just have this idea of here's the way I write code. But look, we're JavaScript engineers. This is this is a JavaScript conference we're at here, a React conference, right? The tides change and you need to know which of those changes are hype and which ones actually represent a change in the way that people are writing the code. We're not all using Enzyme to write tests anymore. Now we're all using, you know, test library. Right. And how do you evaluate what's better and what's going to work better? You have to try it.

6. Building Influence and Project Management

Short description:

To build influence, lead by example and constantly challenge your ideas of what it means to write good code. Be a good mentor, especially to junior engineers, and empower them to experiment and grow. Learning as an engineer is essential, regardless of background. Building influence can be achieved even if you're not an outgoing person. Show your team how to write tests and type-safe code. Prioritize documentation and use the appropriate tools for project management.

You have to try it. If you have time to prototype, prototype. If you have the freedom to just use it, you know, in code, especially if you're talking about things like testing tools or linters, you know, just do it. Experimenting is really important.

Mentorship, we talked about. I can't emphasize enough how much being a good mentor makes a difference to your team in the future. You want people to feel emboldened to experiment and learn and try to improve themselves in the code base. And you want especially the more junior people are, the more important it is to empower them. Make no mistake, people quit because of bad senior engineers on the team. OK, so being a good senior engineer is really, really important. You want them to to to to walk away from the job and think of you as the person who helped them to grow. And and, you know, learning as an engineer is so important. I always say, you know, even if you whether you have a computer science background or you taught yourself, we're all self-taught as engineers. And, you know, I want people to be constantly challenging their their their ideas of what it means to be writing good code.

Which brings us back to the title of the talk, how to actually build influence, right, because a lot of these things, OK, it's easy to say I'm going to lead by example, but are people looking to me as a leader? Sometimes they are, sometimes they're not. The bigger the company is, the harder it is. And, you know, for me, I'm a very outgoing person. I'm the kind of person that that strikes up conversations and just voices my opinion. But not everybody is and not everybody should be. And you still need to be able to build influence, even if you aren't that kind of person. So how do we do it? The first thing is lead by example, and this, you know, we talked about we talked about how important it is to be writing actual code, you know, and doing sprint work on your app. You will never convince your team to do have good test coverage unless you are showing them how to write those tests. OK, you will never show them how to write, you know, type safe code that doesn't have any's in it unless you are also writing type safe code without any's in it. Your documentation should be, you know, chef's kiss. Beautiful, right? Use JS stock where you have to use TypeScript where it's possible, you know. In terms of project management, again, I think I mentioned earlier, I think a lot about the right ways to write tickets for me. I'm a big fan of I have this this goal of making all the work that I have to do just like perfectly parallelizable. You know, we have three front end devs on the team. I want people to just be able to pick up tickets and not step on each other's toes and be blocked by each other. And I want them to be able to learn to do this themselves.

7. Leading by Example and Strategic Thinking

Short description:

Leading by example is crucial. Strategic thinking and problem-solving are necessary to anticipate future challenges and find effective solutions. As a staff engineer, it's vital to diagnose problems accurately and demonstrate the right approach. Being a subject matter expert is valuable, but don't limit yourself to your initial expertise. Constantly broaden your knowledge to provide insights and tackle new challenges.

So leading by example is just really, really important. When I leave feedback on a code review that says, you know, this is not a good practice, I really want to be able to point to places in the code where I have done it the way that I believe to be right. And I want those places to be supported by tests so that when other people try to implement those things and I say to them, you need to write tests, there is an example of how to do that.

Strategic thinking and problem solving. You know, it's really important to be thinking down the road when it comes to code, and this is something that rank and file developers aren't always able to do because they're not because of any problem with them, but they are getting pressure constantly from project managers and product managers and designers and their, you know, their tech managers to be, you know, this work has to get done by a deadline. And at the end of the day, sometimes spending an extra hour or two on a PR and making some changes will save you more work on the next PR, right?

It's your job as the staff engineer to be looking down the road. OK, so it means thinking beyond your immediate technical challenges and it means actually coming up with approaches for strategically solving, I'm just paraphrasing the approaches for strategic problem solving. It's really common for me to have this feeling when I'm working on a ticket of, you know, there's this pain point that I've run into three or four or 10 times before and you just have this aha moment where you realize that that there's we haven't actually figured out an approach for solving this problem. And that's why we keep on running into it.

Obviously, implementing these things and getting people to adopt them comes back to our last slide. Right. If I'm not writing code, I can say to somebody, here's what I think you should do. But am I actually accurately diagnosing the problem? And be who's going to listen to me if I haven't? I again, I don't have the authority to demand it on teams other than my own. Right. And so who's going to listen to me unless I'm showing them the right way to do it? In my opinion. I think it's really important to be a subject matter expert. This year, you hear about being a T-shaped developer, somebody that knows a lot about a lot of things, but also has one subject they're really deep on.

I actually think it's even better to be whatever the heck this shape is that I drew. There's a lot, you know, you should be it's good to be a subject matter expert, but don't limit yourself to the thing that you are a subject matter expert for when you got hired. I'm primarily a React developer, but as the company has, you know, we've all at my company started using Remix, which has meant needing a lot of what traditionally was thought of back end or full stack knowledge. And so because I have other areas of expertise besides just React, as we go into to using Remix, you know, there's insight that I can bring to it that I wouldn't have been able to. And I'm constantly trying to broaden my knowledge on those subjects so that as we run into new challenges and we are running into lots of them because none of us have created an SSR app before. Right.

8. Broadening Expertise and Building Influence

Short description:

Being a T-shaped developer is valuable, but don't limit yourself to your initial expertise. Constantly broaden your knowledge and be able to spot and solve problems. AI may not be suitable for code generation, focus on improving language skills and effective communication. Consider using sentiment analysis and AI tools like Chat GPT to provide constructive feedback. Using emojis in emails might help soften the message. Building influence requires public engagement.

This year, you hear about being a T-shaped developer, somebody that knows a lot about a lot of things, but also has one subject they're really deep on. I actually think it's even better to be whatever the heck this shape is that I drew. There's a lot, you know, you should be it's good to be a subject matter expert, but don't limit yourself to the thing that you are a subject matter expert for when you got hired.

I'm primarily a React developer, but as the company has, you know, we've all at my company started using Remix, which has meant needing a lot of what traditionally was thought of back end or full stack knowledge. And so because I have other areas of expertise besides just React, as we go into to using Remix, you know, there's insight that I can bring to it that I wouldn't have been able to. And I'm constantly trying to broaden my knowledge on those subjects so that as we run into new challenges and we are running into lots of them because none of us have created an SSR app before. Right.

Sorry, not SSR, SSG. You know, you need to you need to be able to spot problems and solve them, and you can't do that if you're too siloed. Every conference, including this one, is going to be talking about AI for the next several years, and I have one big opinion on AI. I actually really don't like using it for code generation, not because I don't think it's good or because I think it's good or not good at it, but because I like writing code. The part of the job that's hard to do is the language part, the natural language part, leaving good feedback on pull requests, communicating things in a way that makes people not be angry to you.

I had a boss who gave me the idea of using sentiment analysis on my PR request, so I installed Grammarly. And it had false negatives because if you said the word error, for example, which is a programming word, it would think you were being negative. But there were enough true times where it caught me speaking in a way that could have come across more judgmental or angry or terse than it needed to. And so I actually used sentiment analysis and improved the quality of my of my code review feedback. And this is important because I've seen people quit over having seniors that couldn't communicate effectively. Chat, GPT or Claude or other LLMs are a great way to do that as well. You may work at a company that doesn't allow you to use AIs for code. But, you know, being able to say how do I say to this developer that I think they're implementing an anti-pattern without sounding like a jerk and and chat GPT will do a good job of telling you how to do that.

This even goes there's something I didn't put on the slide, but I'm going to say it anyway. Can I recommend something I don't recommend? I kind of recommend it, which is that I had a boss many years ago before I was a developer who told me that my emails were too terse. This is a problem that I have. And her advice to me was to use emojis. And I know what everybody's thinking. But the truth is that a smiley face emoji at the end of a statement might do a lot to soften the way that is received. You can use that advice or not. Your mileage may vary. This is the most important thing about building influence, though, is everything you do has to be done in public. OK, well, not everything, but a lot of things.

9. Knowledge Sharing and Public Visibility

Short description:

DMs are not a suitable place to share knowledge. Being public as a staff engineer is crucial. Open source code to lead by example and enforce best practices. Company blog posts are valuable for career growth. Utilize confluence, public Slack channels, and pull request comments for knowledge sharing. Public visibility helps with company recognition and promotion justification.

DMs are the worst place to share knowledge. You can't search them. You can't index them. People forget about them. If somebody quits the company, can you even access them? And you certainly can't take them with you. So I think it's really important to make sure that a lot of what you're doing as a staff engineer is in public.

And I've sort of rank these in order of what I think, how I think they should be done. If you can get your company to allow you to open source some of your code, it does a lot for leading by example. It does a lot for sharing and enforcing best practices and code quality. Because you can really say we're not going to put bad quality code in open source repo. And it's also good for your career because that, you know, your your name is always going to be on those initial pull requests. You're always going to have been the person who started that repo.

Company blog posts, if you have them, most companies have a blog or would like to have a blog. And if they do, it's very difficult to find people who are enthusiastic about regularly posting. Again, it's great for your career. When you are applying for your next job, you're going to want to have those blog posts. And if you're not a staff engineer, you probably can still post on the blog. At my company, it's very the barrier for posting on the blog is very low. And yet people don't do it as much as they should.

The next would be confluence or similar documentation, because you can actually search through it. Same with public Slack channels, especially a conversation about gathering requirements or, you know, implementing a best practice. I'd love to see it in confluence and a public Slack channel, both because people will search for those things. And if somebody's having an issue, I would love for them to post about it in a public Slack channel so I can give them the answer in public and not in a direct message because then when the next person has that issue, you know, I'd like to be able to link them to it.

And then the last one is pull request comments. And I really pull request comments are good for things that are documented elsewhere. Right. If you're going to enforce something in a PR comment, hopefully you have a confluence or a blog post or an external reference somewhere you can link them to, because that's going to come up again and again. And nobody goes back through old pull request comments and searches for them.

The more public you are, the better it's going to help you in your company when you're doing your OKRs for the year and trying to justify your promotion. You can bet your butt that management loves to see blog posts and open source repos because, you know, they're concrete and they're not just for the nerds in engineering to see them.

10. Showcasing Work and Public Visibility

Short description:

Open source code showcases your skills and boosts your career. Breaking code into its own repo and open sourcing it can be a valuable accomplishment. Public visibility is essential for gaining recognition and becoming a go-to person. Make sure your work is discoverable and accessible to others. Thank you for attending the talk!

Right. You can actually show them and say, this is the handy work that I've done. Open source code is so great because you can go to your next job and tell them, look, I write good code, but if you can actually show them your commits in public, then that's even better.

And so what I did at work was I actually managed to break a bunch of our code into its own repo and open source it. I want other people at the company to use it. Some of them are, but even if they didn't, right, I would still have that as a feather in my cap for having worked here, which is sort of a cynical way of putting it. It's a cynical way of looking at it. But, you know, we're talking about how to manage your career. So a certain degree of cynicism is warranted, which brings us to the end of the talk.

You know, just to summarize, you know, you can see a lot of different definitions of what it means to be a staff engineer, but it's just so important to make sure that people know your name and know who you are. And the way to do that is to do whatever you're doing in public. So that's my number one recommendation. You know, you don't have direct reports. You need people to think this person, Ian Schwartz, is the guy that I'm, if I have a question about React or testing, right, I'm going to go to Ian Schwartz. And that's true for a lot of people at my company. But, you know, increasing the number of people that think that way is really important and it can only be done by making sure that whatever you do is discoverable and open for the world to see. I don't have too much else to say about it other than that. Thank you so much for coming to my talk and paying attention thus far. And thank you. Enjoy the rest of the conference.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Impact: Growing as an Engineer
React Summit 2022React Summit 2022
26 min
Impact: Growing as an Engineer
Top ContentPremium
This Talk explores the concepts of impact and growth in software engineering. It emphasizes the importance of finding ways to make the impossible possible and the role of mastery in expanding one's sphere of impact. The Talk also highlights the significance of understanding business problems and fostering a culture of collaboration and innovation. Effective communication, accountability, and decision-making are essential skills for engineers, and setting goals and finding sponsors can help drive career growth. Feedback, goal setting, and stepping outside of comfort zones are crucial for personal development and growth. Taking responsibility for one's own growth and finding opportunities for impact are key themes discussed in the Talk.
On Becoming a Tech Lead
TechLead Conference 2023TechLead Conference 2023
24 min
On Becoming a Tech Lead
Top ContentPremium
The role of a Tech Lead involves shaping the roadmap, helping the team be more effective, and working on important projects. Lessons learned include encouraging idea sharing, avoiding taking on all the work, and focusing on delegation. Tech Leads focus on the outcome, involve the team in decision-making, and make plans based on how different pieces will interact. The role of a Tech Lead is to focus on engineering and guide the team in figuring out how the whole system should fit together. Architecting can become problematic when it loses touch with the coding part, resulting in implementation issues.
Emma Bostian: I landed my dream job by sharing my blogs on Twitter
Emma Bostian: I landed my dream job by sharing my blogs on Twitter
Top Content
Featured Article
Emma Bostian
Emma Bostian
Software engineer, lecturer, podcast host, author — is there something Emma Bostian hasn't done? She moved from America to Sweden, started working at Spotify, and took up a few challenges along the way. And now she has some career tips to share.
What led you to software engineering? I was raised in the ecosphere of tech because my dad is a software engineer at IBM, and my mom was a designer there, too. My dad always encouraged me to join STEM and take a look at computer science — however, I was convinced I wanted to be a medical doctor. In my first year of college, I declared a biology major and quickly realized I was not too fond of it. In my second semester, I switched to an actuarial science major where I took Introduction to Computer Science, and the rest is history. In my second year of college, I declared a computer science major and began my journey from there.
What is the most impactful thing you ever did to boost your career?Writing blog posts and documenting my learning journey on Twitter has far been the best career boost. I wrote purely for myself to reference the things I learned over time, and I even utilized my design skills in Figma to create custom graphics depicting difficult concepts like CSS specificity. By sharing my blogs on Twitter and engaging with the people reading them, I was able to grow an audience extremely quickly. I began receiving conference speaking opportunities, podcast requests, and course invitations to teach with LinkedIn Learning and Frontend Masters.
Ultimately, I landed my job at Spotify through Twitter, too, when a friend and follower of mine asked if I would be interested in interviewing. Now I live in Stockholm working my dream job. It still blows my mind how tweeting about my blog led me to some of the most amazing career opportunities.
What would be your three tips for engineers to level up their career? First, be patient. I often see posts on Twitter or LinkedIn about developers who were promoted to a senior position after a year. And while this is wonderful, I think we forget that each company has a different standard for what constitutes a senior developer, and everyone's journey will be different.
Second, don't be afraid to ask questions. If you try your best to solve a problem or answer a question you have, but you can't figure it out after a reasonable amount of time, ask a team member or mentor for help.
And lastly, invest in the right resources for learning. When I started my journey, I didn't know which platforms worked for me to learn. Now, I have a few trusted platforms such as Frontend Masters, Free Code Camp, or Level Up Tutorials that I go to when I need to learn a new skill.
You're currently working as a software engineer at Spotify. What does a typical day of yours look like there?I begin my day answering emails. Then we have a team breakfast and a standup remotely as we're all still remote at Spotify. After that, we might have a web tech sync with the other squads in our business unit. The day usually includes some form of pair or mob programming, depending on the work stream. 
My team always has Fika, a traditional Swedish coffee break, scheduled every afternoon. Every couple of Fridays, we have team games planned to release some stress. 
Also, I tend to have a lot of free time to focus, which is nice but makes for a boring answer to this question!
Do you have some rituals or tools that keep you focused and goal-oriented?I'll admit that I've been struggling with staying motivated in the time of remote work. I've been remote with Spotify since onboarding a year ago, but my team is wonderful, and they help me when I'm down.
Apart from that, I use Todoist to keep track of my tasks, and, naturally, I listen to Spotify while working. But other than that, not really. Maybe I should adopt some new tools to keep me on track!
My current favorite Spotify playlist is Brand New Chill: https://open.spotify.com/playlist/37i9dQZF1DX6uQnoHESB3u?si=380263b3c853442e
I also love Chillout Daily: https://open.spotify.com/playlist/7ozIozDp260fjNOZy1yzRG?si=66d6c839ec9b458a
You wrote a book called De-coding the Technical Interview. What was the impulse to do it?I wanted to give the community a manual of the essentials of computer science knowledge to ace the technical interviews. The book covers data structures like stacks, queues, or linked lists, tackles algorithms, and deals with systems design. You'll also learn about the interview process from start to finish, get tips on how to submit an amazing take-home project, or understand how to problem solve. You'll also gain knowledge on the frontend coding skills needed to excel at a frontend interview.
If you could stress one piece of advice on surviving a technical interview, which would it be?Do not lie your way through an interview. If you don't know the answer to something, just admit it. There's no shame in admitting you don't know the answer to something. There is shame in faking it and pretending like you do know the answer.
What's the single best practice everyone who writes code should follow?Remember that while you are technically writing code for computers, you're also writing it for humans. Your code should be readable and have as little complexity as possible without sacrificing accessibility or performance.
In addition to the book, you co-host the Ladybug Podcast. What inspired you to enter this field, and what are the podcast's main topics?We talk about everything tech and career on the podcast, from Java and GraphQL to how to start a business and cross-cultural communication. The podcast is a way for me and my co-hosts to share our experiences in tech, having taken different paths. And I'm really glad for doing it — it has allowed me to meet so many incredible people, learn many new things, and support my dream of teaching.
What pieces of your work are you most proud of?My technical interview book was a huge feat for me as well as my courses with LinkedIn Learning on building a tech resume. I enjoy creating things that help other people advance their careers, so I'm also proud of my courses with Frontend Masters on design systems and CSS.
Kent C. Dodds: Consume, build, and teach — and level up your career
Kent C. Dodds: Consume, build, and teach — and level up your career
Top Content
Featured Article
Kent C. Dodds
Kent C. Dodds
Even though his bio offers quite a hefty reading, he only applied for one job in his career. The rest came along as he was building his name as a renowned speaker, teacher, and a prolific figure of the open-source community. How did Kent do it? “Commit to creating high-quality content,” he says.
What led you to programming?I had a friend when I was a teenager who was really into it, and he tried to teach me. But I just couldn't get it — it didn't make any sense to me. So I never really thought I'd get into programming, but I liked computers a lot, and I ended up going to school for electrical engineering. 
Well, that didn't work because I'm not good at math. But right when I started the program, I got a job at a company uploading videos to YouTube and that sort of thing. The work was tedious, so I decided to write a computer program to automate lots of the work I was doing with the knowledge I had about programming. And that was the first spark of things for me to use programming to solve real-world problems. 
What is the most impactful thing you ever did to boost your career? Committing to creating high-quality content. That might sound obvious because I'm a full-time educator now, but I would not have gotten my job at PayPal if I hadn't been so active with my blog. In fact, lots of my jobs came out of me being involved in the community around meetups, conferences, or open-source projects. 
How do you choose topics for the content you create, be it for your blog or podcast?I don't think too much about the content other people are creating. And I don't often consume it. My ideas come from the things that I'm working on, things that I'm learning myself, or — when I was working with a team of developers — the things that I had to remind people of in code reviews regularly. Anytime that I would have a code review comment that was pretty long to describe my position, that was an excellent opportunity for a blog post. Also, if people ask me about a topic regularly, I'll make a blog post rather than answer that question multiple times.
What would be your three tips for engineers to level up their career? The number one thing I tell people is to be a nice person. I know that sounds fluffy or silly, but it cannot be overstated. You will get so much further in your career and just in life in general if you're a nice person. That doesn't mean that you take people being jerks lying down, but how you interact with others is out of kindness. You could be the best engineer in the entire world, but if you're not a nice person, you will not reach your full potential or accomplish your goals, whatever they may be.
Second, it's just as important to decide what you are not going to learn as it is to decide what you are going to learn. You could jump into countless things — and there are successful people who are polyglot programmers, but I can't speak to that a whole lot. All I can tell you is that in my experience, focusing on specific things that I want to be truly good at has worked out great for my career. That doesn't mean that I closed myself off to other things. With my website rewrite, I have been doing a lot of dev ops-related work and a lot of back-end stuff that I've typically not been involved in. You want to keep your head up on what's going on outside of what you're doing so that you know what direction to go in when you come across problems you need to solve. However, finding a focus on what you want to be good at has helped me a lot. That way, you feel a little less stressed.
And the third one? Learn how to learn effectively. It's a three-step process: you consume, build, and teach. The consumption of newsletters and Twitter and whatever inspires you, but you don't want to spend too much time doing that — implementing it into actually building something matters. This happens naturally if you work at a company, but maybe you're not making the things you want to learn, so you may want to start a side project. The building phase is where you get experience, but you also want to solidify that experience. How? You start teaching. You don't necessarily have to teach it to people, it could be stuffed animals. The goal of the teaching is to retain in your mind what you've learned through the building process.
What are you working on right now? The big thing I'm working on right now is a rewrite of my website. It'll be much more than just a developer portfolio — I'll have user accounts, and there'll be fun things that you can do with it. And because it's more than just a website, I'm using Remix, a new cool framework in the React ecosystem. I'm also working on updating my material on TestingJavaScript.com and a TypeScript course as well. 
So, whatever I'm working on, it ends up resulting in lots of opportunities for content.
Do you have some rituals that keep you focused and goal-oriented? I have a notepad where I keep all of my notes of what I'm going to do for the day so that when I'm checking things off, I'm not distracted notifications. I've tried apps for that, and that does not work well for me. 
I also am a firm believer in inbox zero. I have my work inbox and my personal inbox, and I keep them both at zero. And I kind of use that as a to-do list. 
And if I'm not feeling excited about working for some reason, I will often hop on my Onewheel, which is an electric skateboard that only has one giant wheel in the middle. It's just a total blast, and I'll hop on that with my backpack and a charger, and I'll go to a Starbucks or a park just to declutter my mind.
What things in the React universe are you excited about right now?React version 18 is coming out soon. The experimental version is out there, and it's fun to play with. I'm just really thrilled that it's no longer a concurrent mode but concurrent features that you can opt into. Cool things like that will enable React server components in the future. 
But the biggest thing I'm excited about is Remix. That's huge. It eliminates a lot of problems that are solved well other tools, but when I'm using Remix, I don't have those problems, so I don't need those clusters.
You already said that teaching is an integral part of the learning process, and you stand your word since you're also a full-time educator. What inspired you to enter this field?I have been a teacher for as long as I can remember. I grew up in a church where you talk in front of your peers from a very young age, and my mom was an elementary school teacher, so teaching has just always been a part of me. 
I really just enjoy sharing what I'm learning with others. As far as teaching technical topics, I gave my first workshop when I was still a student at Brigham Young University. With my fellow, we taught how to use AngularJS, and I got Firebase to sponsor pizza so they would show up, and that was pretty fun.
Then I started teaching on the side at egghead.io right after I'd graduated. That was when I first got a paycheck for teaching. And I realized that teaching could be quite lucrative and support my family and me as a full-time endeavor. So I did it — I quit my job. I'm a very risk-averse person, so I'd done teaching as a side hustle for four years just to verify that I could make this work.
When TestingJavaScript was released, and I got that paycheck, I realized that I didn't need my PayPal salary anymore. I could just focus my daytime on teaching and give my evenings back to my family, which was a nice trait.
Apart from that, how has teaching impacted your career? Earlier I mentioned that pretty much all of my jobs came because I was perceived as an expert. After the first job, where I was an intern and then converted into full-time, I never applied to another. I worked for four different companies, and they wouldn't have recruited me if they didn't know who I was and what I was doing. My content is how they knew who I was — I just made it easy for them to find me. Teaching made that impact. It made my career. 
We talked about React and Remix. Are there any other open-source projects that you'd recommend keeping an eye on or contributing to?I have some myself. React Testing Library is probably the biggest one that people are familiar with. And if React isn't your jam, then other framework versions of the testing library. 
React Query is also really popular. If you're using Remix, you don't need it, but if you're not, I strongly advise using React Query cause it's a stellar, fantastic library, and Tanner Linsley, the creator, is a stellar and fantastic person. 
What pieces of your work are you most proud of? Probably the biggest thing I've ever done is EpicReact.Dev. It has helped tens of thousands of people get really good at React, improve their careers and make the world a better place with the skills that they develop. My whole mission is to make the world a better place through quality software, and I feel like I've done that best with Epic React. 
There are things that I've built at other companies that are still in use, and I'm proud of those cause they've stood the test of time, at least these last few years. But of everything, I think Epic React has made the biggest impact.
Effective Communication for Engineers
TechLead Conference 2023TechLead Conference 2023
36 min
Effective Communication for Engineers
Top ContentPremium
Today's Talk covers the four building blocks of communication: people, message, context, and effective listening. It emphasizes the importance of considering the perspective of others and tailoring messages to the recipient. The Talk discusses different types and channels of communication, and the need to align them with the intended message. It also highlights the significance of soft skills in communication and provides techniques for effective communication and assessing soft skills in tech interviews. Cross-cultural communication and the impact of bluntness are explored as well.
A Career As Software Engineer
React Advanced 2022React Advanced 2022
24 min
A Career As Software Engineer
Code will be imperfect and perishable, so testing and debugging are crucial. Building relationships and being generous with code reviews are important for teams. Code ownership should belong to the team, not individuals. Prioritizing functionality over consistency can lead to more efficient development. Growing into a tech lead role requires building relationships and coaching skills.

Workshops on related topic

From Engineer to Leader: A Workshop for First-Time Tech Leaders
TechLead Conference 2024TechLead Conference 2024
144 min
From Engineer to Leader: A Workshop for First-Time Tech Leaders
Workshop
Andrew Murphy
Andrew Murphy
Transitioning from an individual contributor role to a leadership position, especially in the fast-paced tech industry, is hugely challenging. Most new leaders don't receive any training at all in the first 10 years of their new responsibilities.Our comprehensive workshop is designed to assist new and emerging tech leaders in understanding their new roles and gaining the skills to make them confident, happy and effective leaders.
Managers Are From Mars, Devs Are From Venus
TechLead Conference 2024TechLead Conference 2024
111 min
Managers Are From Mars, Devs Are From Venus
Workshop
Mo Khazali
Mo Khazali
A Developer’s Guide to Communicating, Convincing, and Collaborating Effectively With Stakeholders
It’s a tale as old as time - collaboration between developers and business stakeholders has long been a challenge, with a lack of clear communication often leaving both sides frustrated. The best developers can deeply understand their business counterparts’ needs, effectively communicate technical strategy without losing the non-technical crowd, and convince the business to make the right decisions. Working at a consultancy, I’ve both failed and succeeded in architecting and “selling” technical visions, learning many lessons along the way.Whether you work at a product company, are a consultant/freelancer, or want to venture beyond just being a developer, the ability to convince and clearly communicate with stakeholders can set you apart in the tech industry. This becomes even more important with the rise of GenAI and the increasingly competitive developer market, as problem-solving and effective communication are key to positioning yourself.In this workshop, I’ll share real-world examples, both good and bad, and guide you through putting the theory into practice through dojos.
Designing A Sustainable Freelance Career
React Advanced 2021React Advanced 2021
145 min
Designing A Sustainable Freelance Career
Workshop
Alexander Weekes
Rodrigo Donini
2 authors
Would you like to pursue your passions and have more control over your career? Would you like schedule and location flexibility and project variety? Would you like the stability of working full-time and getting paid consistently? Thousands of companies have embraced remote work and realize that they have access to a global talent pool. This is advantageous for anyone who has considered or is currently considering freelance work.>> Submit your interest on becoming a freelance engineer with Toptal and get a call with Talent Acquisition specialist <<

Freelancing is no longer an unstable career choice.

This workshop will help you design a sustainable and profitable full-time (or part-time) freelancing career. We will give you tools, tips, best practices, and help you avoid common pitfalls.
Table of contents

Module 1: Dispelling common myths about freelancing
Module 2: What does freelancing look like in 2021 and beyond
Module 3: Freelancing choices and what to look for (and what to avoid)
Module 4: Benefits of freelancing from a freelancer + case study
BREAK
Module 6: How to get started freelancing (experience, resume, preparation)
Module 7: Common paths to full-time freelancing
Module 8: Essentials: setting your rate and getting work
Module 9: Next steps: networking with peers, upskilling, changing the world
Module 10: Freelancer AMA
How To Design A Sustainable Freelance/Contracting Career + Speedcoding Challenge
React Summit 2022React Summit 2022
75 min
How To Design A Sustainable Freelance/Contracting Career + Speedcoding Challenge
Workshop
Shane Ketterman
Shane Ketterman
Ready to kickstart your freelance career or just getting started on your freelance journey? You’re in the right spot. Learn from the world’s largest fully distributed workforce in the world.
The independent talent movement is the future of work. If you’re considering leaving full-time employment for a career as a freelancer, now is the time to find your successful space in the independent talent workforce. More people are working freelance today than ever before, with the freelance marketplace now contributing $1.2 trillion to the US economy. Some of the most in-demand roles for freelancers right now are senior developers with professional experience in React, Python, Blockchain, QA, and Node.js.
This workshop will help you design a sustainable and profitable full-time (or part-time) freelancing/contracting career. We will give you tools, tips, best practices, and help you avoid common pitfalls.
At the end of the workshop there will be a Q&A session with a Freelance Developer who can answer your questions and provide insights and tips into their own success.
During the Workshop break, we will be running a speed-coding challenge! At the end of the workshop, we will award a prize for the winner and display the leaderboard.
We will have you login to our portal and complete the challenge as fast as you can to earn points. Points are assigned based on difficulty and the speed at which you solve the tasks. In case you complete all tasks, you get extra points for the remaining time. You’ll see your score, ranking, and the leaderboard once you complete the challenge.
We will be giving away three Amazon Gift Cards ($200, $100, $75) for the top three winners.
Out of the Frying Pan, Into the Fire: A Manager's Guide to Helping New Developers Thrive
TechLead Conference 2024TechLead Conference 2024
35 min
Out of the Frying Pan, Into the Fire: A Manager's Guide to Helping New Developers Thrive
Workshop
Andrew Coleburn
Andrew Coleburn
Onboarding to a new project can be difficult, no matter your background and experience. But it can be especially challenging for new developers straight out of school or a coding bootcamp. Drawing on personal experience as a bootcamp grad and JavaScript consultant, this talk will discuss tips and strategies for managers to help the new developers on their teams get their bearings in an unfamiliar codebase, so they can make more of an impact, faster!
Landing Your Next Developer Job
React Summit Remote Edition 2021React Summit Remote Edition 2021
121 min
Landing Your Next Developer Job
Workshop
Sadek Drobi
Nouha Chhih
Francois Bohyn
3 authors
Renaud Bressant (Head of Product), Nathanael Lamellière (Head of Customer Success and Solution Engineer), Nouha Chhih (Developer Experience Manager) will be looking at the different developer jobs that you can accounter when looking for your next developer role. We'll be explaining the specifics of each role, to help you identify which one could be your next move. We'll also be sharing tips to help you navigate the recruitment process, based on the different roles we interviewed for as recruiters, but also as candidates. This will be more of an Ask Us Anything session, so don't hesitate to share your thoughts and questions during the session.