📜 ⬆️ ⬇️

No ruby ​​one

Lead developer Alexander Bugayev is one of the Ruby Evangelicals in EPAM. He likes challenging tasks, he is ready to work at night, work at home or on hackathons. Alexander spoke about his adventurous way in programming. About new Ruby on Rails projects of enterprise level that need developers. And also about why there are no universal solutions.

image

How do people become good engineers? Let's use your example to recall all the prerequisites.


In the village of my grandmother, where I was often “exiled” to all summer, it was boring. Therefore, I amused myself by building spacecraft from Lego. Own computer appeared only at 19 years old as a bonus for admission to the Faculty of Mathematics and Biology of the Belarusian State University in the specialty "Banking". Prior to this, parents of the principle did not buy any equipment.
At the university, I learned the basics of programming in C ++ and Java - however, only at the level to write a cycle and display it. Such tasks did not cause me great interest, so at first I did not plan to go into programming at all. But the prospect of working on the profile and doing financial miscalculations did not inspire either: the dress code, the twisted nuts - it all seemed dull. Once I happened to hear about open source projects and Linux systems as alternatives to Windows. The concept I was very interested in, and I began to independently study this area.
I got involved in the adventure - I began to learn Python according to the Google manual. Argued as follows: Python has written a lot of software for Linux, it is used by such a cool corporation, which means there is a source of materials about the language in which you can create your own programs.
Once I happened to hear about open source projects and Linux systems as alternatives to Windows. The concept I was very interested in, and I began to independently study this area.

How did you get into EPAM?


I wrote a naive letter to recruiters to the email address found right on the main site. It was something from the category: “Hello everyone! I want to you a programmer in Python. I know something about the language, but there is no experience, I am ready to work for free and at any time for the length of service. ” I was invited to an interview where they said: “We don’t have Python, but there’s Ruby - you’ll like it.” Before that, in other companies, I was already offered positions as a .Net developer, but neither the framework nor the working atmosphere was convincing enough to agree.

During the internship, I was given a 500-page book on Ruby, set the task and periodically checked how progress was going. A few months later, I, a self-taught trainee, were allowed to go to this project: they were allowed to work with simple bugs. Soon I was interviewed by the customer and became a full developer. Mathematical basis and perseverance helped.
')

Why, having a large selection of programming languages, you are most interested in Ruby?


This language allows you to focus on tasks, not syntax. Open source source projects on RoR are readable and understandable to all people who own it. Judging by the rubists from the Belarusian community, whom I constantly meet at conferences and hackathons, they are just space people. It’s somehow simpler with them: maybe the syntax, conciseness and dynamics of Ruby are transmitted by the engineers themselves at the gene level?
Judging by the rubists from the Belarusian community, whom I constantly meet at conferences and hackathons, they are just space people.

For six years, in the company from an intern you turned into a leading engineer. What projects have you gained experience on?


I worked on the first project for three and a half years. It was a large system based on Ruby, Java, Perl and Javascript. All processes were systematized, large systems were supplied on hardware, with creativity you will not accelerate. Then, about half a year I wrote to NodeJS a front end for the console tool for analyzing traffic when working with the Network File System, which EPAM had “co-opted out”. There was also an internal project of EPAM University based on an open Stanford training platform, when I worked mainly with Python, Django and databases. He was followed by a major project in Python.

Despite the fact that the next year and a half I wrote only in Python and Node, I actively used Ruby on my projects at home and during hackathons. I like real brainstorming, when the team does not just make a beautiful presentation in PowerPoint, but creates a product in 24 hours. For example, at the Belarusian stage of the hackathon, LG Smart TV managed to develop an interactive application for sports. By the way, to participate in such events, it even turned out to assemble a small team of rubist- “hackatoners” Crazy Lemurs .
I like real brainstorming, when the team does not just make a beautiful presentation in PowerPoint, but creates a product in 24 hours.

Thanks to participation in such activities, I did not forget the language at all, but now I have waited for my high point: recently, EPAM has opened two interesting large projects that require deep knowledge of the framework.

These are those projects that now require experienced RoR developers?


Yes. At one of them, I am now busy, and perhaps this is the most interesting initiative on RoR in all 6 years of work in the company. The project is related to the development of an internal security system for an American customer. The end users of this product are the largest software companies in the USA. Despite the fact that the client is very serious, the atmosphere on the startup project. A strong team solves interesting problems, but at the same time there are no clearly defined processes, and this only adds dynamics to your work. You do not just rivet forms or create typical models. We receive tasks that no one has solved before, and you need to find the solution yourself, having thought through all the possible consequences and having worked through the architecture. In many ways, it resembles the work of Solution Architect. Therefore, we are looking for professionals of the D2 level and above. Since the project currently uses Ruby, RoR, Lua, Go, Java (Spark, Spring), Docker, AWS, and more, it is advisable to know all these technologies, no matter how fantastic this may sound. Or, if you descend from heaven to earth, have at least a broad understanding of them.
Despite the fact that the client is very serious, the atmosphere on the startup project.

The project has a large complex structure, which includes microservices. Contrary to popular stereotypes, a lot has been written in Ruby. In addition to me, there are several other leading RoR-developers on the Belarusian side, there are 5 of us. On the American side, the RoR-team of 8 people is even stronger: among them there is a main programmer and an architect who has patents. Every day you communicate with such "astronauts", and they also listen to your advice! It's fantastic.

Our system has different versions, regions, types of servers and deployments, so we are not engaged in deployment, but a large DevOps team on the customer side. The project uses a multi-level testing system, starting with the base, which we ourselves are engaged in. All this reduces the risk of unforeseen situations during product development. We also have a customer support practice when we go on duty and fix bugs, which are reported to us by the clients themselves.

Another new RoR project in EPAM is an embedded banking system for one of the German customers, which in turn offers this product to banks all over the world. As far as I know, there is already integration with Arabian and German banks. Major components of this project, for example, the dashboard system, are written in RoR. Now it is a monolith project, which will be divided into several parts, and then synchronize their work. You must admit that it is not every day that you saw the banking system so that it also works stably. And it's not about Ruby. Not a single language. If a person wants to develop as a programmer, he must be able to solve non-standard tasks in different ways.
You must admit that it is not every day that you saw the banking system so that it also works stably.

Is there a rule that you always follow in your work?


Do not believe in universal solutions and fight with "crutches". I will give an example. We had a project that dealt with scanning the vulnerability of Windows machines. The Windows system was written by analogy with Linux, it worked unstably, slowly, and “survived” all the memory. It was a classic mistake when people look at similar solutions and try to create something similar. What worked fine for Linux, Windows began to creak wheels.
Do not believe in universal solutions and fight with "crutches".

I took and rewrote the system over the weekend "on my knees" as a demo version. Then the team began to improve it and gradually brought to production. We received an examination for which the customer was grateful.

Who do you see yourself in a couple of years?


I have a passion for new projects, architectural concepts and problem solving with different methods, combining tools. Therefore, in the future I see myself as an architect.

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


All Articles