ABBYY programmers: 14 star grades

In the discussion that unfolded after the post "Get a Programmer at ABBYY.howto," I mentioned that we always need star developers, i.e. high-ranking programmers in our intra-ABBYY-ev classification. To this, interested interlocutors demanded clarification.
It is extremely inconvenient to describe the organization of work of our development department in the comments, this requires a detailed post format. I offer to your court a summary of the topic - read, ask questions. If you missed something, I will describe it in the comments. Only confidential information, do not blame me, I won’t open :)
The ranking system is not a unique invention of ABBYY. In China, this system is many hundreds of years old; in Russia, in the times of Peter the Great, a table with 14 ranks was introduced for the bureaucracy. And in IT companies, the ranking system is not a novelty, although not every one has it (see David Mercer's book “IBM, Management in the World’s Most Successful Corporation”, Moscow, Progress, 1991).
A single harmonious transparent and fair system is practically necessary for any company that intends to engage in the industrial development of software. That is, companies where the number of developers exceeds several dozen people (and in ABBYY there are several hundreds). This system combines the competence, abilities, responsibility of employees of a certain profession with their compensation, position in the company and other benefits.
There are 14 levels in the ranking system for employees of the ABBYY development department. (To be honest, we believe that anyone who came to us is already a star, there are simply stars of a larger caliber \ rank :)). His salary, access to corporate social benefits, an affordable level of managerial responsibility, and a place in the organizational structure depend on the rank of programmer, tester, linguist, and other developers. I warn you right away - I will not disclose salary levels for different ranks - this is confidential information. An employee can move up the ladder of ranks thanks to the standard certification procedure.
Rank 1: Young programmers from college or with little work experience are not yet ready to immediately develop commercial projects. First you need to teach the “asterisk” the development methods and standards adopted by the company (in particular, to ensure maintainability of the code). Those. a young programmer, selected from hundreds of candidates, first enters the "study group", where he studies for about three months. After graduation, a qualification exam is conducted, including tests and assignments (write a code, etc.). Upon successful passing the exam, the developer is distributed in some team, enrolled in the state and gets 3 rank. Students of the ABBYY Department at the Physics Institutecan pass the qualification exam at any time during training, get the third rank and start working with full or incomplete loading in any of the project teams. Rank 3 in ABBYY is the grade of students. Third-party developers are given the simplest tasks, well, for example, write a test utility.
After some time at a certain rank, the developer accumulates enough examples of his own code or other materials (in the case of linguists, semantic descriptions). If this material is of really high quality and grace, or the level of tasks to be solved corresponds to a higher rank, then the developer, with the consent of his supervisor, can submit examples of his work for certificationto a higher rank. These examples are sent to experts 2 ranks higher for evaluation. Those. for example, if a programmer of the third rank wants to be certified for the fourth, then examples of his code are sent to experts of the fifth rank. If both experts agree that the candidate is worthy of promotion, then his “case” is submitted to the attestation commission. If the certification committee agrees, then the developer is congratulated on the increase in rank, while his salary is increased (the rank of developers is clearly linked to the salary grid). The certification system works right up to the highest ranks.
4 rank- This is also the rank of students, but tasks are given there a little more complicated. Often these are development tasks in commercial projects, and not just for internal systems. An example task is to write a dialog box for a boxed product with complex scenarios. Or an example of a task from the field of linguistics - to make an interface for editing phrases.
Rank 5 means that a person can already program independently without the constant supervision of a chef. And he can already set high-level tasks without describing, for example, the necessary classes, because it is expected that the five-ranking specialist himself can formulate them. An example of a task for the fifth rank in a linguistic project: write a module for automatically highlighting phrases according to the existing body. Examples of five-rank tasks in a projectFineReader: implement support for the new format , write a compressor for a complex graphic format, or write a new classifier. Sometimes at the fifth rank, employees are given managerial responsibility. Rank 6
Developersfaced with slightly more complex tasks. Almost always, six-ranked developers lead teams, i.e. engage in management in addition to working in their specialty. It should be noted that there is no specialization in ABBYY programming groups (one is an algorithmist, the other is an encoder, the third is a manager, etc.). The leader should be a universal - to be able to create algorithms and write code, i.e. a real Shvets, and a reaper, and a dude on a pipe. Such universalism gives him authority and competence to resolve possible professional disputes in the group and, as a result, allows him to productively develop the final product.
7th rank - these are real professionals, whose groups are able to solve complex high-level tasks, for example, supporting morphology in FineReader. Rank 8
Developers- these are masters of their craft, very high-class specialists and managers. They manage large groups or departments and solve problems of high complexity. An example of a task is the development of a “compact” recognizer for integration into mobile devices or MFPs.
Engineers of higher ranks (from ninth and higher) are capable of solving truly difficult tasks. Examples of such tasks: the development of high-quality recognition of documents in Chinese or the development of technology for recognizing flexible forms with the possibility of self-learning from samples . There are very few such specialists in ABBYY, but, as we suspect, they are, in principle, extremely few in the world. These people are real stars of large caliber.
The ranking system and certification process allowed ABBYY to build an effective team of many hundreds of developers who clearly release dozens of products per year. These products every day gain an increasing share in the world market due to their quality. The source of this quality is the talent of ABBYY developers and the correct, efficient organization of their work.
Nastasya Savina,
HR Director