Development of CRIC from the inside: people, ducks and a lot of work

    Hi, Habr!

    Integrator development is usually quite different from working in a startup or software development studio. Of the advantages, 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 NDAs the size of a toaster, not everything can be told. When I wanted to tell you about an interesting project, but there again NDA




    My name is Ivan, I am a technical manager (Java) at KROK. 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 class of the Java course, which was held 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, got 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 brief agony and a 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 proud knowledge of address arithmetic and Hungarian notation, and then you immediately have Java, CamelCase, BPM, ECM and other pleasant names for your ear that after the rusty C world seem like something magical.

    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 a year later 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 particular 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 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 many such scalable projects here, and quite a few) and 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 document flow.

    If someone wants to try himself in blockchain projects in real areas of the economy - we also have such . For example, I am currently working in projects from digital contracting to using 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 build 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, while the rest of customization remained on the developers.

    Another case is a project associated with an electronic signature. In a number of states, the GOSTs on the ES have the same numbers, but at the same time, the implementations are so different that they become de facto 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 assistants

    I will introduce you to my 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 a “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:

    The presence of the 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 the 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 has 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 developers, and 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.

    Frontend work is enough - 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 name 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 up 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 there are rarely vacancies for novice developers. 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 take a closer look, on the table, Andrei has a cap with the podcast logo “Debriefing”- famous podcast for real IT-schnick. 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, therefore 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-developers community. 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 yet been to the Moscow JUG, come to one of the next meetings. Below is a link to a group with meeting announcements.


    A photo from one of the meetings at the KROK office

    . Here is the place of techman Alexey , who works with PHP developers.



    His team was developing a portal for the courts of general jurisdiction in Moscow, which included a personal account of citizens. The team has been forming for a long time and now it is an established project team with strong knowledge and experience of specialists.

    When developing an 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.

    Pretty quickly, we realized that in working on this project it is necessary 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 working with an electronic platform, there is already a 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're a lead developer, you can take one project for yourself, 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 KROK member 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 run by 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 used on many projects now.

    We are talking about a three-month intensive program, a kind of shake-up of the product that you take to the accelerator, and the brains of the team that is working on it. During the entire shake-up, two trackers are assigned to the team - one from KROK 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, the assessment is the responsibility of the performer himself. The one who undertakes to do the task sets the deadline. And responsible for them.

    What else. We have the freshest stack. 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 the integration in our 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 as a ready higher, and as a student, the main thing - practical experience from 2 years and knowledge of these technologies .



    If you have 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.

    Also popular now: