Hello everyone! We are starting a series of posts about individual approaches to communicating with candidates. In them we will show you how to use candyjar and github to find out more about developers, such as their hobbies, what they are developing, and what they are interested in. And most importantly; how to use this information later to build communication with the candidate.
Today we will try to analyze the C# developer. We need to find a candidate who has:
- Experience with ASP.NET (MVC/WebAPI/Core)
- Experience with Entity Framework
- The ability to write unit tests (nUnit)
- An understanding of OOP concepts and design patterns
- The ability to work with TPL (task, async, await,)
- The Ability to work with version control systems (git)
- Experience in opensource projects (advantage)
You can read about how to use candyjar to find relevant candidates here. For now we will focus on analyzing a specific candidate.
So, here is Roman — the C# developer. Main tags: c# / .net / asp.net / express.js. Let’s try to analyze him.
Firstly, let’s see what companies he’s worked for (this data was taken from linkedin). He graduated from the university in 200l and took a job at Developer Express. The company specializes in creating cross platform products based on ASP.NET / WinForms / WPF. Roman is apparently actively involved in the development of a business data analysis platform (BI solution) based on .NET and ASP.NET.
2. Stack of Technologies
Now let’s see what frameworks and libraries he used in his projects. He did three projects on the base ASP.NET; this is a framework for developing web applications. For our vacancy, we require knowledge of this framework. He also used FakeItEasy in his projects (a library for creating mock objects during testing), MongoDB (a library for working with the database), Dapper, and Json.Net.
3. Projects on Github
Here is a list of some of his projects on github for 2019. Most of them are written in C#, but some are in Typescript and Go.
Let’s take a closer look at one of his projects and try to understand what they are about. We’ll look at the “Budget” project. The project is small (136 commits). Roman worked on this project alone from late April to mid June. The project uses two main languages: C# and Typescript. The project’s technologies include Asp.Net / ExpressJS / MongoDB.
Here is how the same project looks on github. Usually, developers create a so-called Readme file with a description of the project for each project. The file describes what the project is about, as well as how it can be connected and used. From this file, we can already roughly understand what the developer is doing and what projects he is interested in.
But there is no such file in our ‘Budget’ project. Therefore, if we want to get more information about the project itself we will have to dig a little into the program code of the project. Many recruiters are immediately terrified by the phrase “dig into the software code”. Don’t be scared now. We won’t go deep into the code. If nothing is clear, it is also not that terrible. Gradually, using various examples, we will be enlightened and learn a few new things for ourselves.
So, if we go inside the ‘web’ folder, we will see two folders: “client” and “server”. This means that it is most likely a client-server application. If we open “server”, we will see that the server part of the project is written in nodeJS using the ExpressJS framework (a framework for web application development).
Further studying the project reveals files such as “Currency”. Three currencies are defined inside this file: the ruble, the dollar, and the Euro. Inside the “expenses” file are parameters such as the description of the expense, date of the expense, type of currency, and the amount of money spent. The “income” (receipts) file contains parameters such as receipt dates and receipt amount. Based on this data, we can assume that this project is a client server application for budgeting.
In the same way, we can view his other projects. Therefore we can understand what they are about, who he worked with in these projects, and what technologies are used there. Generally, even the information already found helps us form an individual letter for Roman.
The email might look like this:
Roman, good afternoon!
My name is Daria, I’m from “company x” — I help find strong developers for our team. I found some of your projects on github and decided to write you 🙂
I was looking at a few of your opensource projects on github. Unfortunately, projects do not have a Readme file with a description. But I saw that most of them are written in C# using ASP.Net . For example, a small project Budget — I understand this is a client-server application for forming a budget. I also saw on your LinkedIn profile that you have a lot of experience developing on the base of .Net / ASP.Net and WinForms. That’s why I decided to write to you.
I know that you are currently working in the DevExpress team, but I’d still like to meet you. We are currently starting several projects on the .Net platform and your experience would be very valuable to us. If you have the opportunity, I would be happy to call you on Skype for 10–15 minutes 🙂
There are only three paragraphs in this letter, and not a single word about the job itself. This is because our main task is to get to know the candidate. We want to show that we wrote him for a reason. At first we studied him, and his experience seemed interesting and valuable to us. That’s why we want to talk to him.