How to Run A Tech Community in Your Company: An Ex-Principal Engineer’s Guide

How to Run A Tech Community in Your Company: An Ex-Principal Engineer’s Guide

In this article

  • 🌱 We’ll discuss the principles of founding a tech community in detail.
  • We’ll see real examples of how I organize a Rust community.
  • You’ll get an open source template to jump start your community.

This article is also available on

Feel free to read it on your favorite platform


Six months ago, I started a tech community at trivago, a Nasdaq company that helps more than 25 million travelers a month around the world find their stays.

The community is called the Rust Guild. It’s centered around the Rust programming language. Since its launch, I’ve received a tremendous amount of love and support. So in this article, I’ll share with you how I conceptualize, execute, and sustain a community so that you can run your own tech community in your organization.

Let’s go.


Find Your Core Value around People

First thing to know about communities is that it’s all about the people.

It’s very easy to approach a tech community like it’s only about a piece of tech or a programming language. You might think offering a space where people can share information about tech is enough to attract developers to join and stick around, but it’s not. Many communities declined or eventually faded away because there were no engagements. They were boring.

In fact, tech or programming languages are just subjects. They are nothing more than topics in your exchange with your peers. So what tech community founders need to do before creating a community is to think about how the community can have an impact on developers.

For the Rust Guild, the community is built on the concept of “Play. Learn. Share. Repeat.”. We encourage everyone to share what they learned regardless of level of experience, job function, or department. It’s an inclusive space for learning together as a group. There’s no learning that’s too small. We want our community members to give talks about simple concepts in Rust, one line of code, or painful experience with the language. I believe that simple, tiny talks are seeds in someone else to learn and grow.

Get Help

Don’t do it by yourself. It’s a bit much. There’s an operational side of communities:

  • Looking for speakers.
  • Scheduling meet-ups.
  • Engaging in Slack.
  • Sending meet-up invitations.
  • Moderating meet-ups.
  • Collecting feedback.
  • Communicating with legal teams if you’re inviting guest speakers.
  • Coordinating with accounting teams for guest speakers’ expenses on on-site visits.
  • Managing food and drinks for on-site meet-ups.
  • Handling recordings and archives.
  • Uploading signed agreements from guest speakers

The list goes on and on. It’s time consuming for just one person.

A better way is to find people that can run your community with you from the jump. In the Rust Guild, I designed a few community roles:

  • Moderators: organize and moderate meet-ups. Currently it’s me.
  • Coordinators: assist moderators with operations.
  • Mentors: engage in discussions on Slack and provide technical guidance to members that have questions.

It’s also helpful to identify stakeholders and contact persons for:

  • Company technology strategy and budget: to explore framework and event opportunities.
  • Event organization: to help with space, food and drinks for on-site events.
  • IT support: to help with on-site events.
  • Legal agreement: to draft agreements with guest speakers.
  • Expense reimbursement: to handle guest speakers’ on-site visit.

So far we have 1 moderator, 1 coordinator, and 2 mentors that serve a community of 30 developers. You can expand the community roles according to your situation. The key is to find help to provide your community members with the best experience.

Write A Community Guideline

Now that you have a core value and support group, time to write things down.

It helps you formulate an actionable community format and transform your raw concept into a sharable experience. It’s important to document the following aspects:

  • The core value: what is the expectation and code of conduct.
  • The format: how do you want to structure the peer discussions and meet-ups.
  • The support channel: where can the members find help and support.

By expressing the core value, you’re clarifying why your community exists and how the community members are expected to interact with each other. It gives a clear framework and mental model for the members and it attracts like minded developers to join. They help shape the future of the community.

By standardizing the format, you’re aligning the expectations. It’s not only helpful to the developers, but also benefits the moderators and coordinators to run the operations. It’s a stress reducer.

By communicating with the support channel, you’re creating a feedback loop . Needless to say, feedback culture is an essential component of a successful community when done right. It’s also very important for people outside of the community to contact the organizers.

The community guideline doesn’t have to be long. A one-pager will do. I’ll share the community guideline of the Rust Guild with you. You’re more than welcome to use it as a template:

Rust Guild

The Rust Guild centres around the principle of:

Play. Learn. Share♻️.

The company-wide community is for everyone who’s interested in the Rust language, regardless of your level of experience. We encourage you to try things and share your epic learnings. We welcome all kinds of topics about Rust. It could be a language feature you just learned, a passion project of yours, or a web framework you enjoyed working with, just to name a few. The goal is to learn collectively and provide a helpful community to offer support in your Rust journey.

Guild Format

TitleDetail
Duration1 hour
FrequencyMonthly
Agenda1x 25min Talk🎙 + 10min Q&A,
1x 10min Lightning Talk️ + 5min Q&A
Slack Channel#guild-rust
Talk Submissions[FORM]
Scheduled Meetups[SCHEDULE]

Talk Topics

We will open up the floor to talks, live coding, and learning sessions. The talk topics are not limited to your work at [COMAPNY_NAME]. In fact, we encourage you to talk about your learning or work from OSS community, online resources, or courses. This is a great opportunity for you to share what you are passionate about to the community; so don’t miss out! You’re more than welcome to submit your talks and we can’t wait to hear from you.

Code of Conduct

The guild generally follows the Code of Conduct of the Rust community. Some key points to note:

  1. We are committed to providing a friendly, safe and welcoming environment for all, regardless of level of experience, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, nationality, or other similar characteristic.
  2. Please avoid using overtly sexual aliases or other nicknames that might detract from a friendly, safe and welcoming environment for all.
  3. Please be kind and courteous. There’s no need to be mean or rude.
  4. Respect that people have differences of opinion and that every design or implementation choice carries a trade-off and numerous costs. There is seldom a right answer.
  5. Please keep unstructured critique to a minimum. If you have solid ideas you want to experiment with, make a fork and see how it works.
  6. Spamming, trolling, flaming, baiting or other attention-stealing behavior is not welcome.

Community Mentors

The Rust community mentors are the members in the guild who volunteer to help answer questions about the language, and provide guidance for people who just started on learning Rust.

Currently our mentors are:

  • [MENTOR_NAME]
  • [MENTOR_NAME]

We are looking for more Rust mentors in the community! If you’re interested in being a mentor, please contact [MODERATOR_NAME]. There's no hard requirement. As long as you:

  • enjoy teaching
  • love learning
  • are having fun coding & finding solutions in the language
  • are willing to spend a little portion of your working time answering Rust questions and direct developers to the right resources

Then the community role is for you 🦀

Contact

  • Moderator: [MODERATOR_NAME]
  • Coordinators: [COORDINATOR_NAME], [COORDINATOR_NAME]
  • Slack Channel: #guild-rust

Don’t Cancel Meet-ups

Canceling meet-ups diminishes your credibility and everyone’s commitment to the community.

Developers want to engage in a community where they feel safe. It’s just like installing a package in your software. Before you commit to a library, you want to make sure it has enough stars, weekly downloads, and the maintainers are consistently responding to issues and discussions. Same for communities, you as community founders and coordinators want to establish your commitment by keeping a regular schedule according to your community guideline. You can structure your schedule with breaks upfront, but try not to cancel events.

What if there’s no speakers for a meet-up? Be creative. There’re many ways you can make it happen:

  • Turn it into a live coding session where developers work on a piece of code together and share knowledge.
  • Turn it into a storytelling session where developers share painful or funny stories with the tech.
  • Turn it into a tech cinema session where you watch a course or online talk together.
  • You can jump in and give a talk.

Be creative. Have fun with it. Show your commitment.

Create A Wow Moment

It’s nice to surprise your community with something cool once in a while. It helps rejuvenate developers’ interest in the community and make them feel that they’re part of something cool and eventful.

In the Rust Guild, we invite guest speakers. So far, we were very honored to have:

to talk to us about their innovations and experiences working with Rust.

Guest speakers at the Rust Guild

The wow moments we designed were very well aligned with our core values. The guest speakers shared the learnings from what they’ve built. The community members got a chance to immerse themselves in the learning experiences from different fields and applications of the Rust programming language. I want to use these special moments to spark the interests in learning and experimenting.

Regardless of the outcome of the learning, we had fun playing, learning, sharing, and repeating the process as a group.

References


Here you have it! Thanks for reading through🙌 If you find this article useful, please share it to help more people in their engineering journey.

🐦 Feel free to connect with me on twitter!

Ready for the next article? 👉 WASM Semantic Search in Rust

Happy coding!

Daw-Chih Liou
Daw-Chih Liou

Daw-Chih is a software engineer, UX advocate, and creator who is dedicated to Web engineering. His background in Human Centered Computing has led him to work with startups and public companies across North America, Asia, and Europe. He is passionate about meeting business trajectory with user journey and utilizing engineering architecture and performance monitoring to provide optimal user experience.