Love Your Maintainers

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2025
November 17 - 20, 2025
New York, US & Online
See JS stars in the US biggest planetarium
Learn More
In partnership with Focus Reactive
Upcoming event
JSNation US 2025
JSNation US 2025
November 17 - 20, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

No developer is an island and no developer is perfect. This means that you cannot create anything without using components written by someone else and these components will have defects or missing features. At some point in our life we all asked for support to someone else.

But being a maintainer is not an easy task at all. Think about receiving tons of reports with partial or missing information, or being yelled by strangers for not being responsive or fast enough.

For the health of our industry we must love our maintainers more: in this talk I’ll show how to politely ask for help and how to make sure you provide all the necessary informations.

This talk has been presented at C3 Dev Festival 2024, check out the latest edition of this Tech Conference.

FAQ

Platformatic is a comprehensive automated solution for building Node API and backend. It provides solutions for API, GraphQL, and integrated servers and services.

Paolo is a Node TSC member and principal engineer at Platformatic.

Open source is a decentralized software development model that encourages open collaboration and is driven by the passion of people. It allows software to be used for commercial purposes without giving up freedom.

Open source software provides access to a diverse developer base, different cultures, backgrounds, and capabilities, which can improve software quality and reduce maintenance costs.

Start with a detailed search through issues, PRs, and code. Provide comprehensive context and over-communicate details to avoid follow-up requests from maintainers.

Avoid demanding or commanding anything from maintainers. Be kind and respectful, as maintainers are driven by passion and are not obligated to help you.

Create a minimal, isolated, public repository that reproduces the issue. Remove sensitive information and provide detailed context and steps to reproduce the problem.

Following up ensures that maintainers have all the information they need and allows you to provide feedback or additional details. It also shows that you are engaged and appreciative of their efforts.

You can help by testing new features and fixes, providing detailed feedback, and thanking maintainers for their efforts.

Kindness is crucial. Maintain a respectful and appreciative attitude towards maintainers, as they volunteer their time and effort to support the open source community.

Paolo Insogna
Paolo Insogna
19 min
15 Jun, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Open source is a decentralized software development model driven by passion, improving software quality. Kindness is crucial in the open source community to prevent burnout and maintain healthy dynamics. When asking for help, do thorough research and communicate effectively. Reporting issues should be detailed and provide relevant information. Follow-up and engagement are important in finding solutions and expressing gratitude to maintainers.
Available in Español: Ama a tus Mantenedores

1. Introduction to Open Source

Short description:

Hello, welcome to Love Your Maintainers! I am Paolo, a Node TSC member and principal engineer at Platformatic. Open source is a decentralized software development model driven by the passion of the people. It has proven to improve software quality and services. Open source allows access to a diverse developer base and different points of view, resulting in increased quality.

♪♪♪ Hello. Welcome to Love Your Maintainers. First of all, let me introduce my company, that's Platformatic, which is the best way to build your Node API and build your Node backend. We provide a comprehensive automated solution for API, GraphQL, and integrated servers and services. Check it out.

Now, the secret is in the manners. It's how you ask people how to do some stuff. Let me prove you how. First of all, I would like to introduce myself. I am Paolo. I'm a Node TSC member and also principal engineer at Platformatic. You can find all my handles down there, especially my website, which I just redesigned. So I encourage you to take a look and give me feedback, please. Okay. Now, let's move on.

What do you expect, pretend, from open source? What is the right verb to use? First of all, let's clarify what is actually open source. Open source is a decentralized software development model that encourages open collaboration and is driven, and this is the key here, by the passion of the people. Now, it is working and it is definitely working. Open source has proven to be really effective when it comes to improve software quality, services, and on some extent, the life of people.

It all started in the seventies, in the free software movement that challenged the traditional for-profit-based development as usual. The problem is that in English, as you might imagine, free means too much. It both means free as in not paid and free as in freedom. It's ambiguous. Not paid was the most understood meaning of the word. Therefore, it was changed to open source, which is a branch of the free software movement, so we get a clear understanding of what it means. Open source is a software that can be used for commercial purposes without retaining, sorry, giving up the freedom. The freedom is retained. Now, why would somebody want to go open source? Because, and allow me the quote here, you can get the best of the best of the best. You can access a developer base which is not even remotely physically close to you, and you can access different culture, backgrounds, and capability, which means different point of views. In every aspect in the human life, this has proven to be a increase in the quality.

2. Understanding the Open Source Community Dynamics

Short description:

Open source is similar to remote working, but the huge difference is that people are driven by passion, not money. Remember that maintainers don't owe you anything. Avoid demanding fixes or features in the wrong way to prevent pushing people away. It's important to remember there are real people on the other side of the screen, and even a small act of rudeness can lead to burnout. A rude message can have serious consequences, as seen in the LWJS project managed by James Sumner.

Also, you have low maintenance costs because open source software is maintained by other people for you, so you don't need an office, and if you embrace open source, you just need a version control server. Now, you don't need an office, right? This is presumable, so something, right? Does it ring a bell? Well, open source is similar to remote working, but it's not. Beware of this, and this is the key of the rest of this entire talk. The huge difference is that people in open source are driven by passion, not by money, and moreover, you are not their boss. Remember that. You are not their boss, so you cannot demand anything. You can ask, but you cannot demand. You cannot command. You cannot do any orders, but in general, everybody is nice if people are kind.

Now, remember, people in open source are driven by passion. Maintainers love, simply love that you use their software. Otherwise, they would never have open sourced it, but we need to give everybody respect. Maintainers don't owe you anything. They are giving their time, their free time, their personal time, their hobby time for free for the passion, but you're not paying them unless you sponsor them, but that's a different topic. Remember that action have consequences, like usual. If you pretend fixes, if you pretend features, or if you just demand attention in the wrong way, you will push people away, like it always happen in any other social aspect in the world. It's not just open source. This applies to everything. This is a general life lesson, if you allow me to give you a lesson.

Also, what you want to do, you want to avoid burnouts. You don't want people to simply burn out. Remember that on the other side of the screen, there are other people. There are people which, like you, have sentiment, have need, and have real-time work. They have real life, they have hobbies, they have family, they have children to take care of, and so forth. Even a single small act of rudeness can burn people out. Don't forget it. What you think might be just a small act of rudeness might be the N plus one that maintainer has seen nowadays, and people will burn out, and eventually will give up on the software. As you can see in the screenshot, I take a snapshot of the GitHub page of the LWJS project, which was managed by James Sumner, which received a nasty, nasty, nasty, and honestly, completely pointless message by a person which was able to put a huge amount of curse words and offenses and rudeness in just six lines of text. James burned out and said, you know what, I'm done. Nobody's paying for it, so therefore I'm retiring the project.

3. Importance of Kindness in Open Source

Short description:

The project is decommissioned, and now nobody can benefit from it. Be kind to people. The human side is what I care most about today.

The project is decommissioned, and now nobody can actually benefit from my work on that. You can still fork it, obviously, because James was a good guy, could have just removed this project whatsoever, but he was a good guy. He chose to just say, the project is now archived. If you want to fork it, it's your own now. I'm not going to give you my time anymore. So that useless rudeness got to nowhere, right? Please avoid that. Be kind to people. Be very kind to people. The human side is what I care most about today. We have to be kind with people which we relate to in open source and in general. It never is a problem, actually.

4. Effective Ways to Ask for Help in Open Source

Short description:

How do you ask for help in the open source project? Start with a detailed search. First, check the issues and PRs. Then, analyze the code base. Lastly, consult the late documentation. Don't rely on someone else without doing your own research. Double-check if you have a trivial problem. Over-communicate in a distributed world.

Now, let's say we are kind, we are eventually able to behave in the right way. How do you ask for help in the open source project? Well, first of all, and it will surprise you, you have to search. Start with a very detailed search. This is my list of priority order when I actually have to search for stuff, because, of course, I use open source software, which I haven't written, so I have to search eventually for issues, right? Sorry, to solve issues. And in this case, this is my to-do list when I have to make a search.

First, I start with the issues. Let's see if I have a problem that somebody has already encountered. The easier is to reproduce this problem, the higher is the chance that somebody already reported it and also that is already fixed, but that's another topic. Now, if I don't find anything in the issues, I switch to the PRs. Maybe somebody noticed that instead of filing an issue directly, proposed a solution for it. So PRs are next. Then there is the code. Try to lean in the code base if possible and search if there is already some lead on how to fix your problem. Maybe you're just using the software in the wrong way. Late documentation, that's the last one. Maybe there is a very nifty page in the documentation that has this non-workaround for the issue or specifically it says that this problem will not be covered because it might be. Of course, this list is after you already read the documentation for how to use the software because I'm assuming that you already did it. So in other words, please don't get somebody reply to you without reading the fucking manual, okay? But anyway, that is my list.

Now, I also had a side note to make. If you have a really trivial problem to reproduce and nobody has ever reported it and nobody has inserted a PR for that, dude, you're using it wrong over that. I'm telling you because it happened to me many times. I couldn't find any solution. I couldn't explain why nobody has ever encountered my stupid problem and then realized that the stupid in this entire portrait was just myself. So you know, double-check anyway. Another very important thing. We live in a distributed world. We live in a world where we are distributed across the globe, where people coming from different cultures, so with different expectation and knowledge and expertise. I'm not just talking about two-pronged source. I'm talking in general. So never worry about over-communicating.

5. Effective Reporting of Issues in Open Source

Short description:

Put as many details as you want. Don't be afraid to over-communicate. Provide the who, where, what, when, and how when reporting an issue. Narrow down the problem. Only provide the why if you know how to fix it. Avoid floating maintainers with useless information.

Put as many details as you want, as many. I will come back on this later. And don't be afraid of annoying people with over-communication. The more details, important details you can give, the better it is, because think about this, maintainer have their own life, so they might not have the time to request additional information and they will probably, therefore will not process your report if they are lacking crucial information. So do not be afraid to over-communicate. And forget, and this is will shock you, working on open source and reporting issues and investigating issues is like a journalist. Do you remember the WH rules? Who, where, what, when, why, and how? That's the same. We start with who and where. Usually if you're reporting an issue with a software, who is the software itself, right? But it's not always the case because it just might be one part of the software. So try to be explicit if you can. Of course, don't provide useless information, but you can.

Then, and this is the most important, what and when. Explain what happened, what did not happen, and what we're actually expecting for the software to do. And when it happened, what we are doing when that happened, try to provide the more comprehensive context you can possibly can. Then there is the how. And remember, this will return. What is the smallest way to reproduce the problem? We don't, I mean, you have an amazing application, you're maybe using just a package. I don't think that the authentication of your application matters for this package if the package is not the authentication package. So we don't care. Try to narrow down the problem. This will return in a bit.

Now, very careful reader might say, dude, you forgot to mention the why in the list of the five W's, right? I have not. Why something happens is a controversial because if you know the why, as a reporter, it means that you already know how to fix the problem. In that case, please provide a PR, or at least provide a detailed explanation or an issue to how to eventually solve the solution. Maybe you don't have the expertise to touch the codebase, but you understand what's going on. But usually you don't have the why, except in some cases. So I haven't actually forgotten that. It's important, but it's not part of the summary for this. Sorry, I skipped a slide. Now, I was talking about overcommunicating, but make sure you don't float maintainers with useless information.

6. Effective Communication in Issue Reporting

Short description:

Don't overcommunicate, find a compromise between necessary and excessive information. Create reproducible repositories for issues, ensuring minimal details and removing sensitive information. Provide public repositories for maintainers to easily fix the issue.

You don't have to worry to overcommunicate, but you can't, of course, exceed. As they say in Latin, in metastat virtus, so the virtue stays in the middle. You can't pass tons of output or maybe gigabyte of output in an issue because nobody's gonna read it. Also, reports with a lot of information will likely distract maintainers, which are someone who will lose interest and don't even look at the issue, even if they're willing to help.

Moreover, which is the direct consequence of all of this, it is for your own good. The more superfluous information you give, the less the chance that your issue is gonna be fixed, because if you lose the maintainer attention, you're done. If the maintainer sees a lot of output with no interesting information, it will not fix your issue and you will be left alone.

Try to find a good compromise between what needs to be communicated and all you can communicate. Then we get to the core of the idea. The very best way to ask for an issue, to ask for a report to a fix or anything like that, is to create what are called reproducible repositories. So if you get a software, you are using it, you can create a repository just for that issue that only contains the minimum details needed to reproduce the issue. You of course want to remove all the sensitive information or max or obfuscate them, and please provide a public repository. So triagers or maintainers can just clone your repository, start the repository, look at the issue, isolate it and fix it. That's by far the best way to get a fix, okay? I'm not gonna tell you how to create this thing, you can search it online, but the core is that minimal, isolated, public, no sensitive information. If you keep that, you're good.

7. Effective Follow-up and Engagement

Short description:

Don't forget to follow up on your filed issues and provide requested information. Share your opinion before the issue is fixed. Stay updated with notifications and engage in finding solutions. Test new features and provide feedback promptly. Express gratitude and kindness towards maintainers.

Let's move on. The last advice I want to give you is follow up. It's very obnoxious if you file an issue and you forget about it, and then eventually you come back in a month saying, oh dude, is that fixed? It will probably will not. If the maintainer immediately ask for more information, you never replied, maintainer is stuck. We don't have the magic ball, we can't really read the future, so you have to give all the information we are asking you in order to fix the issue.

Also, your only occasion to be heard. If the issue basically involves a feature that is missing or an improvement that can be made, and if you want to chime in and give your own opinion, this is the last moment because once the issue is fixed, the new feature is merged, the new PR is made, you don't really have a voice anymore. Yet, of course, you can report a new issue, but maintainer might never change that because it actually works. And moreover, there is also the semantic version in problem involved and so forth.

So my advice is set up notification that you read. For instance, I don't use GitHub notification, I prefer to receive emails by GitHub. Whatever suits the most for you, make sure you stay up to date to the trend and you follow the discussion.

Last step, which is trivial since it's open source, but it's probably best to say, you're more than welcome to engage. If you have the expertise and understand what's going on, provide a solution yourself. Rather than file an issue, provide a PR. Or if you filed an issue and the maintainer told you, oh, you know the problem is here, is fixed this way, you're more than welcome to provide a PR that follows the maintainer's indications. You don't have to wait for the maintainer to fix it. Now, if you don't have the expertise, instead to code, also one way you can instead contribute is to test the new feature and the issue that maintainer fixed for you right away. So you can really support the maintainer on saying the issue is not an issue anymore. I fixed the problem, we can move on with our lives.

Also, give the feedback right away. Just be silent and say, okay, I'm done. It's not enough. Maybe just a simple comment on the issue, say, thank you man, you fixed that in version 1.2.3. It's absolutely enough, but at least you let them know that everything's good, and then move on the next issue. And one final step, don't forget to thank them. Okay, folks. Once again, we are, and you are if you're also a maintainer or if you will be a maintainer, we are still people. We rely on kindness, okay? Don't forget to thank people for the time they give you. It's not that the maintainer will thank you for the issue that you filed, and you will thank them for the issue that they fixed.

8. Kindness and Gratitude in Supporting Maintain

Short description:

Remember the importance of kindness in supporting maintainers. Be kind when requesting help, support them, contribute if possible, engage, and express gratitude. As Aesop said, no act of kindness is ever wasted. Thank you and goodbye.

It works like that. Like you usually thank people when they hand you over the salt, or anything like that when you are having lunch, okay? Don't forget it. That's very important.

So, that was a brief overview on how you can support your maintainers. Let me summarize for you. Kindness, first. All the times. They don't owe you anything, and it's always good to be kind when you're requesting people to help you. Support them, be available, eventually contribute if you can. Engage, and once again, manners and kindness, and thank them. Once again, kindness is the keyword.

And that's why, as I usually do in my talks, that I like to finish my talks with a famous quote from somebody way, way, way wiser than me. And today, I choose Aesop, the Greek writer that said a long time ago, I'm talking like 2,600 years ago, or something. No act of kindness, no matter how small, is ever wasted. We always remember about received kindness, okay? Remember that. That's it, I'm done for today. Thank you very much, once again. I'm Paolo, NodeTSC and principle engineer at Platformatic, and it was lovely to have you today here, listen to me. Thank you very much, and bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye.

9. Farewell and Goodbye

Short description:

Farewell, goodbye, and bye-bye.

Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye.

Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye.

Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye. Bye-bye.

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.