We’ve all stalked those 'cool' developers we found out about from their works on crucial software. Digging deeper into their past achievements, the levels of woah keep increasing. This first impression you’ve formed of the person, about their skills, competence and influence, is their developer profile.
Why do I need a developer profile?
In an industry where attention economy dictates the opportunities you get, there’s a strong need to build your brand to increase your prospects. This further affects your network and outreach, as it is usually limited to your ecosystem (your city, workplace or friends).
Being someone who's known as an expert in their skill set, with a reputation of producing good work, is the long term goal I want to convince you to set for yourself by the end of this post.
How would this help me?
The upcoming generation of developers is already using various ways to market themselves and their work. To keep up, we need to improve our strategies and modernize our game plan.
The best way to get highlighted as an expert developer is building your niche in a particular technology. Active participation along with good reputation greatly boosts your portfolio. All of this can be rewarding towards finding clients (if you're a freelancer) or recruiters to potentially see you as a valuable hire!
How does Open Source fit here?
Although Open Source is built on both collaboration and transparency, the latter is what grants you the boon of visibility. Anyone can follow your work and recognize your contributions to the developer community. This provides you with ample exposure and feedback while also making great connections along the way.
The benefits of participating in open source can be different based on your (subjective) skill level. I'll divide experience in three 'levels' and talk about the merits of building a profile for all of them.
For Beginners 👩🎓
Open source is a great opportunity to work on production code while still learning. It might be difficult to start off directly with vast codebases, but we can certainly work towards making that accessible. A good approach would be starting off with smaller or personal projects and focus on learning. Remember, the climb is slow and difficult, but very rewarding once you are at the top!
Additionally, check if you are eligible to apply for programs that support open source like the MLH Fellowship (a really great collaborative learning experience for students), GSOC (highly competitive, make sure you can afford to invest the time), Outreachy etc.
However, as good as all of this sounds for a budding developer, there are some assumed prerequisites for all of us. You should be experienced with the workflow, ethics and civility followed in open source. You should also be well versed with the domain you're contributing to so maintainers don't have to do much hand-holding to get your work merged (they're people with responsibilities too!).
For adept Devs (somewhere in between) 👨💻
This is a really interesting place to be in while working on your profile. You're experienced enough to start building software and libraries on your own, while still having a good margin of learning to be had from the experience.
You may start working on community-focused projects (no more writing code for your eyes only!) or have some plans for building software on your own. Working on a large project with people to mentor you is really great for personal growth. Additionally, you should focus on amplifying the impact and get recognition for the good you're doing for the community.
For experienced Developers 🐱💻
Veteran developers might think having work experience would make their future job endeavors a breeze, or that open source isn't worth investing into because it can't be easily monetized. While that's true to some extent, participating in open source can lead to much extensive outcomes.
You'll gain collaborative development experience, build a reputation among other developers in your niche and achieve recognition for the software you've worked on. If your project reaches a certain level of attention, you are most likely to get lucrative professional opportunities, with the added fame of building a successful project, of course.
Using OS to build my profile sounds uncommon...
Claiming all Open Source developers to be solely working for benevolence and FOSS enthusiast jingoism would be a disservice to the people who are also building their reputation from it.
While the drive to help the community may be the primary reason most people work on open source projects, there is nothing wrong with having personal goals along the way.
But I'm not a genius programmer...
This is a common misconception among the uninitiated, primarily students, new contributors and developers who are foreign to the concept of building open software.
Most contributors are everyday people with responsibilities, just like you, who take out time to manage or build upon their side projects. So if you're wondering that you don't 'Eat, Sleep, Code' enough to fit in, don't worry you'll fit in like a glove.
The bare minimum to jump in and get building are finding a platform that works for you (Although GitHub is the most popular platform for OS collaboration) and knowing a language well enough to print FizzBuzz in.
I started my journey in Open Source with no formal introduction. Lots of 'oopsies' and almost 2 years later, I think I'm doing good with a long journey of contributing ahead of me!
Great, you've laid a strong foundation!
If you've been successfully contributing to open source and have a history of doing good work, now you can start the real climb.
Assuming you've been building on some software or tooling, you can amplify the influence of your work by using some of the following methods.
Hosting Workshops/Giving talks at Conferences 🎤
This blog from Josh Comeau accurately explains how to prepare for conference talks, I suggest giving it a read before applying to speak at one.
Perfecting a talk can be severely time consuming but if done right, it can really boost your standing among the developer community. I've personally never spoken at a large conference yet ( haven't struck on anything that interesting to bore an audience with :) but I've held a few talks and workshops at local meetups.
Write Tech Blogs ✍
If you've been building software, open or closed, blogging is one of the most effective ways to share your ideas and experiences. It's quick to write, easy to consume and can reach a bigger audience.
You can cater to different kinds of readers with what you write. Blogs can be highly technical, for readers who want to grab a cup and take a deep dive into a topic. They can also be a documentation of your perspective on a topic or in some cases, like this blog, advice you wish your past self had read a year earlier.
Writing about what you've been working on can also act as an introduction, or explain your project to anyone interested in knowing more about it. This could create potential contributors and motivate you to continue building, if you feel like abandoning it.
Expectations-Driven Profile Building 👁🗨
I probably coined this term, remember my name in history folks!
A crucial part of profile building that a vast majority have been overlooking (including myself, until recently) is not talking about your work. Announce to the world that you've started a side project. Build a following, keep everyone posted on your progress, talk about when everyone will be able to see/use it. You might even attract some contributors to help you out!
An outcome to watch out with this approach is over-promising and under-delivering. Don't set the expected deliverables too high that you can't reach yourself. Remember, disappointment could leave a bigger mark on your reputation than achievements.
Building an Audience 👨🎤
The domain you become skilled at and the work you produce, defines the niche people will recognize you for.
Stay up-to date with the newest relevant tech and talk about it from your own perspective. This provides people with a fresh take on trending topics, which is good for increasing engagement.
Remember, consistency and clarity about your domain is necessary when building your audience. People should know exactly what you and your work are all about, so they can decide if they want more of your content or be a part of your progress.
Know what audience is right for the content you serve and optimize for it. An example, providing perspective on a new tech on LinkedIn won't reciprocate the same response you would get on tech Twitter. Some platforms with great growth potential for building a tech community are Twitter, YouTube, Dev.to and Hackernews.
Before you're all pumped up to become a well known rock star Open Source developer, I'd like to make it clear that all of this will take time. There's no substitute to the grind but all of the these efforts will compound over time and you'll see all the progress you've made soon.
Remember that every little commit you make, every new connection you form or organization you're invited to, is taking you in the right direction.
If you've made it this far, I'd like to thank you for taking the time to read through some of my learning ever since I've actively started developing publicly.
I'd like to write more posts from my experiences but to hone my writing skills I'd really appreciate feedback from you, the reader. I hope my advice aligns with your goals and helps you grow effectively as a developer :)
If you enjoyed reading this, tapping the “︎❤” would help promote this post to more folks. Sharing it with other people who could benefit from it would be even better!