Three Factors That are Blocking Contributions to Your Open Source Project

Rate this content
Bookmark

When talking about contributing to open-source projects, it’s crucial to understand from a maintainer point of view what factors are stopping new contributors from contributing to your project. Whether your codebase is very overwhelming to the contributors for the first time or it  lacks good first issues and enough responsive response to their problems. 


In this talk, I will explain how I built a campaign at Amplication that scaled the contributors from 30 to 200 in just one year and how it solved every problem I mentioned above.

14 min
15 Nov, 2023

Video Summary and Transcription

Welcome to the best talk of React Summit USA. This talk is about three factors that block contributions to open source projects. Application is an open source dev tool platform that eliminates repetitive tasks in creating NodeJS backends, increasing developer productivity. I will discuss the challenges faced by first-time contributors and how to overcome them. If you want to contribute for the first time, we welcome you. Being proactive and engaging with the community can attract long-term contributors.

Available in Español

1. Introduction to Open Source Contributions

Short description:

Welcome to the best talk of React Summit USA. This talk is about three factors that block contributions to open source projects. We want valuable contributions from the community. Connect with me on LinkedIn and Twitter. I have helped hundreds of developers contribute to open source.

Good morning, good afternoon, and good evening and welcome to the best talk of React Summit USA. And as you can see, this talk is going to be about three factors that are blocking contributions to your open source projects.

So we all have one side project that we want to work on, and we may want to make it open source. We are working in companies that have open source products or open source projects that we want to grow, and the most important part of growing an open source project is the support from the community. We want valuable contributions from the community to our open source projects. We want as many as contributors contribute to our project and make it better. There are many things that blocks their way to contribute to the very first time to your projects. And this talk is going to be all about those three blockers and how you make your project a better path for the first time for them.

So, on a side note if you want to connect to me here is a QR code. You can scan it and just connect to me. I'd love to connect to you. And so who am I? Hey everyone I am Saurav Jain. I am from capital of India, New Delhi. I am working as a community manager for the last two years at an open source DevTools start up called Amplication. I'll tell you a little bit more about Amplication in the next slide. I consider myself as an open source evangelist. I am in this field from the last five years and I have helped hundreds of developers to contribute to the world of open source for the very first time. And this is something that makes me happy. I visit all over the parts of the world, speak about open source, help contributors to contribute to open source projects. And I'm very active in social media channels as well. So if you're not following me, you are missing something. So these are my handles, S-A-U-A-I-N, on both LinkedIn and Twitter, you can give me a follow there. I love to travel. I love to code. I love to post content on Twitter. So I post usually content revolving around open source and communities on Twitter. So if you are interested, please check it out. And yeah, application. So this slide is not for giving an intro about the application, but I want you to know that how I started when I started working at an open source company and how small it was. So just a little introduction.

2. Application's Growth and Impact

Short description:

Application is an open source dev tool platform that eliminates repetitive tasks in creating NodeJS backends, increasing developer productivity. It started as a small tool with a community of 1000 members and 30 contributors, but now has over 35000 developers and 12000 stars. It continues to grow exponentially.

Application is an open source dev tool platform. It's a code generator which generates the boilerplate code for you and it eliminates the whole repetitive task that developer teams has to do when they are creating NodeJS, NodeJS backends. So it makes the developer life easy by eliminating the repetitive task and increase the productivity. But when I joined application, it was a very small tool. So we have a community of hardly 1000 members. We have only 30 contributors on our open source project and the project was pretty small. So I started at that time. So if you are someone who is working on a personal project and the project is very small, don't worry. I too started in that way and now we have a community of 35000 plus developers across all platforms. We have 12000 stars nearly right now, more than 300 contributors if I be honest on every repository of application and the community you can see there. So we grow exponentially and you can too.

3. First-Time Contributor Challenges and Solutions

Short description:

In this talk, I will discuss the challenges faced by first-time contributors and how to overcome them. The overwhelming codebase is a common blocker, but providing good first issues can help. These issues should focus on one package and one file, allowing contributors to understand and make small contributions. Other good first issues include UI/UX improvements, documentation fixes, bug fixes, and improving the Read Me. Documentation issues are particularly helpful for new contributors.

In this talk I am mostly going to talk about the contributor parts, not the everything because it's a lightning talk. So let's start! So I will start this talk by telling you about the point of view of a first time contributor. So either a contributor who's contributed the first time is a beginner to the tech world or to the open source world or they are visiting your project repository for the very first time. And in both cases it is tough to understand the code. It is tough for them to understand what is going on, they try to read documentation, they join a community, ask community some question, interact with them and they use the product.

And when they use this they have some blocker. So for example Harji Forever was trying to contribute to an issue in Amplication and he got some blocker. So what are those blockers exactly which block these first time contributors to contribute to your project? So the first one is getting overwhelm by code. Yes, like this. So everyone will relate to this when you contribute to the very first time to any open source project, the code base is very overwhelming. So I personally don't know which file is doing what thing. There are dozens of packages, hundreds of file and I don't know which one is doing what. So for example if you go to github.com slash amplication slash amplication you will see the whole code base how we are generating the back end. And I'm working on amplication and it's tough for me even if I'm a very, if I'm thinking from a very beginner point of view to understand which package is doing what. There are dozens of package, each package has hundreds of files and I don't know what is, which thing is doing what.

So as a, as a first step, as a maintainer, you need to understand how to overcome this and the best way to overcome this blocker is good first issues. Yes, so I recommend you should have as many as open, good first issues open on your repository as you can. So what I consider to be a good first issue is a code issue that can be solved only in one file. So I agree there are dozens of, dozens of packages. You cannot teach everything in starting. So let's start with one package and one file and a code issue that can be solved only in that file. So if a contributor tries to contribute, tries to pick that issue, they will go to that particular issue, solve this and learn about a particular package of your repository and they will understand what is going on in that package and it will be a gap. It will add as a catalyst. It will be the beginning of their lot of contributions to your project because they understand one thing. Then they will pick another issue which will make them understand about the other package and they will understand about that. So like this, they will understand more and more packages and eventually they will be a very active contributor in your repository. Other issues that I consider good first issue is UI. UX issues, documentation issues, small bug fixes, typos and making Read Me better is always welcome for the maintainers. In the documentation issue, I say that I have personal experience that when there is an issue in documentation, you ask community to fix it, they read documents, they read what is going with your product, how to use it and they learn about your product and they become a user. So documentation issues are very helpful for the first time contributions and good first issues helps to contribute.

4. Contributor Support and Proactive Maintenance

Short description:

If you want to contribute for the first time, we welcome you. As a maintainer, be proactive in maintaining status updates from contributors. Help them overcome any problems they face, even if it's a good issue. Schedule meetings with your engineering team to assist contributors. By being proactive, you can attract new contributors and build trust in the community.

Yeah, it's as simple as that. So if you go to github.com slash Amplication slash Amplication and you will go to the issues section, you will see at any moment of time, we have 20 to 30 good first issues open in our repository for the contributor who want to contribute to our repository anytime. So if you want to contribute for the very first time, we welcome you. So please come and contribute to our repository. You are more than welcome.

After the second second thing, which is a very big problem is for example, yes, the meme is very funny. The for the example, let's assume you have some contributor from a repository pick them good first issue start working on it and they got some error. Installations are not easy. Maybe some get error or maybe some error with your product. We don't know. And these they start they just stopped working on it because they don't know what to do.

And as a maintainer, you have to be proactive. You have to maintain status updates from the contributors working on your issues. If they are having some problem or not, how you can help them. You have to ask this item time to time at a certain period of time. I don't know after a week, after two weeks. According to the issue. And if they are having some problem, you have to help them even if it is a good issue because they are contributing for the first time. You have to feed them. You have to make them learn about your project and if required, you can also schedule a meet with your engineering team and they will learn from the engineering team itself. So it's never it never harms and it creates a trust in the community and more and more community members contribute to your project. And that's how it works.

For example, I was a contributor named Hajj. Asked me to assign an issue. I assigned him an issue three weeks ago and I usually maintain status updates very proactively. He forgot that he has to work on this issue. I maintain status update and ask if there's any update on the task he's working on. And in a day, he made a PR because that's how you get a new contributor by just being proactive. And on the other hand, on the right side of the screen, you can see Sameet got an error while working on an issue and I asked one of the engineers of Amplication to help him. And after I asked them to ask him to help him, they scheduled a meet and it was, the issue was solved.

5. Reward and Recognition for Contributors

Short description:

Being proactive and engaging with the community can attract long-term contributors. Celebrate every open source contribution and show appreciation. Provide rewards like stickers, badges, t-shirts, or recognition on social media. This approach has helped Amplication grow from zero to over 350 contributors in a year. Join our discord community and give Amplication a chance by starring our GitHub repository.

And now Sameet and Harsh both are very active contributors of Amplication. So just by being proactive and asking community, you can gain contributors and which are active for a very long time.

And the last but not least is the reward and recognition. So, I personally believe that and I always say this, that every open source contribution should be celebrated. Someone is dedicating their time to your project, someone is working for your project without asking anything. So if they are kind enough to contribute to your project, you have to be kind enough that you can give them a small coupon of appreciation. If you can afford, I will always prefer that you can give some sticker sheet, you can give some a badge, you can give them a t-shirt or cap, according whatever you can afford and your company can give.

Otherwise, if there is a side project, you don't have a budget, you can always give them some recognition on the social media channels. So a post that will mention that this contributor helped us to bring this value to our project and it helped the open source project a lot. We grew and the community is enjoying the new feature, the new value that the contributor provided. It means a lot for the community. Then community knows that the maintainers of this project values community contribution, they are kind enough, they are kind enough to express their gratitude toward the community and more and more community members get motivated through this. They look forward that we will also get these things, we will also get these rewards or recognition on social media channels. It means a lot. And it works. It works. So whenever I invite first-timers to the Amplication repository, I do a thank you post always. I give them a t-shirt and a sticker sheet which they appreciate a lot. And this helps us bring more and more contributors to our project. So in a year, you can see from zero to more than 200 and if I count all repositories, it is more than 350 contributors right now in Amplication, which is very big. So this works. Yes. If you want to contribute to the open-source world for the very first time, I invite you to join our discord community and if you like my talk and if you want to give Amplication a chance, you can give us a star on GitHub, you can look all the code based VR and you can contribute to our repository. You are more than welcome. And that's all. Thank you so much.

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

React Summit 2022React Summit 2022
27 min
Impact: Growing as an Engineer
Top Content
Becoming a web engineer is not easy, but there are tons of resources out there to help you on your journey. But where do you go from there? What do you do to keep growing, and to keep expanding the value you bring to your company? In this talk we’ll look at the different kinds of impact you can have as a web engineer. We’ll walk through what it means to take on bigger, more complex projects, and how to scale yourself, and grow the community around you. By driving our own development we can all grow our impact, and in this talk, we’ll discuss how to go about this.
TechLead Conference 2023TechLead Conference 2023
25 min
On Becoming a Tech Lead
Top Content
Tech lead sounds like a lot of work. And not the fun coding kind either. Why would you ever want that? What does it feel like when you get it?In this talk Swizec explains why he took the step towards technical leadership, how his priorities changed, and why it means he’s doing more engineering than ever. A whole new world where writing code is the easy part.
10 min
Emma Bostian: I landed my dream job by sharing my blogs on Twitter
Top Content
Featured Article
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.
***
Follow Emma on Twitter
14 min
Kent C. Dodds: Consume, build, and teach — and level up your career
Top Content
Featured Article
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.
***
Follow Kent on Twitter and listen to his favorite Spotify playlist
TechLead Conference 2023TechLead Conference 2023
36 min
Effective Communication for Engineers
Your communication skills affect your career prospects, the value you bring to your company, and the likelihood of your promotion. This session helps you communicate better in a variety of professional situations, including meetings, email messages, pitches, and presentations.
6 min
Charlie Gerard's Career Advice: Be intentional about how you spend your time and effort
Featured Article
When it comes to career, Charlie has one trick: to focus. But that doesn’t mean that you shouldn’t try different things — currently a senior front-end developer at Netlify, she is also a sought-after speaker, mentor, and a machine learning trailblazer of the JavaScript universe. "Experiment with things, but build expertise in a specific area," she advises.

What led you to software engineering?My background is in digital marketing, so I started my career as a project manager in advertising agencies. After a couple of years of doing that, I realized that I wasn't learning and growing as much as I wanted to. I was interested in learning more about building websites, so I quit my job and signed up for an intensive coding boot camp called General Assembly. I absolutely loved it and started my career in tech from there.
 What is the most impactful thing you ever did to boost your career?I think it might be public speaking. Going on stage to share knowledge about things I learned while building my side projects gave me the opportunity to meet a lot of people in the industry, learn a ton from watching other people's talks and, for lack of better words, build a personal brand.
 What would be your three tips for engineers to level up their career?Practice your communication skills. I can't stress enough how important it is to be able to explain things in a way anyone can understand, but also communicate in a way that's inclusive and creates an environment where team members feel safe and welcome to contribute ideas, ask questions, and give feedback. In addition, build some expertise in a specific area. I'm a huge fan of learning and experimenting with lots of technologies but as you grow in your career, there comes a time where you need to pick an area to focus on to build more profound knowledge. This could be in a specific language like JavaScript or Python or in a practice like accessibility or web performance. It doesn't mean you shouldn't keep in touch with anything else that's going on in the industry, but it means that you focus on an area you want to have more expertise in. If you could be the "go-to" person for something, what would you want it to be? 
 And lastly, be intentional about how you spend your time and effort. Saying yes to everything isn't always helpful if it doesn't serve your goals. No matter the job, there are always projects and tasks that will help you reach your goals and some that won't. If you can, try to focus on the tasks that will grow the skills you want to grow or help you get the next job you'd like to have.
 What are you working on right now?Recently I've taken a pretty big break from side projects, but the next one I'd like to work on is a prototype of a tool that would allow hands-free coding using gaze detection. 
 Do you have some rituals that keep you focused and goal-oriented?Usually, when I come up with a side project idea I'm really excited about, that excitement is enough to keep me motivated. That's why I tend to avoid spending time on things I'm not genuinely interested in. Otherwise, breaking down projects into smaller chunks allows me to fit them better in my schedule. I make sure to take enough breaks, so I maintain a certain level of energy and motivation to finish what I have in mind.
 You wrote a book called Practical Machine Learning in JavaScript. What got you so excited about the connection between JavaScript and ML?The release of TensorFlow.js opened up the world of ML to frontend devs, and this is what really got me excited. I had machine learning on my list of things I wanted to learn for a few years, but I didn't start looking into it before because I knew I'd have to learn another language as well, like Python, for example. As soon as I realized it was now available in JS, that removed a big barrier and made it a lot more approachable. Considering that you can use JavaScript to build lots of different applications, including augmented reality, virtual reality, and IoT, and combine them with machine learning as well as some fun web APIs felt super exciting to me.


Where do you see the fields going together in the future, near or far? I'd love to see more AI-powered web applications in the future, especially as machine learning models get smaller and more performant. However, it seems like the adoption of ML in JS is still rather low. Considering the amount of content we post online, there could be great opportunities to build tools that assist you in writing blog posts or that can automatically edit podcasts and videos. There are lots of tasks we do that feel cumbersome that could be made a bit easier with the help of machine learning.
 You are a frequent conference speaker. You have your own blog and even a newsletter. What made you start with content creation?I realized that I love learning new things because I love teaching. I think that if I kept what I know to myself, it would be pretty boring. If I'm excited about something, I want to share the knowledge I gained, and I'd like other people to feel the same excitement I feel. That's definitely what motivated me to start creating content.
 How has content affected your career?I don't track any metrics on my blog or likes and follows on Twitter, so I don't know what created different opportunities. Creating content to share something you built improves the chances of people stumbling upon it and learning more about you and what you like to do, but this is not something that's guaranteed. I think over time, I accumulated enough projects, blog posts, and conference talks that some conferences now invite me, so I don't always apply anymore. I sometimes get invited on podcasts and asked if I want to create video content and things like that. Having a backlog of content helps people better understand who you are and quickly decide if you're the right person for an opportunity.What pieces of your work are you most proud of?It is probably that I've managed to develop a mindset where I set myself hard challenges on my side project, and I'm not scared to fail and push the boundaries of what I think is possible. I don't prefer a particular project, it's more around the creative thinking I've developed over the years that I believe has become a big strength of mine.***Follow Charlie on Twitter

Workshops on related topic

React Summit 2022React Summit 2022
75 min
How To Design A Sustainable Freelance/Contracting Career + Speedcoding Challenge
WorkshopFree
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.
React Advanced Conference 2021React Advanced Conference 2021
145 min
Designing A Sustainable Freelance Career
WorkshopFree
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
React Summit Remote Edition 2021React Summit Remote Edition 2021
121 min
Landing Your Next Developer Job
WorkshopFree
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.