Developer's Guide to Communities
Software development is such an interesting industry that there are so many communities that have been formed around it: meetups, conferences, online communities, blogosphere, social media and so on. The amount of people who like to share what they know, have learned and have experienced is mind-blowing to me and something that makes me very happy.
I ended up getting involved with developer communities slowly and in the beginning, bit awkwardly but ended up falling in love with the concept so much that my career took a turn from development of software to development of communities. But I'm still also a developer who participates in these communities and have been pondering for years about writing a "guide" for developers on how and why to get involved with developer communities.
Why should you as a developer get involved in developer communities?
There are many reasons for people to be involved in developer communities – and a decision not to be involved in them is also a perfectly fine and valid one. You can be a great developer and have a successful career without ever being involved with any communities. However, here are a few reasons why I recommend people getting involved.
Meet peers and build relationships
First great reason is that developer communities give you an opportunity to meet with people who have something in common with you. You don't need to be a 24/7 developer-for-lyfe type of person to benefit from having a platform outside your current job/team/project to discuss technological topics.
I have made so many friends all over the world through meetups, hackathons, conferences and online communities and I am so happy I have because people are kinda the best part of life.
In addition to making friends, these communities are also a great way to build professional relationships. The industry is so networked (people, not wires) and getting to know people outside your job can have a huge impact in your career: what kind of technologies are they using, what kind of processes they use at work, how's their team culture, how much they earn and so on. Learning these over time from others in the industry helps you improve your team's situation and gives you tools to reflect on your career situation and future path.
Another effect that comes from building professional relationships is that you'll learn about new opportunities – and equally important those new opportunities learn about you!
Let's imagine a situation that you're interested in switching jobs. If all of your connections in the industry are within your current job, you're pretty much limited to job ads and sending your CV to those. In my experience, many of the best opportunities never get to the stage of open job ads but are rather filled directly.
On the other hand, if you're involved in your local communities, you can start having discussions about your interest for something new during the breaks at meetups/conferences with people you've gotten to know or you might end up in discussions where people share about the needs their teams are having. I once ended up in a great interview for a job after a manager mentioned they were looking for someone with my skill set – while we were playing Dungeons and Dragons during Christmas.
Being part of the community also brings another huge advantage: social proof. As you interact with people, get involved in communities and contribute to the community as a speaker or organizer yourself, people will learn more about you and you build trust that makes it more likely that people want to work with you.
Becoming a speaker or hosting a session in your community can be a great opportunity to grow as a professional and to expand your skillset – not to mention building your personal brand.
A side note about personal brand
Personal brand is a term that has somewhat negative connotations to many. In my experience many people associate it with ideas like "presenting yourself as something you're not" or "being arrogant" but in a nutshell in this context, this is how I see personal brand:
It's a curated view on things that you've done, are good at and are interested in.
You don't need to (and should not) lie or create fake brand around yourself but rather share what you're already doing and curating it so that it shows your best side and focuses on things you want people to know about you.
You could be the absolute best in the world in something but if nobody in the world knows it, your options on what you can do with that skill are limited.
To build your personal brand, you can share what you've worked on in social media, build a website for yourself (like this site of mine that you are on right now), write blog posts, do talks in events and help people in your community with skills you have.
In a way, everyone has a personal brand: it's what other people know and think about you. And if you're not doing anything about it yourself, you're leaving it to the interpretation of others and that can lead to less desireble results.
Here's a practical example of that curation: in my previous job as a developer advocate at Futurice, one part of my job was to run our university and student collaboration. It wasn't the main part, not the most impactful nor the most interesting part of my job but because it was the easiest part to explain, I often started my internal introductions with that. As I noticed that people started seeing me (and even introducing me) as mainly that, I realized that I needed to change the way I talked about my work to highlight the more important parts.
Continuing on growth
There's so much more to software development than just writing code. In 2019, I gave a presentation about how teaching has helped me improve as a developer in various events.
First skill that is universally valuable and becoming more and more important these days is communication skills. As a developer, you need to constantly communicate your work with teammates, managers, clients, users and so on in different ways and levels. Giving a talk in your local meetup or writing a blog post about what you know is a great way to practice communication skills.
Doing presentations on technical topics also helps you deepen your understanding on the topic. In his tweet, David Neal put it very nicely:
1. Speaking is hard work. But, it's the kind of hard work that is *good*. It requires you to dive deeper into the topic and to think more deeply about it. Along the way, you will likely learn new things and discover new insights.
Every time I've made a presentation, I've done a bit (and sometimes, a lot) of extra research to make sure I understand the topic even better (and deeper understanding leads to better communication). And every time you strengthen your core understanding and skills, you become more confident as a developer and you can dive deeper into your craft.
And these presentations don't even need to be meetup/conference talks but the same things apply to all sharing: it could be a blog post or helping people in Slack/Discord/Matrix and participating in discussions there.
How to get started?
How to find developer communities?
There's no one complete index where you can find them all. Different communities take form and share about their activities in different ways. However, there are some popular places to look for:
Meetup.com is the market leader in meetup directory space. There you can search for meetups based on geography and content from a collections of hundreds and even thousands of groups.
Meetabit.com is one competitor especially popular in Finland and you can find many meetup communities, filtered by their cities there.
thisdot/tech-community-slacks is a community-curated repository of different online communities for developers around the world.
.cult also listed 6 online communities for frontend developers, maybe you can find some you like there.
And a lot of educators (like for example, Wes Bos's community for people who've bought his courses), programming streamers and other active people have their own great communities.
Some communities share their events in Facebook, LinkedIn, Twitter and other social media. In those, I recommend searching for tech keywords and following people active in the industry. Little by little, you start building a good understanding of the communities in your area and interest area.
Also asking your colleagues is a good way to get started. Ask which meetups or conferences they attend or which online communities they are active in.
For my readers in Finland, there are two active general online communities that I can recommend: Koodiklinikka (from our #tapahtumat channel you can find a lot of tech events organized in Finland) and Mimmit Koodaa. Through these two communities you can find a lot of other, more technology specific groups and events as well.
How do meetups work?
I'm using meetups as the example here because I find them the easiest way to get started with local communities.
If you have never been to a meetup, here's a quick generic intro to how most of the meetups operate. There are always some individual differences but this should give you a good overview and more confidence in joining.
Who can attend?
Unless specifically specified, meetups are usually open for everyone and welcome students, beginners, hobbyists, juniors, seniors, and anyone interested in the topic to join.
I highly recommend especially students and juniors to start attending meetups early on since they are a great place to build relationships with people in the industry and learning about stuff that happens in real life software development projects way before you end up building them yourself.
Almost all in-person events (and some online events too) require you to register through their platform of choice (meetup.com, meetabit.com, eventbrite, facebook/linkedin events, google forms etc) so that should be your first step. If the event is already full, many of these platforms keep a waitlist from where you may get a spot even at the last minute when cancellations occur (and they occur quite a lot).
Structure of events
Most common structure for a meetup is to have one or more prepared talks (or panel discussions, general discussions, demos and so on) and time for hanging out, chatting, getting to know each other and so on.
Often there's also food and drinks offered but not always.
As a participant, you don't need to know anything about the topics: there's no entry exams so feel free to participate even as a student or junior or if you're generally interested in the topic.
Back in the day when I started participating in meetups, I used to sit in the corner, eat a slice of pizza, listen to talks, be too afraid to talk to anyone and then leave. I learned about tech, got inspired to try new things and over time, I got more confidence to participate in discussions and started to get to know people.
The talks are the most visible part of meetups but the best part of the meetups is what happens before, between and after the talks – also known as the corridor track.
So unless you're busy to do other stuff, I recommend not leaving when the talks finish but sticking around for discussions, getting to know people and having a good time. Sometimes the events also continue after the official program with after "party" (meaning usually sitting around in a pub/cafe/restaurant to discuss) somewhere outside the venue.
This applies to conferences too and even more, the bigger the event is. You don't have to sit and listen to each and every talk. I used to do that when I started going to conferences but then I was often very tired and exhausted by the sheer amount of sitting and listening that I didn't have much energy for the social part.
I've been to hundreds of events in the past 10 years and I honestly don't remember many of the talks that well – but I do remember fondly so many good casual discussions during and after the events.
Find your own community
There's a lot of communities out there. You don't need to worry about being involved in all of them but I recommend checking out a few around the topics that you're most interested and find the ones that you like the best.
I do recommend to also experiment a bit with communities outside the core technologies you work with since quite often the problems we solve are universal regardless of the tech used and people are similarly awesome in different communities.
So if you're mostly working with React during the day and participate in your local and/or global React community, visiting for example a Vue meetup can help you learn about new things and meet great people who work with similar problems than you.
Same applies to backend: if you're into building backends with Python, you might learn something great in a Ruby or .NET meetup. It's also very common for there to be talks that are more generic than the topic of the meetup itself.
And in the ever-changing world of technology, it's very likely you end up working with more than one language or framework during your career so learning about the options is very helpful.
Get more involved with your community
Once you've found your way into the communities and want to do more, there are a few great ways to deepen your involvement.
Present a talk in meetup
I already talked about this earlier in the blog post but a great way to get more involved is to go from being a participant to becoming a speaker. Get in touch with your meetup's organizer and ask if they'd be interested in having you speak in their events. Depending on the size and activity of the community, you might get a speaker slot for the following month's event or for one six month's down the line.
You don't need to be the top expert in your topic to share. In my experience, most meetups are very welcoming for new speakers and you can always talk from your perspective and your skill level – you don't need to pretend to be anything more than you are. Often the crowd is mixed-level too so having more beginner-oriented talks are often great for those who are starting their journey.
For example, I've done two talks in Rust meetups despite being a very much beginner in the language: in Rust Denver, I shared my learning journey and in Rust Finland I talked about a cool project (rustlings) that helps people learn Rust. Both were well received and I had a great time getting more involved with the community.
A nice side effect is that once you start doing talks, you're likely to be asked to be involved in other meetups, podcasts or other community activities too, especially in smaller countries or cities where there is not unlimited supply of people interested in speaking about technology.
Help organizing things
Joining the group of people running the community is another great way. Most developer communities are run by volunteers on their own time so help with finding sponsors and speakers, hosting events, managing recordings/livestreams doing social media or marketing and updating the website is often much appreciated.
It's usually easier to start doing that once you've gotten to know the people in your community and have participated in few events but there's no harm in reaching out to the organizers at any point and asking how you could help. Best communities are community-run and it's a great way to start a new hobby too.
Help other members of the community
A key characteristic of a community is that it's a group of people doing something together and helping each other out. It's not just a few people organizing stuff for others but people coming together and helping each other out on grassroots level.
So if you can help someone with their tech problems or questions in the discussion boards or chat platform, awesome! Your help is much appreciated. For example, in our Koodiklinikka Slack community, I love how you can get help for almost any problem you have in a few minutes at almost any hour of the day or day of the week. People are helping out each other and making the community better for everyone.
A few words about tech conferences
Conferences are very similar to meetups in most of the ways mentioned above, just bigger in scale. Instead of a 2-3hr evening event, conferences often take anything from 1 to 7 days and bigger events have multiple tracks of talks and hundreds or thousands of participants. And they most often cost money to participate.
Corridor tracks, getting involved by volunteering and joining the organizing team, learning from talks and getting to know great people are the same though. Conferences are a wonderful place to also expand your networks with people from around the world compared to local meetups.
Check if your company offers learning budget or other budget for participating in conferences and join one somewhere nearby. Personally conferences are one of my favorite things these days: I get to combine traveling abroad with meeting new people all while learning new things about the things I work with.
Best way to find conferences is to use your favorite search engine and search for "[your tech] conference" and go through the options. There are plenty!
My recommendation, if possible, is to arrive a bit early (previous afternoon) and leave a bit later (the following afternoon) to maximize the opportunities. I like to invite fellow conference-goers for dinners the night before or lunch the day after to have more time to get to know them and have great discussions.
There's also often either official or ad-hoc unofficial after parties after the last day so I don't recommend booking your flight or train home right after the talks end or you're missing out the best parts.
Best time to start is now
I highly recommend joining developer communities. Personally, I've gotten so much out of them – most of the best things in my life are thanks to being active in communities.
So stop worrying, check your local events from resources above and get involved. There are also some cool projects being built to make it easier for people to get started like Conference Buddy.
Once you get started, you'll quickly notice that it's a lot of fun and brings a whole new aspect into your professional and personal life. And then you wonder why you didn't start earlier.
Appendix A: A real life story
After initially publishing this blog post, I had an encounter that reminded me why being active and meeting people is so cool. So I wrote and Appendix A to share that story.
If you found this post interesting, consider sharing it with your community or following me on Twitter.