
Today we celebrate the holiday of those who care every day to bring a bit more order to the world — testers. On this day, GeekUniversity from Mail.ru Group for those who want to join the ranks of the fighters against the universe's entropy. The course program is designed so that the profession of Software Tester can be mastered from scratch, even if you have previously worked in a completely different field.
We also publish the story of GeekBrains student Maria Lupandina (). Maria holds a PhD in Acoustics. She currently works as a software tester at a large engineering company that develops software for medical institutions.
In this article, I want to showcase the possibility of a rather sharp career change. Before becoming a tester, I wasn't very closely involved in information technology, except for what was necessary for my previous job. However, under the pressure of various factors that I will detail below, I decided to leave the scientific sphere for pure IT. It all worked out, and now I can share my experience.
How it all began: technology plus science
After graduating from university with a degree in biomedical engineering, I started working at an industrial enterprise as a laboratory engineer. This is quite an interesting job, where my responsibilities included measuring and controlling product parameters and raw materials at different stages of production.
I wanted to become a good specialist, so I gradually immersed myself in production technologies and mastered related specialties. For example, when the need arose, I learned the methodology for conducting chemical analyses to control water quality, using state standards and industry regulations as sources. Later, I trained other laboratory technicians in this methodology.
At the same time, I was preparing my PhD dissertation, which I successfully defended. As a candidate, I managed to secure a large grant from the Russian Foundation for Basic Research (RFBR). During this period, I was invited to the university as a part-time lecturer. I carried out tasks related to the grant, developed curricula and methodological materials for the university, published scientific articles, delivered lectures, conducted practical classes, and created assessments and tests for the electronic education system. I really enjoyed teaching, but unfortunately, the contract ended, and so did my career as a university employee.
Why? On the one hand, I wanted to continue my path in science, perhaps becoming an associate professor. The problem was that the contract was temporary, and I couldn't secure a position at the university — unfortunately, no new contract was offered.
At that time, I resigned from the company because I decided it was necessary to make a change; I didn’t want to spend my whole life working as a lab technician. I simply had no room for professional growth, and the opportunities for development were non-existent. The company was small, so there was not much to say about a career ladder. Adding to the lack of career prospects was the small salary, inconvenient location of the company, and the increased risk of injury in the production environment. This resulted in a whole range of problems that I had to cut through like the Gordian knot — that is, I had to resign.
After resigning, I transitioned to freelance work. I developed projects in radio engineering, electrical engineering, and acoustics on a contract basis. In particular, I designed parabolic microwave antennas and developed an anechoic chamber for studying microphone parameters. There were many orders, but I still wanted something different. At one point, I felt the urge to try my hand as a programmer.
New Studies and Freelancing
Once, I came across an advertisement for GeekBrains courses and decided to give it a try. I first completed the 'Fundamentals of Programming' course. Wanting more, I also completed courses in 'Web Development' — and that was just the beginning: I mastered HTML/CSS, HTML5/CSS3, JavaScript, after which I began studying Java in the 'Training was a significant challenge to my strength—not because the course itself was difficult, but because I often had to study with a child in my arms.
Why Java specifically? I have repeatedly read and heard that it is a universal language that can be used, for example, in web development. Additionally, I read that knowing Java enables a transition to any other language if the need arises. This turned out to be true: I wrote code in C++, and it worked, even though I hadn’t delved too deeply into the fundamentals of syntax. The same went for Python; I wrote a small web page parser in it.

Sometimes I had to work like this—putting the child in an ergonomic backpack, giving them a toy, and hoping that would be enough to complete the next order.
As soon as I gained a certain amount of knowledge and programming experience, I started taking freelance orders. I developed a personal finance tracking application, as well as a text editor on demand. The editor is simple, with a few basic formatting functions, but it accomplishes its task. Additionally, I tackled text processing tasks and worked on web page layout.
I should note that learning programming has broadened my opportunities and perspectives overall: I can not only write programs for clients but also work on personal projects. For example, I created a small, yet useful program that checks if anyone is vandalizing your Wikipedia articles. The program parses the article page, finds the date of the last change, and if the date does not match the last time you edited your article, you receive a notification. I also developed a program for automatically calculating the price of a specific commodity, like labor. The program's graphical interface was created using the JavaFX library. I did use a textbook, but I developed the algorithm on my own, applying OOP principles and the MVC design pattern for its implementation.
Freelancing is good, but an office is better.
Overall, I enjoyed freelancing because it allowed me to earn money without leaving home. However, the issue lies in the number of projects available. When there are many, finances are healthy, but there are also urgent projects that require late-night efforts in a rush. When clients are few, the need for money becomes apparent. The main downsides of freelancing are the irregular schedule and the fluctuating income. All this, of course, affected my quality of life and overall psychological state.
I realized that formal employment would help eliminate these issues. I started looking for job vacancies on specialized sites, developed a solid resume (thanks to my teachers— I often consulted them about what to include in my resume and what to mention during personal conversations with potential employers). During my search, I completed test tasks, some of which were quite challenging. I added the results to my portfolio, which eventually became quite substantial.
In the end, I managed to land a job as a tester in a company that develops medical information systems for automating paperwork in healthcare institutions. My higher education in biomedical engineering, along with my knowledge and experience in software development, helped me find this job. I was invited for an interview and eventually got hired.
My main task now is to test applications developed by our programmers for robustness. If the software fails the testing, it needs to be improved. Additionally, I check messages from the users of our company’s system. A whole department works on solving various issues, and I am part of it. The software platform developed by our company is implemented in hospitals and clinics, and if problems arise, users submit requests for solutions. We handle these requests. Sometimes, I choose the task I will work on, while other times I consult more experienced colleagues about task selection.
Once the task is pinned, work begins. To solve the problem, I determine the origin of the error (since there is always the possibility that the cause is human error). After clarifying the details with the client, I formulate a technical task for the programmer. Once the component or module is ready, I test them and implement them into the client's system.
Unfortunately, most tests have to be conducted manually, as implementing automation is a complex business process that requires serious justification and thorough preparation. Nevertheless, I have familiarized myself with some automation tools. For example, the Junit library for testing a specific block via API. There's also the Twin framework from ebayopensource, which allows you to write scripts that simulate user actions and is very similar to Selenium used on the web. Additionally, I've mastered the Cucumber framework.
My income at the new job has doubled compared to freelancing — largely because I work full-time. According to statistics from hh.ru and other resources, the salary size for developers in Taganrog ranges from 40,000 to 70,000 rubles. Overall, these figures correspond to reality.
The workplace is equipped with everything necessary, the office is spacious, with many windows and always fresh air. Plus, there's a kitchen, a coffee machine, and of course, cookies! The team is great, and there are no negative aspects in this regard. Good work, good colleagues — what else does a programmer-tester need for happiness?
I would like to note that the company's office is located in Taganrog, which is my hometown. There are quite a few IT companies here, so there are opportunities for growth. If desired, one can move to Rostov — there are more opportunities, but I don't plan to relocate yet.
What's next?
So far I like what I have. But I'm not going to stop — that's why I continue to study. I have a course on 'JavaScript Level 2' in the pipeline, and as soon as I have more free time, I'll definitely start mastering it. I regularly review the materials I've already covered, plus I watch lectures and webinars. Additionally, I participate in the mentorship program at GeekBrains. This allows students who have successfully completed courses and submitted homework to become mentors for other learners. A mentor answers questions and helps with assignments. For me, this also serves as a review and consolidation of the material covered. In my spare time, whenever I can, I solve problems from resources like ,,.
I am also taking a course on Android development offered by ITMO instructors. These courses are free, and if desired, one can take a paid exam. I should note that the ITMO team holds the world championship in programming competitions.
A few tips for those interested in programming
Now that I have some experience in development, I want to advise those planning to enter IT not to jump in headfirst. To become a good specialist, you need to be passionate about your work. Therefore, you should choose a direction that you really love. Fortunately, there’s nothing difficult about this — there’s a wealth of reviews and descriptions about any area of development, language, or framework available online.
And one should be ready for a continuous learning process. A programmer cannot rest on their laurels — it’s akin to a death sentence, albeit not physical but professional. If you are ready for this — then go ahead, why not?
Source: habr.com
