A biased and subjective look at the resume of the developer
Hello! Recently, my colleagues from hh.ru held a webinar , where they reviewed the developer’s resume. I decided to share my point of view on this matter.
In this article, we’ll talk about how developers create resumes. I will talk about how I, as an interviewer, was motivated and inspired before meeting with the candidate, and vice versa. Of course, bias at the beginning of the interview is bad, but we are all people, and we can not completely ignore the input conditions.
Disclaimer : everything that I will describe in this article is subjective and based on the experience and emotions that I experience when I read a resume, an interview with developers etc.
If you don’t want to read a true story, but want to immediately tl; dr (as a “Total”) or how-to (as a guide), you can scroll down to the last two blocks.
Offtop: why should I spend time on this article?
Once upon a time, while still a student, I was sitting in front of a computer and trying to stick into this same thing "you need to create a resume to tell how good and wonderful I am and why I need to be taken without experience." Armed with Google and was looking for materials in the format "how to create a resume that the employer will fall in love with." It turned out something like the following: “A stress-resistant candidate will meet an attractive employer. I want experience and a piece of bread, I can write in C # in an effort, even such a thing struck up at the university!”
Why then I pointed out Perl - I don’t know, don’t ask. I wrote on it 2 lines for a laboratory in a university and never opened it again.
Then it was like this: I went to an interview in Yandex for the position of front-end developer in the translation team. There I beautifully failed. I didn’t know anything at all. Of course, I knew how to make a couple of blocks and a little code on JS. But in the theoretical part, I was somewhere in the -1 area.
From that interview I made 3 thoughts:
- I want to be a front-end because they are cool and DRAW THE SITES . Well, I was 19 years old, so such judgments are excusable.
- I want to work in Yandex. There are very smart guys who are very cool. Later, I still went to Yandex and even received an offer, but stayed in hh.ru.
- I failed the question about highlighting text in textarea . A few months later, this question began to torment me again, and I wrote my first full-fledged article about JS on this subject.
Next was the School of Programmers hh.ru, where they made of me a
It was lyrics. Next on the topic
During my time at hh.ru, I participated in a huge number of interviews. First, as an apprentice, and then as the presenter of this holiday of life. It always seemed to me that you need to interview in a completely different way, you need better. And at some point I began to devote a lot of time to the candidate’s resume.
I made it a rule that at the time of the interview the resume should be read in full, and during the interview it can only be used as a set of bookmarks and cheat sheets for talking.
Often the resume surprised me. After reading them, I had the feeling that this person would definitely suit us. They were not necessarily of the level of "worked at Netflix for 100 years, but decided to return to Russia." There was something else that “hooked”.So I realized that a resume has several tasks:
- Successfully pass air defense as an HR manager
- “Hook” the interviewer so that the interview does not slip into the standard discussion of 1000 and 1 questions necessary for the interview
However, the interviewer will not always read your resume before the interview. I even conducted a small “experiment”: I went to N companies for interviews in 2018-2019. The interviews themselves could conditionally be divided into two types:
- The interviewer is just doing his job, you really don't care about him. Everything is clear here.
- The interviewer is looking for a colleague. Here the dialogue begins, technical issues are discussed, and you leave with the feeling that everything was perfect. There were many offers, but I like working in hh.
Based on the experience of my interviews and the large number of reviewed resumes, I want to build a further story.
And to be honest: somewhere at the end of 2019 I ditched 4 days off to suffer my resume .
Successfully pass the immune system in the form of HR
In my opinion, the basic tools of an HR manager include:
- Agreements with the technical department what to look for. Often you can find it in the company's wiki or just ask HR about it. For example: “if in the candidate’s experience the layout of promos is not our profile” or “if he worked on mail services, we need this, we’ll call you.”
- Personal experience . A set of personal heuristics based on previous experience: "the guys from this company are strong, other developers speak well of them," or "the candidate changes jobs every six months, you should read his resume carefully and preferably between the lines."
- Keywords : React, Redux, Spring, Java, 15 years of experience, Node.js
- Achievements . "I ate the pie and did not get fat", "My feature gained + 100% to users"
Hook the interviewer
Resume is a short essay on the topic "why am I good." The purpose of the developers is to talk about those things that can hook.
- Did a cool project or was responsible for the whole layer? Write about it.
- Engaged in the study of tasks with business customers? A couple of words about this will make it clear to the interviewer that you are working not only at the level of "task has come, task has left"
- Is there something near-work? Ok, scribble a couple of lines. There's no such thing? Yes, no problem, life-work balance is also ok.
In addition to “why am I good,” a resume is also a set of topics for communication:
- Engaged in project architecture? Great, we can holvarit!
- Engaged in performance? Cool, the interviewer will see that the candidate in this cuts. This is also an excuse to start not with the standard “images need to be compressed, but js is heavier than img”, but with some practical examples from experience.
Experience. We are preparing an example
The "work worked at work" level resume is extremely disappointing. There is no person here, there is simply a function. Let me give you an example:
Компания: "Соло на трекпаде", Frontend-разработчик, Июль 2018 — по наст. бремя. Участие в разработке продукта
Nothing is clear. There is a portal. Is he internal? External? What about the site? Application? Chat? What is the role of the candidate in this? Perhaps there was something that the project liked? And vice versa? A Billion Questions!
It’s worth a little bit of puttying, and this example becomes more useful:
Компания: "Соло на трекпаде", Frontend-разработчик, Июль 2018 — по наст. бремя. Участие в разработке продукта для общения с клиентами через чаты техподдержки. - Интеграция с телеграм, WhatsApp и вайбер - Аналитика данных - АБ
For me, as an interviewer, it becomes clear what the developer has set aside for himself. An excellent occasion to talk about how AB tests were performed and metrics were collected. You need to understand how much a developer is a developer, and how much we are on the same wavelength.
To achieve the best effect, the candidate can place emphasis on what drove him:
Компания: "Соло на трекпаде", Frontend-разработчик, Июль 2018 — по наст. бремя. Участие в разработке продукта для общения с клиентами через чаты техподдержки. - Интеграция с телеграм — написали свой клиент через SDK. Это позволило увеличить конверсию пользователей на 100 человек в день - Аналитика данных, АБ — организовал инфраструктуру для связи "Компоненты - эксперименты"
It seems that the same thing is described as in the previous example, but:
- The interviewer already sees that the candidate is not an uncle from the street, but deals with issues of improvement and optimization. To test my hypothesis, I start talking about the very infrastructure. It turns out that information about which experiment the component depends on is in a static field. The babel plug-in takes out such fields and forms a JSON page ⇒ experiments.
- Mention of achievements, even local ones, means that the developer "cares." It doesn’t care what business is doing there. Not all the same on the feedback service. 100 points to the Gryffindor.
A logical question arises: And if so?
Компания: "Соло на трекпаде", Frontend-разработчик, Июль 2018 — по наст. бремя. Участие в разработке продукта для общения с клиентами через чаты техподдержки. Используемый стек: React, Redux, Кин-дза-дза, Node.js, FusRoDuh v3.
This will not give you an edge. Mention the stack well. But turning all experience into a stack “I'm an encoder, encoder on the stack” does not mean that the developer can solve problems.
You can choose some middle path:
Компания: "Соло на трекпаде", Frontend-разработчик, Июль 2018 — по наст. бремя. Участие в разработке продукта для общения с клиентами через чаты техподдержки. - Интеграция с телеграм — написали свой клиент через Node.js SDK. Это позволило увеличить конверсию пользователей на 100 человек в день - Аналитика данных, АБ — организовал инфраструктуру для связи "React компоненты - эксперименты" - Организация бизнес слоя на Redux + Saga, иницировал переход с thunk на Saga
Here, we added a little context to each item: here I touched the node, here the reaction, and also completely engaged in a technical issue! Drag and drop tanks on the saga.
As a result: We increased our text by 3 points, but on the one hand made it suitable for the HR manager, who will see the person and consider the keywords. And on the other hand, it’s good for the developer - the interviewee will understand what is interesting to the developer (well, or what he was forced to do).
Guide to filling out a resume
Let's start with the difficult: how much to write? When I want to write a short article “literally in 3 paragraphs”, this comes out. With a resume as well. At some point, my resume occupied 4 pages of A4.
Ideal if you can cram your resume into one page. What can I write there?
Who is this . First name, last name, position, contact. Photos and other gadgets - optional. Here, as with a car - the body kit will not be superfluous, but it goes without it.
Not very good:
Аноним Анонимов email@example.com
Мария Игнатова, Frontend-разработчик Telegram: @definiteTelegramAccount email: definiteEmailfirstname.lastname@example.org
Мария Игнатова, Frontend-разработчик Telegram: @definiteTelegramAccount email: definiteEmailemail@example.com GitHub, LinkedIn links, etc.
What is famous for/tl; dr/ebout . Often in "about yourself" they either write nothing or write about stress resistance. And I would recommend putting the pulp there: "Lead developer, led a team of 6 people in dungeon. He was responsible for the direction of chat bots. Author of articles on Habré." You can stick "wishes" here. For example: "I want to work in the gambling business, the enterprise is tired, galleys of van lavas." In this case, the ebout can be divided into two parts. The pulp above, wishes below.
You can better:
Frontend engineer. Нравится BDD, прорабатывать архитектуру, заниматься глобальными вопросами в проекте. Хочется совмещать решение сложных технических задач и продуктовую разработку. В продуктовой разработке люблю заниматься вопросами метрик, организации процессов.
Frontend engineer. Автор технических статей. Спикер на РИТ++, FrontendConf. Сосредоточен на решении продуктовых задач.
And the third option:
Frontend engineer Есть опыт разработки продуктов с нуля и развития комплексных проектов. Хотелось бы попробовать себя не только во фронтенде, но и в форточку выкидывать свои навыки не хочу. Не заинтересован в игорном бизнесе.
Work experience . This was already mentioned above (just before this main one), so go ahead
About work . Articles, speeches, open source, pet projects, volunteering, my mom is great - you should not forget about this. Near-work significantly affects decision making. Once I interviewed a developer who wrote that he made promises whose callback is performed in a separate worker. This gave occasion to talk about how it works. This developer has been successfully working with us for several years. As the saying goes, "everything you say can be used against you." Every detail is important. If you have a feeling that you don’t want to talk about it or have nothing, then the block is skipped and no one will suspect anything.
Gives more context:
Автор небольших опенсорс-проектов, которые выделили во время работы над рабочими задачами: например https://github.com/hhru/babel-plugin-react-displayname Спикер на конференциях. Например РИТ++ (ссылка на доклад)
Прохожу курсы на egghead, coursera, Нравится посещать конференции, делаться знаниями Провожу митапы внутри компании.
Keyskills . We will not complicate the task for the Circassians. It’s better to highlight a block that can be formed either simply as a stream of consciousness, or it is with a time frame:
Stream of consciousness:
TypeScript, React, Redux, Svelte, Babel, Node.js, Koa, Express, JS, CSS, HTML
Flow of consciousness with time frames:
React, Redux, TS — 3+ года JS, CSS, HTML — 6+ лет Node.js — 1 год
I prefer the first option. It is more compact and does not become clogged with unnecessary information.
General ruler . I like this:
Yes, I shamelessly tore off my own resume, but why should I advertise what I don't like?
However, you can not bother, and use a ready-made service that will help you to create a resume, and in the best case, find a job. At different times, I filled out a resume on these services (ln doesn’t count, it’s a social network):
- https://www.jobhero.com/ - a lot of different templates, nice interface, here I took inspiration for my resume, the owners banned Russian IP.
- https://hh.ru/ - well, you understand
- https://headz.io/ - something like the Russian analogue of hired/honeypot with its own vision of the issue. Convenient: filling out a resume is quick, easy and without SMS. Inconvenient: keyskills and "what companies you want to work for" are a little boring
- https://www.honeypot.io/ - they want to phone very insistently, because on the basis of your resume they will select you a job. The rest are bunnies
- https://hired.com/ - Everything is OK, but I couldn’t send the resume to the review
- https://indeed.com/ - I was very pleased with the convenient interface for filling out a resume
(the list is compiled in a random order and does not make sense. I haven’t touched a profile on a hab-career since 2018, I can’t judge)
Next come the dry tips without cunning fun.
Things we need in the resume:
- Contacts .
- What are you like, what do you like about development : achievements on the project, even if it will be quite local, it’s possible that our heart warms. Usually included in work experience
- Project context - what you did, ideally, if there are strong points. Reference points of the form: "made a feature calendar; improved performance", etc. Such things perform 2 tasks: they are shown by a specialist and allow you to set the tone for a future interview (but it depends on the interviewer's experience). Also included in the experience
- keywords - although I don’t like it, they pay attention to those “key skills”. There are only two ways to insert them. The first is native during the story about the context of the project/achievement. The second is a separate item, Key Skills. Thus, we simplify the screening time of our resume and increase the chances of not being delayed on the principle of “well, we are looking for Angular here, but the candidate did not mention it”
Things that are included as desired:
- About me . Do you like to hold mitaps? To participate in them? Wrote an article on Habré? Do you work with pet projects? Do you commit to open source? None of the above, but there was something interesting at work that can be transferred from the project description to the block about yourself? Not again? You can omit it, it will not be negative.
- Wishes . Had an unpleasant experience with the team? Are there certain beliefs? This can be indicated at the end of the resume.
And in conclusion, it’s worth saying - treat the resume not as official paper, but as your " elevator pitch "..