Dmitriy Leskovets
Портфолио
Support engineer of IVR bank system (around 2012)
It's been a long time, I'd like to highlight a couple of points: 1) It was my first experience in a software development team. Before that, I didn't know anything about how software is developed. At that time our team had a waterfall framework. So, after analytics have finished their job to make requirements, our developer make the application. There always was many versions of one application (because requirements may changed of while testing we have found some bugs), each of them was delivered to various development environments manually. It was java application, and all deployment was for copy .jar file to tomcat server, start it, and set up config. Many manual monotonous actions. So I started to automate it with a bash scripts. I won't claim to say that is was full success, but as result, we had reduced downtime made fewer errors during the deployment process. And from that time I know what problems you have if you use only bash scripts for automation. 2) And at the same position, but a few years later, I was tried a BDD software development process. I used Cucumber framework for it. After some beta time we choose to not use BDD at our work, so I can't say that have strong expertise at it. But, certainly, it was very interesting experience.
Devops engineer of investing-bank department (around 2019)
When I came to Investing department, at first I was a system analyst. It was not too hard, because from the start, a have a very good relationships with teamlead, and feels his support at any situations. But, and not too simple, after support engineer became a system analyst (of a system that we must build from zero). We chose Tarantool enterprise platform as a core of our solution. As a system analyst I write investment business logic as a lua scripts. I started at this position with zero knowledge of investing business process so my result at this position was not best. But at the end of 2018, our devops is leave our team, so I say to our team: "Let me try to do his job". First month was really hard, but at end of it, I'm not only understood our ci/cd, but and refactored about 1/3 of them. In a short time our TTM was reduced, stability of deploys became higher. We get little nice features like jenkins - bitbucket integrations with reports of tests results, for example. I think, it was my first experience as a devops engineer, and from this times I like Jenkins very much!
Pet project - Personal private cloud solution
I have personal Bare-metal rack server at colocation on VmWare ESXi and have only one public IP, so have used NAT at microtic soho-router connected physically to server. There are three VM's in it: 1) Gateway - Oracle linux with nginx for managing requests from outside to applications servers (in some cases it terminates tls itself, and in another it works as passthrough). 2) Cloud - Oracle linux with Nextcloud software to organize private cloud. 3) Mail - Oracle linux with Postfix/Dovecot as email server. To minimize time for setup I'm use iRedMail. At first it was based on UCS platform (https://www.univention.com/products/ucs/), that provide a owncloud image for VmWare. It's fast at setup, have wide at functional, but have many non-obvious (at least for me) mechanics, so when something not works, much time needed to understand current case and fixed it. So I stopped ucs and created architecture as written above. For some reasons I switched to Nextcloud from Owncloud - it looks more opensource and more alive than Owncloud. I'm not completed all work on it, because temporary have no access to my server (it's moving from one colocation to another).
Lead devops engineer at ML/DS models
I came to a Sberbank with a feeling of strong middle devops. It was a team like startup in enterprise. At first time we had no processes to develop and deploy. Development of our products was just started, and I mainly worked as data engineer with devops background. My teammates was writing data marts on in-house framework for learning ML models. Mostly I used communal jobs for this actions. But for better understanding I installed CDH Hadoop instance at my personal server, that's why I have some experience with that. But real work was started when we needed to rollout our first model to production. There is many requirements and limitations to do that from company processes. For example, model in production must working only in Openshift dedicated instance, have Ingress server (it was permissible use sidecar, or a usual pod with nginx). Mainly problem was with documentation of those requirements - it was contradictory, irrelevant, and sometimes it simply did not exist. So, about for two weeks (sometimes I spent for it not only day, but and a part or night) I've reverse engineered some ready solutions, and make our version of ci/cd. It was ugly, semi-manual, but he was working. Our model was at production environment on time. At this task I've learned a lot about Nginx, OpenShift and orchestration of it.