November 10, 2023

The way of the developer. Around the world in 17 years

My name is Roman Maksimov. I work as a frontend developer. Despite the fact that I have gone a long way from desktop to web, backend, and full-stack development, I still believe that frontend development is my true calling. Let me explain why.

First and foremost, let me tell you what led me to IT in general and to development in particular. It was at the very beginning of the 2000s. People were slowly moving away from Windows 98, and the cautious jokes about the millennium and the end of the world were becoming less frequent. The IT industry in Russia at that time, we can assume, was in its infancy. The internet was just starting to become more widely accessible, and personal computers were still a rare sight in most households. However, there were passionate sysadmins and programmers who, for fun, loved to engage in verbal battles with each other. I know it sounds like a cliché, but that's how it was. There was also a group of amateur enthusiasts who communicated online and sometimes participated in various initiatives. It just so happened that I was one of those amateur enthusiasts. I'll tell you more about how and why I became part of this community next time, but for now...

It's 2002, summer, and I'm 15 years old. I found out that a commercial training center for IT specialists had opened in our town in the north of the Leningrad region six months earlier. The center offered training in several areas: "Web design," "System Administration," and "Application Programming." Nowadays, it's hard for the next generation to understand because there are numerous training courses, workshops, and bootcamps of all kinds. However, back in 2002, there were no such courses or faculties in universities, and professions such as a programmer or a web designer were not formally recognized (according to the documents, these roles were usually classified as "engineer"). Despite the lack of options, I couldn't miss such an opportunity. We all attempted to obtain the cherished knowledge and sought advice from more experienced colleagues, reading every relevant book we could find—though there were not so many available at the time.

Moving forward to 2006, I received my diploma upon completion of the course. As I held the little red book in my hands, I found an extract sheet enclosed inside, with every line in each discipline marked "excellent." Reflecting on the past four years, I realized how quickly they had passed. Looking back, I had no doubt or regret about the time I had spent. Pursuing this education had become one of the most important decisions in my life.

By this time, I was already studying at the university and working part-time wherever an opportunity arose. I even managed to get into the banking sector, which was very prestigious at that time, and started to climb the career ladder. However, work was just work – it didn’t bring any pleasure, required a lot of effort, and at some point, began to conflict with my studies. For a 19-year-old teenager, it wasn't an easy decision to leave a career in favor of studying. Nonetheless, I had a gut feeling that the place wasn't right for me. In the same year, by another stroke of luck (at this point, I was already beginning to doubt the concept of "randomness"), my classmate offered me an opportunity to try myself in the field of Telecom. There was a new Internet provider in our city, and they needed young, motivated individuals. In the blink of an eye, the next six years flew by. During that time, I gained invaluable practical experience and learned everything about networks – from building, to designing and implementing. It was during this time that I was introduced to web development. While I had some experience with writing desktop applications, web development was an entirely different story. It's fair to note that during those years, the concepts of backend and frontend were not as prevalent as they are today. Applications were isomorphic, with no clear separation between the two, mainly due to the limited technologies available at the time. There were no modern JavaScript frameworks, only a few libraries like jQuery. However, there was a need for development – the company had several resources (a billing system, a bug tracker for technical support, and others) that required maintenance, which became part of my responsibilities.

Everything went on as usual; however, sooner or later the current position had to become too small for me, I realized this later. Being a part of a group of amateur enthusiasts, I had many friends from the community in my social circle, just like me. So, it was not surprising that at some point, friends approached me with an offer from a not very well-known Moscow company. Even the geography did not bother me, as they were ready to work in a remote format. It was extremely difficult to leave my current place; I had dedicated 6 years to the company, which, at that time, was not a very long period, and I had been with them almost from the beginning until they became the most popular local operator. However, I understood, rationally, that I was a programmer, and sooner or later, I would have to step over the threshold and move on towards my professional place.

From that moment to the present day, all my work has been based on the principle of working from home. It's worth noting that the attitude toward remote work in those days was extremely ambiguous. Upon hearing that you worked remotely, reactions ranged from extreme surprise and slight contempt (as working at home was often associated with something very mediocre) to envy (as others deemed it a dream job). Having worked in an office for many years before transitioning to a remote format, I had a basis for comparison and I was certain that my efficiency as a developer was much higher in a remote setting. I often had to defend this stance, and my only trump card was the results that I produced—there was simply no other way to prove my effectiveness.

I couldn't just sit at my desk for 8 hours and go home with a calm soul; this was a privilege of office workers (and I mean no offense here; I respect those who prefer the office format, and I am not against it—everyone can decide for themselves. But, honestly, there are certain bonuses for onsite employees). Additionally, for a long time, it was believed that the salary of a remote employee should not exceed that of an office employee, which was extremely illogical. After all, a remote employee does not require office space, equipment, depreciation, food, and sometimes, not even taxes (as these employees were often not registered with the state).

My experience at the new company has been filled with a wide range of interesting experiences, allowing me to explore a variety of languages and technologies, from Shell to C++. Little did I know that this was just the beginning of my journey. Subsequently, I had the opportunity to work with many local companies and projects, both large and small, each with their unique organizational forms and approaches (few people were familiar with methodologies like scrum at the time). During this period, I interacted with frameworks and libraries that were popular at the time but are now largely forgotten, such as Backbone, ExtJS, CoffeeScript, and numerous others.

In 2015, I joined a small Brazilian company as a Web developer. Although it is now commonly referred to as Fullstack, this concept was not particularly widespread at the time. Here, I primarily worked with Java, which I was already familiar with, and also had my first experience with AngularJS v1 in a commercial project. This marked the beginning of my journey in the international development market.

A year later, in 2016, I had the opportunity to work with React v0.13 in a Dutch project, and I immediately noticed the difference from AngularJS, which greatly resonated with me. Since then, React has been my preferred framework (even though formally it's considered a library, not a framework).

The next couple of years were busy. Israel, USA, France – with each project, my horizons expanded, my experience grew, and my skills deepened. Then, one day, quite unexpectedly, another recruiter reached out to me. As they say, there were no signs. It turned out that the recruiter handled bespoke orders in the Russian Federation and the former CIS for some of the world's largest companies. And this time, the client was Google. Unfortunately, the search had been ongoing for several weeks, and thus far, no candidate had been able to pass the screening. I had no idea how the recruiter found me, but she already had my resume and offered me the opportunity to try my hand. Subsequently, I underwent a series of interviews, completed several test tasks, and held discussions with a representative of the client. All these stages took a considerable amount of time, more than a month. Then came the waiting period. As per the client's stipulations, several candidates who met all the technical criteria needed to be shortlisted for the position, from which the client would select one. Since I was the only such candidate, the position could not be filled as the condition of competition was not met. Two or three more months passed, and I had already started to forget about this challenge. However, the story did not end there. The recruiter was adept at her job, and a second candidate was found. Although the client had wanted, if possible, to have at least 3-4 more applicants, he agreed for two. Then came the lottery stage, and the client had to choose one. However, it turned out to be a difficult test for the client himself. Finally, a decision was made. The client could not refuse either of us and took both.

One of the mandatory conditions was to come to the USA for onboarding at Google headquarters and work onsite at first. After receiving all access, passes, equipment, and completing all corporate trainings, it was possible to return to a remote format. I must admit that I was not particularly excited about the idea of flying halfway across the globe for onboarding and onsite work. I had been advocating for remote work for years, so this presented an internal conflict. Obviously, this could not be a reason for me to refuse the opportunity, but it took time to convince myself of this. Then came the offer, documents, a visa to the States, a flight across the Atlantic, work in Silicon Valley for a considerable period, and finally, a return flight and the transition to remote work. My American trip deserves a separate article, which I will write another time. I will only note that it has become another key event in my career. Nothing boosts your confidence in your abilities more than being recognized as an expert in the world's largest IT company. I spent the next three years in an active phase here. Although my official position was Senior Frontend + Frontend Architect, I had to progress from being a newcomer to becoming an experienced employee. During this time, I gained valuable experience, broadened my horizons even further, and discovered new perspectives on development approaches as a whole. I had to re-engage with Angular, this time working with the latest versions. This was a particular feature here; the corporation was adamant about using only its own products.

For internal projects, any technology could be used, without any loyalty to React, though for public products, only Angular or Polymer were used, and it had to be this way. It is worth noting that Angular has significantly improved, but it hasn't changed my preference for React.

After some time, the initial "wow" effect started to fade, and I realized that advancing my corporate career further would require relocating to the United States, a privilege only accessible to full-time employees with a Green Card. As a contractor, I had limited opportunities, mostly requiring relocation, which I had never considered. Subsequently, the global political situation escalated, resulting in the blockage of work from Russia. I faced a difficult decision: to leave or stay. I chose to stay true to myself and remain at home. Although my superiors had no plan to terminate my employment, I am officially listed in the corporation, unable to perform any work activities until the global situation changes or I decide to relocate. I see this as a closed chapter in my life, and perhaps it's for the better. I started feeling discomfort from hitting a glass ceiling, uncertain if I could break through it or willingly depart, as was necessary, a realization that has become clear to me now.

The experience I have gained over the past years is invaluable. Looking back, I wouldn't want to change anything. Now, I am an independent expert, and I participate in new projects. My perspective has changed, and I understand my strengths and weaknesses. When choosing a new project, I can determine in advance whether it suits me and, equally importantly, whether I will be useful there. Only when both conditions are met can there be mutually beneficial cooperation.

Nevertheless, over all these years, a vast amount of professional information has accumulated in my mind, seeking a way out in various ways. Some of it leads to new beginnings, startups, and open-source projects. From time to time, I am asked to provide mentoring or to evaluate candidates. And this blog. I decided to start it in order to share my experience with anyone who is interested.

My telegram channels:

EN - https://t.me/frontend_almanac
RU - https://t.me/frontend_almanac_ru

Русская версия: https://blog.frontend-almanac.ru/-fBhYLntgn3