AI-Supported Software Engineering: integrate GitHub Copilot and ChatGPT into your daily work for efficient development

Vitali Shulha: “People Unsubscribe from Spam, but I Subscribe to It.”

The author of this article is Vitali Shulha, Talent Development Manager at EPAM.

Vitali Shulha, Talent Development Manager

Childhood: soldering iron, microchip, matchstick drawer

— I was born in Novopolotsk, Belarus. I was fascinated by reading, and I wanted to pursue science and invent different interesting things. Of course, I dreamed of flying into space — at that time, it was a trendy dream! I was always interested in subjects related to exact sciences: physics, chemistry, geography.

My main activity in childhood was to solder something: creating DIY gadgets out of radio elements. We had several different soldering irons at home and I also had radio parts. Lots of small radio parts – and all were different. To store them, I had to buy 3-4 blocks of matches and glue them into a kind of custom drawer. I labeled each block: 4 Ohm resistors are here, 7 Ohm ones are in the next drawer. You don't know which ones are working, and which ones have burned out, but these 30-40 boxes are your  precious.

Photo of a cat with match boxes

I'll never forget the feeling of walking around the city with a plastic bag burned through by a soldering iron. This bag contained a soldering iron and other tools like pliers, wire cutters, etc. You carried all this with you and were perfectly happy. Probably 10% of my left hand consists of areas that don't feel pain at all. Because, if you're right-handed, how do you solder? You hold a large transistor in your left hand, but sometimes the soldering iron slips, and you sear your left hand with the iron. In the end, you get these little areas where you basically never feel pain again… The main event of that period was when someone threw a TV out for trash. Guys would swoop in, grab what they could, extract the transformers and microchips. I don't know whether radio parts were sold at all at that time, but we certainly didn't have money to buy them. In an old thrown away TV, though, everything was there for free.

My interest in radio parts led me to the design faculty of the radio-engineering university and I studied how semiconductors and microchips are made, then I had a fun internship at "Integral" (the largest integrated circuitry production plant in Belarus — Ed.).

Memorable: first earnings

I earned my first money working as a loader at a construction site. I was about 14 then. My friends and I decided it was about time. Cottages were being built outside the city, and my buddy, who was half a year older, said he had sorted it out. His idea was simple: go from house to house asking if anyone needs workers. And one kind man agreed to give us work.

In the morning, we did some basic chore: stacking bricks, moving something somewhere, and in the afternoon, we mixed concrete and carried it in buckets to the third floor. We got horribly tired. But I earned 10 thousand rubles! That was very good. They gave it to me in one banknote. As I remember, it was pinkish.

Image of a ten thousand ruble banknote

Later, I started dealing with cell phones. Back then, only very rich people bought new phones, and young people bought used ones. I noticed in the classifieds newspaper ads that the same model could be priced differently. One would be listed for $20, another one for $30. I borrowed $25 from my father, bought a phone, and sold it for $30. Then I bought another one for $30, sold it… And that way it started. I bought phones, changed the body, cleaned them, re-flashed them, put them back in order, and sold them for a higher price.

Job, career growth, relocation

Around the second year of my studies, my friends suggested to me that tech companies were actively recruiting students for work and were paying decent money.

I completed EPAM courses and got an offer: I was 20 at the time. It was hard to combine daytime learning with a full-time job — it wasn't popular, teachers didn't encourage it — but somehow, I managed.

I worked in automated testing on several projects for about three years.

I became an online coach for automation mentoring. First, I provided one block of lectures, then they asked me to do a second, and then a third. By the end, I was presenting half of the mentor's program for the course. The guys I worked with suggested that I take on more responsibilities and help with the coordination of the course. I was still working in production then, but had already made a significant contribution to corporate educational programs.

A very cool period began — I traveled a lot on business trips, trained people, interviewed.

One day, I was offered the opportunity to do corporate training full-time – not for middle-senior level, but for juniors. I became the head of the Test Automation Lab in Minsk. One of the new directions was launching online courses — they were very popular.

Then COVID happened. Our bet on online, which had been made a few months before, paid off. Everyone started going remote, and we were already there.

I was asked to develop educational programs for juniors in Georgia. On my way there, I was also assigned to Uzbekistan, Kazakhstan, Armenia, and Kyrgyzstan.

At the same time, neural networks started to make a name for themselves. It became clear that we needed Research & Development — a department engaged in the development of experimental things, identifying what was happening in cutting edge technologies, and testing hypotheses.

About six months ago, I passed the training of juniors into good hands, and went to work on AI, R&D, and innovative technologies.

Now, my main task is prototyping experimental learning methods for corporate and general public audiences.

Staying on trend

When I started to follow tech news in more depth, Reddit, which I discovered quite late, maybe 4 or 5 years ago, was probably my main source of information.

Reddit is the thing! The more you read, the more interesting channels, called subreddits, you see. Some people who develop top technologies make announcements there too. This is a key source of information.

There is a difference between Russian-speaking and English-speaking information fields. I've been in the Russian-speaking community for quite a while. The memes that my friends send me in Telegram are memes that I saw a week, two weeks, or a month ago on Reddit. Someone just copied them, translated them, and then posted them as a new meme on the Runet.

I'm subscribed to custom mailing lists, and there are a lot of them. People usually unsubscribe from spam but, on the contrary, I subscribe. I'm subscribed to a lot of newsletters — about the economy, AI, etc. I can't say that I read them all, but I at least skim the headlines.

When something appears in the “regular” (mainstream) news, a month or more has already passed since the first bells. This was true with ChatGPT, they wrote about it in the news months after it had been released, when people already had the chance to use it, and provide the first reviews. But time is valuable, we need to try new things in our business. That's why now, 99% of my research is in the English language segment. Only a couple of channels I monitor are in Russian — and those are the philosophical thoughts of people that I'm interested in.

Vitaly Shulga

Hobbies

At different times, I’ve had various hobbies. In the past few years, I've become quite lazy. I plan to fix this. I got caught in the “deferred life syndrome”: when you kind of shift your priorities temporarily, you want to return to your old ways, but it's okay where you are now too, and you put off some plans, some actions.

A photo of Vitali Shulha in black and white

I always read a lot. Every day for about 15 years — if I don't spend the night in a tent in the woods, then I definitely read at least half an hour a day, I really love science fiction.

There was a period when I played the guitar. I haven't practiced in a long time, though, but I want to get back to it.

I'm fond of photography, I love shooting with a reflex camera: I understand the process very well from a technical point of view. I also love computers! I recently built myself a new PC. And I film different areas of Georgia with a drone, and post my amateur videos on YouTube. I haven't updated these for a while, but it’s probably time.

About the courses

The courses that I developed arose naturally, either in response to requests or based on a theory and practice that I wanted to share with the world.

The automation mentoring program that I mentioned earlier — what's it for? It's to turn "non-automators" — testers who don't use automation tools — into automators. At some point, we realized that the preparation of a junior and the preparation of a middle-senior, would be more or less the same if they are switching from one profession to another, meaning that the list of tools they need to know is more or less the same. The depth of immersion may vary, but in general, it's the same. So, we started to rewrite the modules that we had on tools, frameworks, and technologies. And when we were rewriting it, I realized that people don't watch two-hour webinars (unless they are filmed by Michael Bay or some respected person).

Version Control with Git

So, we decided to make short videos. We had to rethink the delivery method entirely. We started with the basics, with the simplest thing — that is Git. Why is it needed? When you work with code, you need to store it somewhere. Git is a system for storing text files: code, or others. It all starts with Git, so we made that the first one. 

I added quizzes and practical tasks. I had read a lot about Git before, both live and online. I conducted many trainings before creating the course. Everything I had done had to be reassembled completely, though, because the format of online delivery has little in common with the recording delivery format. But it's possible to reuse some things.

Software development methodologies

The Software Development Methodologies course was created to explain fundamental software development methodologies to junior and middle specialists.

What problem were we solving? If a person has no work experience, they still need to understand how everything should work on a project. There are good books for this, as well as articles. There are many of them, all different - some are good, some are not so good – not all of them need to be read.

What is special about methodologies? A methodology is a system described by its creators and authors in certain canonical works. In the course, I give an example of Kent Beck's classic book on Extreme Programming. It's a great book that explains how everything should ideally work. In reality, things are done slightly differently on projects. Not a huge difference, but slightly different. I've never in my career seen a project that strictly adhered to the canonical methodology, as it was designed in the books. People often experience a bit of a cognitive dissonance when they join a project – they see one thing happening, but books or articles say something else. Or they join the project, see how things happen in practice, and then think that it should be the same everywhere and that what they saw on that one project is how TDD (Test-Driven Development) BDD (Behavior-Driven Development), Scrum, Kanban, etc., were intended to be. But that's not the case either.

When creating the course, I relied not so much on my experience, but on original sources that explain how the philosophy of each methodology was conceived. I talk about the basic concepts based on the author's original ideas embodied in them. This will be useful for a junior who has no experience (those who are not familiar with methodologies and have not worked on real projects). It will also assist people who have already worked on projects and understand how things can happen in practice, but who are interested in learning about alternative ways of "cooking" the same product slightly differently. And I briefly, without delving deeply into details, touch on the most popular IT methods - Waterfall, Agile, Scrum, Kanban. I also include Extreme Programming, Test Driven Development, and Behaviour Driven Development.

The result was this short course. It's only 1.5 hours long and can be completed in an evening.

At the end of the course, I recommend three books to read. Reading them will take a bit more time, but I distilled the «true lore» of the relevant concepts.

Maven Build Tool

The Maven Build Tool course was created to help newbies in Java programming build their test projects using a build tool. We chose Maven because it is the most popular and very easy to use. The course's goal was to explain the basic principles in half an hour: how to create a project, connect necessary dependencies, and prepare the project for publishing on Git or GitHub, or join an existing project.

The course is aimed at those who have recently started writing in Java – those who have learned its syntax and the basics of the language but have not yet had experience building large projects and publishing them. The focus is not so much on developers as on testers wishing to become automators and only starting to learn Java programming.

We have suggested using Maven, and carefully putting the work in Git, so that everything is neat and smooth with the projects.

Continuous Integration with Jenkins

The Continuous Integration with Jenkins course is aimed at those who recently started learning programming. Depending on the developer's approach, Jenkins can be either the first or the last stage of the project creation process. In development, there's the concept of "build pipeline" - a sequence of actions from making changes in the code to the release of a new product version. It can be either "continuous integration" or "continuous delivery".

Continuous integration means that with every change in the code, all testing, re-compilation, and integration of components must be done anew. Continuous delivery differs only in that at the end of this chain there is automatic product deployment in production.

Jenkins is one of the most popular and simple tools for continuous integration. The course covers the basics of using Jenkins, including its installation and setup. It provides an in-depth introduction to Jenkins and is suitable for those just starting to encounter the need for continuous integration.

Of course, now many browser versions of pipelines have appeared, but Jenkins is such an old-school thing that you can deploy it on a local host and get creative.

The courses by the author:

Language

The next course to be published is Computer Science Basics (ru). I initially write all my courses in Russian. First, it's easier for me to express my thoughts. Second, you can joke — it's harder to joke in English. Also, when you're learning something new, especially something fundamental, it's better if it's in your native language. You can read many pages in English, but these are not fundamental things. When you need to understand basic concepts, all things being equal… It's like with books. I tried to read Stephen King in English. It's hard! The words are understandable, but when I read a good quality translation, it's heaven, I enjoy it. It's not a challenge, I just get pleasure from a professional translation. And if it's a complex thing, I read the translator's notes: why a character is named that way, why something is translated this way — there's a lot of work done! But I won't translate it like that myself.

So, the benefit of this course is that people consume content in the language that is native to them, and it's easier for them to understand than English.

Of course, it's more profitable for companies to do everything in English. We have 50 offices, and everyone understands English. But it's beneficial for me to do it in Russian, then translate it into English, because a higher-quality product will come out at the end, plus for a specific audience, it will be easier to perceive everything.

I've been to different countries and met people who watched my courses, in Uzbekistan, Kazakhstan, Armenia: they all watched the course in Russian. Even in the shops, they recognized me there! I don't think it would have been the same for them if they had watched in English.

Related posts
Get the latest updates on the platforms you love