Want to attract the best engineers? Open code

  • Transfer
“Smart developers love working with smart code. Opening quality sources, you attract talents "

Illustration by Kevin Ma

“Do you know about open source Facebook projects?”

Such a question was asked to engineers by James Pierce, the former director of the open source program for Facebook. He studied the reasons why they came to the company. According to his presentation at O'Reilly's Open Source Convention, two-thirds of Facebook engineers knew about this program before joining the company, and half said that it "had a positive effect on their decision to work on Facebook."

Facebook is not alone here. Regardless of the size of the company, open source is one of the best ways to attract the best engineers. We analyzed 30 leading American technology startups (by the number of applications for vacancies) for AngelList in the entire history and found that more than half of them place open source projects:

Properly apply open source to attract engineers - the whole art. It is not enough just to publish the repository on GitHub - and hope for the best. To benefit recruiting, you need to approach each open source project from the perspective of a marketer.

1. Write a readable code.

The point of opening the code is for the developers to study it and, possibly, contribute. To do this, the code should be written as clearly as possible. It means:

  • Возможность максимально простого рефакторинга
  • Следование соглашениям о стилях для имён, отступов и проч.
  • Замена приватной информации переменными среды
  • Комментирование отдельных фрагментов

The react-beautiful-dnd tool for creating drag-and-drop interfaces (Trello-style) on React is a good example of well-written, open source software.

The project structure is modular, the code is clear and commented out carefully:

When opening source, go to each file as if the reader did not see the rest of the code base at all - as almost certainly it will be. The example above shows a simple export, but each function is explained in the comments, the code has a consistent style and talking property names that accurately reflect their values.

As a result, the repository has more than 10,000 stars on GitHub and commits from dozens of participants. The conclusion is simple: the easier it is for third-party developers to understand your code, the easier it is for them to contribute.

2. Write effective documentation.

Documentation is your advertising booklet. At first glance, she must convince the engineers that your project is worth participation. For this you need:

  • Formulate project value
  • Explain all aspects and processes so that the contributors do not have any more questions.
  • List technical specifications, dependencies, and licenses.
  • Provide easy access to reference material for special occasions.

The Annoy project (Approximate Nearest Neighbors Oh Yeah) from Spotify, a library that “searches in space for points close to a given query point” is an example of very good documentation. The README file tells you how to install the library, the environment, contains code examples, lists the dependencies, and is deeply immersed in the software logic.

It also compares the speed of Annoy with other nearest-neighbor libraries:

Just one documentation page gives developers all the information they need to decide whether to participate in this project.

3. Promote the repository as a product.

In 2018, over 82,000 repositories were published daily on GitHub. To distinguish your project from millions of others requires effort and strategy. This is not so different from the launch of this product. Consider the following opportunities to promote a new repository:

  • Popular sites: Hacker News, Reddit, Tech Ladder
  • Related communities: Product Hunt, Gitter, Dev.to
  • Channels where you already have an audience: mailing, social networks and more

You can be creative and apply other marketing tactics. For example, the Hack4Impact team (a non-profit organization that creates software for other non-profit organizations), conducted training workshops at local universities, for which students had to use their new library. So forks and stars quickly appeared at the repository.

If a company is interested in narrow specialization developers, then promotion is even more important. At the startup Wallaroo Labswhich helps customers deploy large-scale data applications, a code base in a rather strange language called Pony. When the company over the past two years, opened the entire code, then actively promoted the repository, wrote articles in blogs, gave interviews and spoke at conferences on how to build the entire code base on Pony.

Wallaroo development director Sean Allen said the campaign was effective: “Many of those who interviewed us are people who want to work for Pony and [are interested] because our codebase is Pony’s largest code base in the open access.

Present your repository with a product, and engineers with a target audience.

Why are the best engineers advocating open source

“It’s just necessary to open the source if you want to hire the best people in the industry,” says Daniel Dubrovkin, Technical Director of Artsy . He explains that “personal technical brands have become very, very important for individual developers. Engineers today increasingly want to openly demonstrate their skills, rather than hiding them. They want to work with open source software because it gives them a certain reputation. ”

To do this, Dubrovkin decided that his development teams would work with open source by default, and in order to reject such a standard approach, the engineer should clearly explain the business reason why the code could not be published in the public domain. As a result, now most Artsy materials are freely available (even materials on hiring). “The best companies change their business requirements according to the desires of individual developers who want to build their personal brand,” he said.

Dubrovkin’s recruiting department now takes advantage of the fact that Artsy’s engineers are required to publicly share the code with their name, and this advantage is valid not only for his company.

“Smart people love to communicate with other smart people,” wrote Tom Preston-Werner, co-founder of GitHub. - Smart developers love working with smart code. Opening quality sources, you attract talents. "

Also popular now: