📜 ⬆️ ⬇️

“Doing more with smaller forces” - Kirill Tolkachev on the Alpha Laboratory



Kirill tolkkv Tolkachev is probably the most famous employee of the Alpha Lab in the Java world: he actively speaks at Java conferences, has long been involved in the podcast “Debriefing”, and in the fall became a co-founder of the podcast “Two Devs One Ops”. But what does his work in the Alpha Lab itself look like, and how actively do they use all the tools that he mentions in reports and podcasts in the company?

Kirill spoke at the last JPoint 2017, telling there, along with Yevgeny Borisov, about the Spring Test / Spring Boot Test “rakes”, and Alfa-Laboratory became the JPoint sponsor - and we decided that it was convenient to catch him at the conference and ask about all this.

- You are known as a speaker and a podcaster - and what exactly do you do at the Alpha Laboratory?
')
- I'm just a developer :) First of all I work on two projects: "Passport" and "Platform". The first is related to security and authorization, and the second is a new infrastructure project, launched in April, is such an internal product for other teams. We are experiencing growth difficulties, so it was decided to throw the strength to create an engineering solution that will successfully integrate the technical and process aspects of the development of our products.

I also interact with other teams (consultations, help and so on), but in general I try to realize my dream: so that everyone would be interested in the success of their product, develop a common cause with burning eyes, they would like to become better themselves and make things better around .

In addition to something that is tied to a specific project, our people are also engaged in amateur activities, which they like and benefit from. In fact, my amateur performance is speaking at conferences.

- It is known that Alpha Laboratory is a special division of Alfa-Bank, but from the side it is not obvious: how exactly do they relate?

- Officially, we differ only in name, but in fact, of course, there are many differences. Stories about our transformations can be found in the blog of CIO AlfaLab by Nadezhda Avdanina. She described in several articles both her personal feelings from various transformations and the process as a whole.

In a nutshell, at one point, we realized that we didn’t want to be an ordinary banking IT, and rushed. A whole cycle of various transformations has arisen, and we are trying to make it faster and more confident. Many of these transformations would be very difficult to do “from the inside of the bank”, so we have somewhat isolated. But it is also obvious that transformations that have a positive effect cannot remain inside and extend to the entire bank. It is fascinating - to change a huge organization for the better. But there is also a reverse side of the process: there is a lack of people capable of changing something and not being indifferent, motivated to develop not only themselves, but also their surroundings. And, in my personal opinion, the concentration of such people is the core value of the Laboratory.

- Last year at JPoint you had a report on Spring Boot, in this Spring Boot Test - do we understand correctly that Spring Alpha Laboratory is used very actively? What kind of components do you use?

- That's right, Spring is used very actively. There are some “lawyers” of the framework, but there are no fanatics who would say that “Spring is all over the head”. Alternative DI frameworks and other “non-canonical” solutions are also used if they meet the requirements.

We use Spring almost since the creation of the Laboratory. Experiments with Spring Boot began a little later, but quickly developed into the use of Spring Cloud. At first, attempts to use it were quite simple, and then there was an organic process of scaling the whole story. Of the components we try a lot, but we actively use the following:


From our improvements there is a spring-boot-starter set, for example, for convenient and simple work with thrift server / client spring starter, the main author of which is our beloved Alexander Tarasov aka aatarasoff :) Or a more experimental, but gaining popularity grpc- starter. Recently, we started activities on transferring projects of some projects to our GitHub , they started from the most simple ones.



- In another report , on Joker 2016 Student Day, you compiled a “periodic table” of tools - what would the table look like directly used by you in the current project of components?

At the student day, we, in fact, showed our sign at that time :) However, it is relevant for all projects, and not for any specific one. In it, of course, there are both deprecated components and experimental ones. But everyone has his own life cycle, a transition from one to another happens little by little.

- On the question of experimental components: you are actively interested in new technologies, but reliability is important for banks. There is no situation when you want to use in the production of modern technology, but by the standards of the bank, it is still not stable enough and we must wait for many years?

- Stability is not achieved thanks to some specific technologies, but because people understand that the value of this application is in stability and it should work that way. In addition, reliability is not enough: it is necessary to quickly bring solutions to the market, reduce time to market. If you made a super reliable decision, but it did not come at the right time, then there is no value in it.

In general, with the choice of technology is an interesting moment. We are gradually moving towards a concept in which we are trying to abandon standardization and “freezing” of some decisions for many, many years, but at the same time standardize the life cycle of technology, which allows us to clearly understand what requirements new solutions must meet in order to successfully replace old ones.

Needless to say, this should not happen without adding some value, and the first item in this process is the question “Nahua?”, Which every “innovator” should ask himself more than once. And only after he


it will be possible to say that “the game is worth the candle”. Moreover: most likely, there will be like-minded people who will help in the implementation of the necessary processes and technologies.

It is worth deciphering that in this case we consider important and significant problems, and this is a difficult question. The bank has a huge number of processes and integrations, starting with software, which is located in branches and back offices, and ending with custom web and mobile applications. For each solution there is an internal support that answers certain questions from the users of the system. Sometimes this support is “multi-level”. And, for example, any problem that makes it possible to reduce the number of calls to support is potentially significant, as it begins to save human resources, money, and, of course, nerves :) And this is the target direction - to do more with smaller forces.

We are few, but we are in vests! We do not want to compete in numbers, we want quality.

- As far as can be judged from the outside, Alpha Lab prefers to use well-known open source solutions rather than “cycling” - is this true? What are you doing yourself?

- Indeed, we try not to bike. Our conditions allow you to use ready-made OSS-solutions, collecting the final of the "cubes". The code we write ourselves is:


With all this, we do not really like to take ready-made "integration" solutions that already contain a set of OSS-components. I think this is due to the fact that we already stuffed cones on this, and now we prefer to “own” the chosen solutions and increase our internal expertise :)



- JavaScript, having conquered the frontend, is now climbing into the backend - and it hasn’t gotten to banking with its specific requirements, and nothing threatens the Java Alpha Lab? Or is there also looking at Node.js with interest?

- We use Node.js, there are front-end users using React - they have nowhere without Node.js. But in terms of internal services, data processing or integration services, while Java does not threaten anything, because along with it goes a developed ecosystem to solve various problems, not everything has analogues in the Node.js world. Yes, and as a platform, Java is very stable both in terms of backward compatibility and in terms of various regression performance changes. : trollface: see what Java 9 brings to us

- Are you interested in DevOps right up to the fact that you created a podcast about it - is this approach universally implemented in the Alpha Laboratory?

- As I said before, there are just people at Alpha Lab who want to make the process of communicating valuable changes to the user as fast and stable as possible. Often, this requires not only technical skills, but also soft skills.

And the devOps podcast “Two Devs One Ops” Sergey bsideup Egorov and I organized, as there was a huge amount of questions that we were tired of answering offline :) At the moment it’s for us, first of all, a place where we can gather and talk to each other and people who are interesting to us. It turned out that these gatherings may be of interest to the community. Although there is nothing surprising, we have already figured out this in the “Debriefing” podcast long ago.

- Apparently, you are dealing with so many technologies that before each conference there is a question “about what exactly to tell” - why this year for JPoint we chose testing in Spring?

- I chose according to the principle “What will be most useful for the listeners”. I think the various pitfalls shown in the report and the conclusions reached can save a lot of time for the listeners.

Very interesting was the fact that the Pivotal team is now making, as they put it, the "overhaul" of the testing framework. At the moment there are both new and old mechanisms, with a combination of which unobvious nuances begin to surface. And spring-test itself contains many things that developers rarely pay attention to - for example, caching test contexts. And spring-boot-test adds even more magic to it: for example, two types of autoscanning, which behaves very specific, and when used normally, leads to a strong connectivity of tests in one application.

- Conferences and podcasts affect directly at work? For example, do you get to know people who later turn out to be your colleagues?

- I have no goal to find out more people who can “come in handy” to me in the “Laboratory”. First of all, this is my own self-development and satisfaction of the thirst for communication / new knowledge. If someone comes to us because he listens to "Debriefing" or sees someone from our guys at conferences, I personally do not look at it. More important for me is the reason why a person goes to conferences and listens to podcasts.

This is true for me too, because initially participating in podcasts and conferences are some random events that happened in my life. Turned up the opportunity to speak / participate in a podcast -> I tried -> I liked it. Now I try to make my performances better and better, and this helps me both to develop and enjoy my work. It is impossible to eliminate accidents from our lives - that is why it is important how we use every opportunity that has fallen out.



A new report by Kirill so far could only be seen by conference visitors - but on YouTube you can watch the Spring Boot talk from last year’s JPoint:

Source: https://habr.com/ru/post/326884/


All Articles