Back in 2000, when hh.ru was very small and affectionately called the “National Job Club”, and only 3% of Russians got access to the Internet, we, of course, had no mobile development. Then smartphones, in their current form, were only a distant dream. Years passed, technology did not stand still, HeadHunter grew and developed. We have always sought to step in the forefront and use the latest methods and solutions in development processes.

Today hh.ru is not just a site with vacancies and resumes. We create and use top technologies, develop cool projects in the field of HR-tech and do our best to simplify the lives of millions of people. To do this, we just need high-tech mobile applications, and in hh there are four of them. Two on Android and two on iOS, separately for employers and job seekers. Mobile developers are the superheroes of our time and the cavalry of technology. This article will tell (and show) how hh Mobile team members live and work.
')

#work days
It is important for us to work high. Therefore, we use effective methods of development management, supply each employee with the latest equipment and create the most convenient workspace.
How we are working?
We are guided by the principles of Agile and Kanban: we do not have hard deadlines, and the development itself is presented as a continuous stream. This allowed us to significantly increase productivity: for example, when we used scrum, releases happened once a month, and with the transition to a new model - weekly. We pay a lot of attention to the automation of routine processes, we do not like extra body movements.
Each team spends 30% of the time on the “Technical Tax” - accelerating development processes, removing old code and introducing new technologies. Each employee has their own development plan, skill table and ongoing team support. Any of us can share our impressions, ideas and make comments. The development of new features is discussed already in the early stages, and the developers themselves decide what they will be. The feature’s life cycle includes five stages: idea, planning, development, demonstration and feedback. In the development process, we use Slack, as the main means of communication, Jira helps to control tasks, and for their clear display we have kanban-boards.

Every morning we hold stand-ups (read: planning meetings), where we analyze and discuss important topics. If necessary, you can make an appointment at any time to share ideas with the team, ask for help in solving problems, and get support. For the first couple of months, newcomers are assigned a sensei, which helps to get used to and understand the details of work processes.
What are we working on?
iOS: For the iOS platform, we have developed and are constantly improving two applications: for applicants and for employers, the common components are highlighted in frameworks. 75% of the code is written in Swift, 25% in Objective-C. Since 2016, new functionality has been written only in Swift language and VIPER architecture. In the service layer, we adhere to the SOA approach. We follow the principles of SOLID, we write unit tests. There is Code Style for both languages, we use static analyzers and linter in the work. Tests and checks are run for each request pool, the assembly and layout of applications is automated through the CI server + fastlane. In cooperation with QA, we write UI tests using XCUITest. We use code generation, templates for Xcode.
Android: Two applications have also been developed for this platform. Over the past two years, development has been done in the Kotlin language, in which over 70% of the code is written. The Android development team works with a state-of-the-art technology stack, which is regularly subjected to forced improvements. Now under the hood RxJava 2, Toothpick, Moxy, Cicerone. In application development, we always use a multi-module architecture. The modules are implemented according to the principles of Clean Architecture and SOLID. We are for convenience, therefore, we try to automate processes as much as possible, write and use templates, plug-ins for code generation and apply in our work. Almost all the main scripts are covered by UI tests. When writing them, we use the high-level frameworks Kakao, Kaspresso and DSL for fixtures (more details
here ). Tests are run using Marathon on emulators in a Kubernetes cluster. A unique style guide has been developed for applications.
Testing: Each team is cross-functional, and works on the project from idea to launch. Our testers work within teams and participate in the work on features from the very beginning of their development until the release of production. So far, alas, not the entire testing process has been automated, but we are striving for this: plans for the near future include full coverage with autotests.
While working on features or bug fixes, we use exploratory testing, as well as the amount of regression that the tester determines. Depending on the task, specialists choose the methods and tools necessary for testing. It is also convenient to take statistics and analyze incidents - testers get full access to applications and code bases on the test bench.
Where do we work?
The hh.ru office is located in Moscow, between the metro stations Alekseevskaya and VDNH. Many in childhood dreamed of getting into outer space, and dreams partially fulfilled - in our office there are 5 floors of zoned open space. The mobile development team is part of the Technical Department, which occupies an entire floor.
Development is divided into 23 teams, and 4 of them deal only with mobile applications. There are 25 fighters in hh Mobile today, and by the end of the year we plan to expand the staff to around 35. Each team has an internal customer - Product Owner, whose task is to ensure that no one gets bored without a project. At the same time, we are ready to implement any idea of our employees if it turns out to be interesting.
We do not recognize any barriers: teams sit together - it is more convenient to work and discuss emerging issues.

Large open space is divided into command zones by shelving and shelves with books and plants. If you wish, you can hide behind a palm tree.

We try to always be on the same wavelength. In our bungalow there is a board for everyone.

On each floor there is a quiet harbor with fresh fruits, vegetables, cookies, tea and coffee - a kitchen. There you can sin with a coffee machine, pick up food as you like, and make yourself freshly squeezed juice. While you gnaw at a cookie or destroy a banana, you can chat with colleagues - we like to talk.

Lampovo!

Ecology is important. We are for the environment, therefore we support and promote useful initiatives: we collect “Good caps” (from bottles), “Good things”, waste paper, electrical appliances, batteries and plastic for recycling, and we also use recycled paper cups.

There is a gym on the ground floor, because sport, as you know, is peace, and we are extremely peaceful guys. On the loading screen in DOOM it says: “Continuously move, hell devours idle ones”. We are moving here:

Work space
Growth is inevitable, more people = more opportunities, so we try to adjust the workspace for everyone, so that it would be pleasant for everyone. We conducted a survey and the results identified 2 groups - fans of open space and adherents of solitude. Based on the results, we repair all floors: on the one hand, we combine the spaces, on the other, we put booths for telephone conversations, meeting rooms with soft chairs for team meetings and for working on complex tasks that require maximum concentration in complete silence.
The workplaces of the mobile team are minimalistic, so everyone can arrange it to their taste - put up photos or stickers and drag a guitar and favorite toys from home. The area of the workspace allows you to fantasize and experiment with design. If the mess on the table is not a mess at all, this is an experiment. Each team member has:
- MacBook Pro, additional monitors, additional laptop charging

- stunning Herman Miller Aeron armchairs, obedient and sensitive to the bends of the seated (just like Dr. House!)

- Kinnarps and Soft effect transforming tables with adjustable height. With an easy movement, the office table turns into an elegant bar counter.

In order to control the effectiveness of applications on all possible mobile devices, we have created a fashionable treasure chest: the most popular iOS and Android devices are stored there, as well as a couple of outdated models. This is a very smart cabinet: every morning he charges all smartphones and tablets, and once a few days he arranges exterminatus with ultraviolet light, destroying microbes.
If you need to test an application or an individual feature, you can take the necessary wunderwaffle from the shelf, and then return it to its place.

How much do we work?
In hh.ru there is an 8-hour working day and a free hour that anyone can spend as he pleases. We are flexible, the main thing for us is the result. In order to keep up with trends and not lose in communication, you need to keep up with the morning stand-up and be in the office from 12:00 to 18:00. In different teams, stand-up starts at different times, on average from 10:30 to 12:30. In extreme cases, you can always work remotely over a VPN.

How do we relax?
Who knows how to relax well, that works perfectly. And we rest professionally: we hold corporate tournaments in table tennis, rowing, football, we are going to watch movies after work. We have our own speaker club where everyone can practice their oratory (and it’s not at all necessary to get a mouthful of stones), an amazing massage room, and yoga classes are held twice a week. We also organize cool events. Well there, some colleagues even fly on vacation together!
This is how we conquered Kazbek:



How do we learn?
We are in a constant search for new knowledge, share it with each other and arrange internal meetings where anyone can cover any topic related to work.
In any incomprehensible situation, we send our developers to conferences - listen, chat, share experiences. If you want to speak, we help with the preparation, runs and presentation.
And more! Every year we hold a School of Programmers - this is a six-month training in programming and related topics. Our top specialists give lectures there, as well as conduct workshops and training on speeches for school lecturers and speakers at conferences.
Part of the team, part of the ship
We are actively developing, new mobile teams are emerging in our country, and in connection with this we are constantly looking for new fighters!
View current vacancies
at the link .
We are pleased to cool specialists, really. Share info, recommend us and come yourself.