written on 01/10/2021
Recently at work, a tool was discussed that would rate the GitHub profiles of employees and applicants. The tool is probably not ethical to use - that was concluded but a discussion happened around another perspective: Will a good GitHub profile make you a better developer? Let us have a look at this problem and see how you can apply some simple things to pimp your GitHub profile and make yourself more valuable.
GitHub is a platform to host code. But for many people, it is becoming social media. Discover new trends, follow new people, and watch other projects. See what other people are working on, how often they commit code, and many more things.
GitHub's main use case is to store code. But all the other factors play a lot bigger role these days. You can kind of compare it to your CV. A nicely designed CV will convince more hiring managers to hire you. Having your CV with multiple pages or unnecessary content will probably contribute to a rejection of a job. A CV should be short and convince the hiring manager that you can add value to the business than the salary they would pay you. That is the main incentive for a company to hire you.
The job market is getting more competitive every year though. More and more university students want to get a job in the computer science field, but also with the rise of Bootcamp graduates the market for entry-level jobs increases the pool of available talent. You can see that easily by inspecting the entry-level job descriptions, requiring multiple years of experience in technologies that will not be taught at universities. Hence, these Bootcamps were created to fulfill the market needs. To understand how this affects the market we have to look at the market needs though.
Currently, companies are looking for a wide range of Software Engineers. Mostly senior-level engineers. But why? The answer is quite simple: They do not want to train Software Developers and instead let them build their product that can be also maintained for a long time. If you leave fresh graduates to this, it might work, but most often wrong decisions will be made that will be learned from, but for many companies, this is bad, because it could mean that they would need to invest in long-term even more money. Short-term gains but long-term losses. For the junior-level developers, this is the perfect environment because they can learn from their mistakes. Startups like to have this risk more often, but also pay worse. But join a startup if you like this. The case that was described before will mostly apply to companies where engineering is not a first-class citizen. Simply not a tech company, where engineering is an expense rather than a business opportunity.
Larger companies, including FAANG (Facebook, Apple, Amazon, Netflix, Google) and similar, are more open to hiring junior-level engineers. Why? Simply because they have the resources by having more trained senior-level engineers that know how to teach other developers the "right" way of doing things. These companies bind employees with stock options to the company for a longer time, so the tenure is worth it and the employee can contribute more to the revenue than they are costing.
So as you can see, the market for junior-level developers looks quite bad right now. But there are some things you can act on: Your marketability. To understand what falls under this, let us look at the different companies and their needs again:
Startup small, < 15 people
- The employee can build software fast, build prototypes
- Employees are comfortable to touch different work areas like Sales, Marketing, Product and similar
- The employee should have good marketability skills to promote themself but also the product
Startup medium, >=15 people
- The employee can build software quite fast, build prototypes - but should be maintainable for longer than a year
- Employees are comfortable to touch some different work areas like Sales, Marketing, Product and similar
- Marketing skills get less important
- Tech is not so important, employee should be able to maintain current software
- The employee should be able to add features from time to time, no huge time pressure normally
- Other skills won't be required
Big Tech Company
- Tech is best paid and the powerhouse of the company, innovation is driven by tech
- The employee is challenged to contribute to the product as much as possible, innovating
- Product focus can be also completely technical, like compiler-focused. Just increasing performance and so on
- Other opportunities like Marketing can be taken but will be challenging
So the different companies have different requirements. How can someone junior convince these companies to hire them? Normally, the most important part of all companies is experience. Internships, real-life projects, and past full-time positions. During university or after your Bootcamp you can look for internships. The entry bar for these kinds of positions will be far lower than full-time junior positions, and most of the companies will transfer the internship into a full-time position after. But even then, you will probably compete with multiple hundred other applicants. So how to stand out? This brings us back to our original discussion: GitHub.
GitHub will be used to check your ability to code. But what do hiring managers check? Let us bring into the position of the hiring manager. They do not have a lot of time and they know how "good" software projects look like. Mostly, when you are new to a project you expect some guidance on what the software is doing and how to run it. you. Make sure the README includes examples, simple set up instructions, and more and more examples. Do not just focus on the text, but include rich media like images or videos into the README. Make sure you get the copy right and many more things. I will write a guide on how a good README looks like.
Otherwise, a big part of your GitHub profile is the profile page. You see different things like basic account information that you should fill out. Use a good picture where someone can see your face. This will make sure people interact with a real human. Furthermore, the profile page includes three more components: a custom profile README, which is optional but good to have. You can find some documentation here: GitHub Docs | Managing your profile README. Also, make sure in this README why a company should hire you! Make sure to explain how you can contribute value to their company and increase the revenue and profit of the company. Something along the line:
I am a Software Engineer with a focus on Frontend Technologies. In my projects, I used several growth hacks for the user experience to increase engagement and drive users to the project. I know basic SEO terms that can help you with the marketability of your product. Feel free to check out my projects below:
- Project Z (Java, …)
- …. I am currently seeking new opportunities. If you want to work with me, feel free to message me via email.
This copy will make sure that you spike interest in the hiring manager. It will drive them to the projects. With perfect README's you are doing good about that point.
Another thing recruiters or hiring managers might look at is the contribution graph. But honestly, it is not a good metric to look at. It is nice to have but should not have a direct impact on your employability.
Most software engineers look for growth. They want to become senior-level, earn more money, and have a more easy life. Or they want to grow to develop their solution. There are so many things. But what is important to understand is that most of these things can just be done within a team. Creating a startup is incredibly hard. You would have to focus on multiple fronts like Marketing, Sales, Product, and Engineering. The complexity is immense and working with other people is important. To get other people to work with you, you must know them. One opportunity would be GitHub. Be open to contributions and work with other people. For example, during Hacktoberfest, you could prepare your projects for contribution. I will write a detailed guide on that. But in short: Create a good README for contributors, that is targeted a bit differently, create easy-to-understand issues, and stay open for any request. During hacktoberfest just tag your repository and issues with the required issue and you will soon receive many contributions. Ask for feedback but also connect to the people. Ask for a follow on Twitter/GitHub/LinkedIn just to keep in touch. These opportunities will pay off at some point. And even if not, you are passively building an audience that will help you to find cool positions since you never know where the people will end up working at, maybe Google, Netflix, or a startup you like.
The network effect at GitHub is huge. So, use it. There are so many opportunities to connect with people as long as you are providing value somehow to each other.
There are many other platforms where you can connect to other professionals. Social networks are probably the biggest. Twitter, Facebook groups, or LinkedIn. Just sign up and see what fits you the best. There are also a lot of other communities like Discord servers, IRC channels, and similar communities that you can join for free. Try to provide value on these platforms and you will see your network growing slowly but surely and opportunities will arise out of this.
Even though the discussion in my company that I told in the beginning was pointed out a different issue, it shows that your personal brand as a software engineer is from enormous importance. Employers will actually care about your GitHub somehow and networking is more important than ever these days. So make your GitHub profile great 🎉
You might also like
Remote MDX with Next.js
Creating a Blog with Next.js, MDX, and Chakra UI should not be difficult. Follow this blog to build a simple project for a blog, a SaaS, or a simple web application.
2020 - A "start" into the decade
The year 2020 featured many bad things, but also some nice things. In this blog article, I reflect on my personal life, growing from a Software Engineer to Senior-Level at a big tech company and the investments into growing side projects.