Hi, Habr!
Integrator development is usually quite different from working in a startup or software development studio. From the pros, there are much more global tasks, hundreds of specialists are working on solving some of them at the same time, so there’s no boredom. And yet - the ability to quickly pump their own skills and grow within the team.
Of the minuses - such work is not always visible to the end user, well, because of some NDA the size of a toaster, not everything can be told.
When I wanted to tell you about an interesting project, but there again NDAMy name is Ivan, I am a technical manager (Java) at CROC. And today I will try to slightly open the veil of secrecy and talk about how we generally work with developers, about 350 people, as well as about current vacancies (Java, PHP and frontend). Details - under the cut.
I myself came to CROC by chance, came in 2012 to the second session of the Java course, which was conducted here. I immediately liked the course itself (utility and presentation of the material), and the company in principle. At that moment I was still in one scientific research institute (I worked there as a technician, received a diploma, became an engineer and worked 4 years in total), and I had an offer from another company. What put me in front of such a choice:
- to go to a certain company in C ++ as a regular because I knew C ++ well;
- go to CROC for Java, but to the position of the junior and study everything practically from scratch.
After a bit of torment and the course about which I spoke above, I went all-in - I chose KROK.
The very first project I had to work on was the automation of the document flow for one large state project (and - yes, a close acquaintance with the NDA). It was a bit striking - you come from a scientific research institute with a proud knowledge of address arithmetic and Hungarian notation, and then you immediately have Java, CamelCase, BPM, ECM and other pleasant names that, after the rusty world of C, seem like something magic.
We worked on the project for quite a long time, because the number of iterations was, frankly, not weak.
At first, I asked a lot of questions to my colleagues - how it is generally accepted to work in order to absorb not only the knowledge itself, but also the principles of working with the stack in KROK. Colleagues went to the meeting and helped with advice, giving me hours. I quickly absorb knowledge, so in a year I upgraded from Junior to regular, and a year later I got a new level up - to the lead developer. The company allowed to stay and architect, and lead, and technical presale. Now - technical manager.
In principle, the development tracks themselves look something like this - you can become a project manager, technical expert or technical manager. The role of the technical manager is to coordinate all the people and resources on a specific project. A kind of guru. This implies a high responsibility and competence: in which case, such a specialist should be able to replace with itself any member of the team.
I chose the third option, now I manage a development team of 7 people. After spending a few years here and comparing the career paths of other guys, I can say that this is no exception to the rule - to grow like this in a couple of years, but rather, a normal situation for KROK. Someone chooses horizontal movement between the teams - to change the back-end and front-end and vice versa - without problems.
There are people who are ready for 10 years to work on one large project (and there are plenty of such scalable projects), and to develop within it. There are those who prefer to grow on different projects, constantly expanding expertise. Both approaches are welcome.
What interesting things are we doing at CROC?
Recently there was a big project
“Electronic Justice” - it included work with the Moscow City Court and 35 Moscow district courts. The scale of the tasks is my respect. About 400 people worked simultaneously on the project.
A couple of years ago we started working on the automation of the SIBUR company’s document flow.
If someone wants to try himself in blockchain projects in real areas of the economy -
we also have such . For example, now I work in projects from a digital contract to the use of the blockchain in the social sphere. Everything under the NDA, of course, so I cannot give examples, unfortunately.
By the way, there was also an interesting thing with one interstate project. CROC has long developed and successfully applied its own framework for “rapid development” based on the description of the domain model. By the way, it is registered in the Russian software catalog and can be used for development including. and for government agencies. Within the framework of the project, a new version was created on its basis, which makes it possible to form applications in different states on the basis of a single information model. In this case, the basic version of the applications was created by code generation, and the rest of customization remained on the developers.
Another case - a project related to electronic signature. In a number of states, the GOSTs on the electronic signature have the same numbers, but at the same time, the implementations are so different that they de facto become incompatible. If in the Russian Federation the supplier of cryptography solutions is the CryptoPro company, in Belarus the supplier is different.
It was necessary to ensure that the document formed in one commission could be signed by an electronic signature adopted in his country, but in all other countries, when checking this document, its validity was determined in accordance with local decisions.
My workplace and colleagues
Instead of large familiar open-spaces for 100 people, we have offices for 5-10 people. Therefore, my workplace looks like this:

One of the main assistantsI will introduce you to colleagues. Here, for example, Marrying, technical manager (Java, frontend).


By the way, about the frontend. For large projects we use CROC WebClient. This is a framework that is used to create efficient and ergonomic interfaces for client applications that work on the principle of “thin” client in modern browsers. System functions allow you to support work on workstations and mobile devices, work in different resolutions of browsers and with a touch interface.
Word to wife:Having a framework greatly simplifies the work of the developer. Developed are usually divided into directions: Java, dotnet, front. But not all IT companies have such a division. Honestly, we, too, it did not appear immediately. For example, there are stereotypes, they say, if you know, then you know the web.
Nevertheless, not all developed love to do web. For managers, this is a problem. The web client solves it in part - it closes a bunch of routine tasks and makes life a little easier.
In most products we have our own design and its components, and people are needed for their support and refinement. Javista do not really want to develop in this, so people are needed here for a clean frontend. However, who is interested in being a full stack, this is welcome.
For example, we are now updating the user interface design to a single court system that was developed a long time ago on the previous version of our framework and has a long history. Over the years of use, she managed to become outdated and looks more like a warehouse accounting system than some kind of friendly system for a modern person.
We work on two-week sprints, the developers are physically located in 8 different regions of the Russian Federation. At the beginning of each sprint, the guys set common goals, throw in puzzles and distribute them among the developers, a separate day for assessment and planning. Then the composition of the sprint is adjusted if necessary. Every day for 15 minutes, small meetings on webex, at the end of the sprint - retrospectives. All the emerging organizational difficulties are discussed and treated in the next sprint, we are not saving anything. Why on webex - on Habré already somehow there was a post that we have a whole set of development offices in the country. For example, in this project I have involved as many as 7 offices - from Krasnodar to Irkutsk. By the way, the company has the opportunity once a year to move a couple of weeks to another office and work from there.
Once a month - a general demo, where the whole team can see what they have achieved and where to go further.
There is enough work on the frontend - you can come specifically to this project, but you can transfer to any other at any time. We have the same framework, so there are no difficulties with inter-project transitions.
This, by the way, is one of the differences in front-line work at CROC and in other companies - usually they try to use something ready as frameworks, but we are cutting our own. This has its own difficulties, especially at the initial stage, but there are still more advantages in the future.
But
Andrew , an expert in software development. The expert, as mentioned above is the title of the position, a couple of years ago he became the first in the department who decided to develop a career not in development management, but in building expertise in technology. When I first came to CROC, I was fortunate enough to work on the team of Andrei, who is mainly engaged in R'n'D projects and in which vacancies for novice developers appear infrequently. The more valuable is that one of his two mentor icons went to Andrei from me, and the recommendations I received in the process allowed me to develop dynamically as a developer in the future.

By the way, if you look closely, on the table, Andrei has a cap with the logo of the podcast
“Debriefing” , a well-known podcast for real IT people. The most attentive will notice that this is not a simple cap, but a rare one, and the logo on it is vintage. Andrei has been involved in the analysis since 2013, when he was first recorded on JavaOne in San Francisco.

Plus, Andrew is a regular participant and member of the program committee of all three leading Java conferences in the country:
Joker in St. Petersburg,
JPoint in Moscow and
JBreak in Novosibirsk, so he has several ducks in assistants at once. This year, he himself delivered a
report at the JPoint.

And of course, he is probably familiar to many javists as the leader of the Moscow java community of developers. Dozens of community members about once a month gather to meet with leading experts from the world of Java to listen to the reports and communicate in an informal setting. If you have not visited the Moscow JUG, come to one of the next meetings. Below is a link to a group with meeting announcements.
Photo from one of the meetings in the KROK officeGo ahead. Here is the place of techman
Alexey , who works with PHP developers.

His team was engaged in the development of the portal of the courts of general jurisdiction of Moscow, which included the personal account of citizens. The team has been forming for a long time and is currently an established project team with strong knowledge and experience of specialists.
When developing the Internet portal, it was necessary to take into account the fact that users, in principle, encounter the judicial system not at the most positive moments of their lives, therefore we tried to implement a personal account for citizens as comfortable and convenient to use as possible.
Pretty quickly, we realized that in working on this project, we need to apply flexible development methodologies. The external site is, in fact, the face of the judicial system, so it was especially important to demonstrate intermediate versions of the portal to interested parties. As a result, the process was able to build in such a way that it was possible to let part of the team go on vacation and not worry that someone would not do something.
Initially, the portal was created taking into account the fact that it will be used by citizens of the Russian Federation. But over time, non-residents began to work on the portal. And if you are, for example, a citizen of Belarus, then when you work with an electronic platform, there is already difficulty - there is no Russian passport and SNILS. Therefore, as part of project support, the portal was finalized taking into account the interests of foreign citizens.
About burnout

It seems to me that our model of organization of work is designed so that it was very difficult to burn out. When you are a lead developer, you can take one project, two, three. In addition to the projects themselves, there are usually some side activities that are generally small, but help to switch and unwind.
We took and started our
Java-school within the framework of such activities. Someone makes video clips with lessons that any of KROK members can watch at the Corporate University (just subscribe to an interesting lecture and watch directly from the workplace). For example, I recently recorded a lecture on best practices in maintaining java code.
It turns out that recording a video lecture is not the fastest and most trivial task, as I originally intended.
We also have a school of trainers (we are building up the skills of the staff on self-presentation of their knowledge), there is a technical faculty (exchange of experience between departments).
Plus, in addition to the already mentioned corporate blockchain projects, as well as creating a tool for quick integration into Java. In essence, this is a product development.
And here we are greatly helped by the experience of the intracorporate accelerator - skills related to how to approach the product development, customer development, etc. in general - all this was acquired precisely in the accelerator and is being successfully applied now on many projects.
We are talking about a three-month intensive program, a kind of shake-up of the product that you bring to the accelerator, and the brains of the team that is working on it. Throughout the entire shake-up, the team is assigned two trackers - one from CROC and one from the external team of professional productologists. Accelerator allows you to educate within the company grocery teams that can later work either on their products or on the company's products. For example, we worked with my team on a gym dry cleaners project. Spoiler - the topic did not take off, but everyone got a great experience.
Agile
Usually, when you try to write how you work cool where you work, you should definitely mention agile. We mention here.

“Word by word”: we do not work on agile.
Yes, we are going to, draw a plan for a couple of weeks, what we will do and how, when there will be deliveries - and, in general, that's all. We do not follow the dogmas in this regard, just take the tools that are in demand. We work in short iterations, discuss skoup, hold synchronization rallies, general ownership of the code and so on - this is natural.
Planning poker did not catch on at all. There are just experienced people who can understand how much this or that project will take. Well, evaluation is the responsibility of the performer himself. Who undertakes to do the task, that also puts terms. And responsible for them.
What else. Our stack is the freshest. If someone notices that some used solution becomes outdated, you can come and offer an alternative. This is also normal. I think we were lucky here in terms of bureaucracy and decision-making - all department directors, resource managers, heads of directions are open to innovations. Want to apply a new technology - suggest.
Jobs
I promised at the very beginning of the post to tell about some of our vacancies - here they are. Immediately, I note that all vacancies are not limited only to Moscow - they are also looking for such people in the regions.
Java Engineer
About the fact that integration is in Java, I wrote. A vacancy for this area implies working with integration solutions, as well as developing custom software.
If you are interested in participating in commercial software development projects, workflow systems, integration solutions, or developing a framework (and you have a higher technical + experience in software development from 1 year onwards) - see details
here .
PHP developer
The main tasks are the development and design of web services, as well as modules and subsystems of web applications. Detailed tasks and requirements - on
the job
page .
Frontend developer
To make interfaces taking into account the fact that they will be used in corporate and public systems for tens of thousands of users. You can come with a ready higher, and as a student, the main thing - practical experience from 2 years and knowledge of these
technologies .
If you have any questions about any of these vacancies or working conditions in general, please write in the comments, I will be glad to answer them.
References:
Last post about our development offices in the country .
A podcast with Andrei's participation about the life of developers at CROC, recorded in Irkutsk, visiting
@golodnyj .
Group jug.msk.ru VKontakte .
Announcements of meetings in full
here .
My mail for questions is ipopkov@croc.ru.