
How to choose the best stack and build a team for an Embedded product: the experience of PocketBook’s head of software development
Choosing a project architecture and development stack is one of the most challenging tasks for an IT specialist and manager. You need to take into account the field/domain, budget, scaling capabilities, and much more. This will not be taught at the intensive development course, and errors cost hundreds of thousands of dollars…
That is why we are launching a new section of the blog where we are going to share the experience of heads of technical departments and CTOs of IT companies. We will tell you about their expertise, what the technology stack is from the standpoint of the company’s operations, share tips on how to build processes in the team and hiring, and introduce you to various products. And we are ready to share our first interview!
What kind of company is it? PocketBook is an international e-book company with Ukrainian roots. It is one of the top three manufacturers of e-books and related infrastructure (ranging from an online store to additional accessories). Millions of devices have already been sold worldwide.
Who is being interviewed? Andrii Kaliaka, the head of the software development department, has been assisting in the creation and development of PocketBook products for over 11 years. Prior to working for this company, he had worked in telecommunications, billing, and network technologies. At PocketBook, he has worked his way up from PM to head of the software development department and taken an active part in making architectural decisions.
How did you choose the current stack for your product?
I started to be involved in the selection of architecture and development stacks for our projects many years ago. Of course, a lot has changed during this time, both in the technologies used and in the processes. For example, we have now achieved global SDLC standards and are implementing modern development principles (we use CI tools). We are currently as close to the ideal state of processes on a real product as we can get.
But earlier, we devoted a lot of time and discussions in the team to coming up with a unified solution. We took into account the specifics of working with our equipment (e-books), as well as the need to ensure cross-platform operation and add competitive advantages to our products.
The current technical stack of our project looks like this: C++, Qt, QML. Of course, candidates applying for vacancies must also understand related technologies, such as databases, and have experience working with cryptography, networks, and multithreading.
What influenced the choice of technologies in your project? What did you pay special attention to?
When selecting a system stack, we focused on optimizing the code for a mobile platform. In general, three principles were critical for us:
- performance,
- energy efficiency (PocketBook has the best e-book performance in terms of energy efficiency and battery life on a single charge in the field),
- cross-platform.
How did we manage to do this? We avoided unnecessary add-ons to the Linux kernel on reading devices. Without being too modest, I will say that our development can be called a separate Linux-based PocketBook operating system, whereas competitors typically choose Android-based solutions.
The only disadvantage is that relatively new Android-based e-readers may attract users due to the ease with which third-party software can be downloaded to their devices. However, such solutions will greatly increase the cost of products because of the need to use more powerful hardware specifications, and they also reduce autonomy.
What technologies do you plan to implement?
We are constantly researching new markets and niches for the use of E-Ink screens (e-paper). We have vast experience in this field, and we intend to expand our product range beyond e-books.
Currently, I can disclose that we are planning to add eNotes devices with large E-Ink screens that utilize Android OS to our product line. We are also currently exploring new areas where E-Ink screens will be appropriate and convenient.
What is the current composition and structure of your team?
My department has 30 employees, with 70-80% of them being senior embedded and application programmers, as well as a few middle developers who have advanced professionally within our organization. For now, we have suspended hiring juniors, as we are focused on the fastest possible development solutions. We also have ID, UI/UX designers, hardware developers, technical writers, DevOps, and QA engineers on our team.
How is the recruitment process organized for your team?
With candidates, we go through the following standard stages:
- Intro call (up to 30 minutes) — during it, I talk about current and new projects, as well as about our technology stack. This usually covers 99% of the developers’ main questions. During this call, I “sell” the opportunity to work on a well-known product as a part of a long-term project.
- Test task (up to 5 hours) helps you check how professional and effective the candidate’s code is according to certain criteria. We pay attention to the quality of the code and the use of modern approaches. We invite each candidate to the next stage, which is a technical interview, to discuss technical issues using the components of the completed test task. There were literally only a few cases when candidates were denied further communication due to the code’s quality.
- Technical interview — we get to know the candidate better, go over the test task results, and assess C++ knowledge with practical examples.
- Offer.
What do you pay attention to the most: soft skills or hard skills?
There is no correct answer here. I pay equal attention to both. We have high requirements for the knowledge and seniority of candidates, so we carefully review each candidate’s hard skills.
As for soft skills, I focus on the results of recruiter screening, pay attention to how a person communicates about technical issues during an interview, and how capable they are of working in a team. If it is appropriate, I can also ask them about their hobbies and leisure activities.
Why do IT professionals want to work with you and stay with the company for years?
Candidates are drawn to the opportunity to work on a single product for an extended period of time, allowing them to see the results of their efforts and receive positive user feedback. It’s not a conveyor belt approach where you have to hand over a project and forget about it after its release. I’ve heard time and time again that IT specialists are impressed by the fact that the results of their efforts can be seen in stores around the world and that they can hear feedback from real users. Being part of an international company is also an added value.
Almost everyone on the team has been working for this company for a long time, so they get attached to the project and sincerely love their product. We pay great attention to a friendly atmosphere and mutual assistance. If someone heroically spends hours and hours overcoming a problem that another team member has already faced, it is irrational. My role as a manager is to foster an environment in which people are open and not afraid to share their achievements or difficulties. For example, we discuss what problems we have encountered and how they have been solved at our daily status meetings. I am confident that openness improves team effectiveness.
We also had team building and corporate events and spent holidays together prior to the full-scale war in Ukraine. Unfortunately, such activities have been suspended. But what cannot be “put on hold” is the amount of communication, help, and mutual support that defines the team’s atmosphere.
RAPID FIRE QUESTIONS
What is a clear red flag for you in a specialist’s resume/answers?
There are no specific red flags. First and foremost, I always pay attention to compliance with the vacancy requirements, experience, and field/domain in which the candidate has worked.
What is the minimum number of resumes required to fill a technical position on your team?
As a team, we try to adhere to the rule of “three resumes”. We try to communicate with at least several candidates in order to compare them more objectively and make a decision. However, a recent case with ITExpert was an exception, as the first candidate for the position received and accepted the offer; it was a direct hit.
If you weren’t involved in development, what would you like to do?
To be honest, I haven’t even thought about it. While other kids my age dreamed of becoming astronauts, even in my childhood I was already drawn to technology and creating new things. That’s why I’m exactly where I’d like to be.
How useful was this post?
Click on a star to rate it!
Average rating 5 / 5. Vote count: 1
No votes so far! Be the first to rate this post.




