Find your tribe - why developers need their crew
This article is inspired by a panel I participated in at WeAreDevelopers World Congress 2023. A buffalo stick take on a panel, if you will.
Without getting too heavily into stereotypes, we developers tend towards being on the “wallflower” side of the spectrum. I’m no exception, even though I’m actively taking part in some not-so-introverted activities. That’s all good and well, but we are naturally social beings. Especially when it comes to problem-solving, learning, and sharing knowledge, it stands to reason that by collaborating with others, we can achieve more than we can on our own. Let’s dive into why it’s important to be part of a community as a developer.
I will try building an answer for this from the “selfish” point of view, i.e., what’s in it for you as an individual. To me, the primary value of being a part of a community is having a network of support and a group to rely on. Let’s explore what this means in practice.
The more connections you have, the more opportunities you’ll have. Communities of like-minded individuals are precisely the place to build these connections. These opportunities can vary from finding a new job, finding a freelance gig, or collaborating on something (FOSS or otherwise). Additionally, whenever you get stuck on a problem or need a second opinion, you can always reach out to the group for help. If, at any point in this paragraph, you thought, “but this sounds like a company” - you’re right. A company is also a community in many senses but with the profit motive added on top. It’s a group of people working together towards a common goal. The difference is that the goal is not to make money but to help each other out (even though some collabs can lead to making money).
The two primary transactions one can make in a community are sharing what they know and learning something from the group. Let’s go deeper into each and see how they can benefit you.
There’s always something new to learn, whether you’re just starting or are longer in the tooth. While no two people learn the same way, having someone to ask always helps, or having a group of someones to ask, for that matter.
When it comes to development, whether you’re starting on a new library/framework or you’re stuck deep into Heisenbug land, technical documentation, videos or blogs can only get you so far. At some point, you’re bound to hit a wall with something ill-documented, maybe a new bug or something else. You may be on the fence about whether to use a particular tech. Or you might need a recommendation on what to use for your next app. These situations are exactly where having a community to ask for help can be a lifesaver.
Another point I’d like to make here is the one about getting information in general, not just for the sake of learning. Most of my freelance gigs, projects, and employment opportunities have come from people I know professionally. And most of the people I know professionally are from the communities I’m a part of. This is not to say you should join a community just to get a job. But it’s a nice side effect of being a part of one.
One of the easiest ways to get noticed and build a brand for yourself is by sharing what you know. What you share can be in the form of blog posts, videos, talks, or even just tweets. The more you share, the more people know about you and your work. This can lead to more opportunities, as mentioned above. But it can also lead to more people reaching out to you for help. That is a great way to build your network and get to know more people. And, as we’ve established, having a network is a good thing. Online communities are an excellent place to share your work and knowledge. They’re also a great place to get feedback on your work and knowledge. This can help you improve and grow as a developer.
However, it’s important to note that sharing just for the sake of sharing isn’t too valuable. The content you create, find, curate, and share should be relevant to the community you choose to be a part of. Otherwise, you’re just spamming. And nobody likes spam. Put another way, you should share things you would like to see in the community. Stuff that’s valuable to you and that you think will be valuable to others. Finding out what that is can be tricky and can take some time. But it’s worth it. Experiment to see what people react to. Iterate.
The bottom line is that you can view a community as a “stage” of sorts—a place where you can share your work, build in public, and build a personal brand. If you’re uncomfortable with that, you can always just lurk and learn. But I’d encourage you to try and share something. You’ll be surprised at how much you can learn from the feedback you get. Additionally, people tend to share what they like and find value in. So, if you hit that value sweet spot (and that’s a matter of iteration), you’ll get more people to share your work. This can lead to more opportunities, as mentioned above.
Had enough of the “selfish” angle? Let’s look at the other side of the coin.
There are plenty of benefits to being a part of a community as an individual. But there are also a lot of benefits to the community itself. The point I’d like to make here is that being an (active) community member is a win-win scenario. Beyond the “free audience” point we made above, there’s something to be said about the community as an organism.
Consider this - if each member started from the “selfish” point of view, this is still a win-win scenario for everyone involved. None of us know everything (alone). Those who know a particular thing can share for their benefit and the “free stage” thing. Those who seek knowledge can learn. It’s a symbiotic system. And it’s a system that can grow and evolve.
One of the more nuanced perks of being part of a community is the collective mindset. The insights, the shared experiences, the common challenges - it all coalesces into a unified understanding of the tech world. When you are part of a tribe, you aren’t just getting direct feedback or assistance; you’re tapping into a vast reservoir of collective experiences.
Have you ever found an obscure forum post from 2006 that somehow solves your current tech problem? Yep, that’s the power of community memory. Being part of an active community today means creating the resources that someone might find invaluable a decade from now.
An active contribution to a community sets off a ripple. Share a workaround for a stubborn glitch today, and you might inspire someone else to create a more streamlined solution tomorrow. This cyclic inspiration keeps the community vibrant and progressive.
Remember that win-win scenario? The community gives, and you benefit. But there’s another layer to this: when you give back, the cycle continues. Whether it’s mentoring a newbie, organizing an event, or simply upvoting a helpful comment – it’s a way of acknowledging the value you’ve derived and ensuring the community’s heartbeat remains strong.
Perhaps one of the most compelling aspects of being in a community is the synergy. When developers come together, they don’t just add their expertise – they multiply it. New collaborations, side projects, or even startups often emerge from the explosive mix of ideas and aspirations.
In one of the paragraphs above, I mentioned that companies are also communities. The same goes for research institutes, universities, and other organizations. I’ve been a part of a few of these, and I’ve seen the benefits first-hand. Being a huge fan(boy) of the work of Bell Labs and the UNIX philosophy, I found that this video by Richard Hamming makes some great points about the benefits of being a part of a community (and a lot of other ones too). I’d encourage you to watch it.
The two most relevant points to this article are (but seriously, go watch it - it’s excellent 😁):
- Share and Collaborate: Hamming stressed that working in isolation limits potential. Sharing ideas, collaborating with peers, and being open to feedback can significantly elevate the quality and reach of your work.
- Environment Matters: Being in the right environment, surrounded by motivated and intelligent people, can catalyze success. It’s not just about individual brilliance but also the collective intellect and drive of those around you.
While I’ve soloed a part of my career, I’ve done some of my best work when being a part of a group that shares vision, values, and ideas. I’ve had the fortune of doing actual R&D work, where we were given a problem and left to our own devices to solve it. It wasn’t supposed to be a product, but something that may eventually become one. While being able to focus on a problem without having hard time constraints is fantastic, the environment and the people I worked with made it productive. I firmly believe we got much more done as a group than we would have individually. And each of us had a video transcoder app/cli/service to show for it, implemented independently (but that’s an even longer story for another time). Still, it was because of that environment (and community), that we were able to solve problems as a relatively small team, that nobody else wanted to tackle. Some of the stuff we were able to produce: a chromecast clone (way before chromecast was a thing), a distributed transcoding service, an embedded video player (html5 video wasn’t a thing back then) using NPAPI, a peer-to-peer CDN thing based on aria2c using BitTorrent… those were the days. In many senses, what we did reflected in many ways the freedom described by Bell Labs folks. To avoid going off on a tangent here, I’ll leave it at this - the environment and the people you work with matter. A lot. Same goes for communities and being a part of a community as a developer.
Back to Bell Labs, it’s hard to find a talk or an interview from anyone who was part of the golden days of Bell Labs without them mentioning that, in many ways, the extraordinary work being done there had to do with the environment and being surrounded by like-minded people. Sounds like a community, doesn’t it? They have the most Nobel and Turing awards of any company/research institute to date.
While the benefits of being part of a developer community are many, the essence is simple: find your tribe, connect, share, and grow. Remember, tech trends might come and go, but the relationships you cultivate within your community can last a lifetime (and come back in unexpected ways to help you produce great things).
So, if you’re on the fence about joining one, remember this: every line of code is a statement, every shared solution a conversation. Why not make it a shared experience with a tribe that resonates with your vibe? Dive in and embrace the collective journey.
Have some trouble finding the right community for you?
If you’re looking for an in-person one, do a quick search on Meetup, Facebook, etc. If you’re into JS land, try finding a local BeerJS branch or start one yourself (it’s really fun and easy). Here’s mine if you happen to be in my corner of the planet.
If you’re into online ones, here’s my favorite -> https://creatures.dev. It’s a community of curious developers excited about code, but that description doesn’t do it justice or describe what it’s all about. Join and see for yourself 😎