We’re going to tell you the story of Ruslan, who worked in the oil industry in Russia (Ufa) but left everything and moved to the US. He repaired household appliances and drove trucks, then learned Java to become a programmer.
How much is the average salary of programmers in the US? It depends on the company but juniors earn an average of $50-80k/year, middles typically get $80-110k/year, and seniors get over $200k/year.
Hi! I’m Ruslan, 39 y.o., now I live in Miami and work for Freddie Mac as a full-stack developer. This is my success story — how I changed my country of residence and profession.
How it started
I didn't even think about programming.
At school age computers were very rare — my family didn't have any so I only could use them at my friends’ places. For me it was all extremely exciting because we were doing some cool stuff in DOS and playing games.
I got my first own computer when I was a student at the Ufa State Petroleum Technological University (USPTU). We were taught Turbo Pascal, which was extremely interesting for me. I was trying to understand how a computer works, what programming was in general, and how functions and variables work. I thought I comprehended Turbo Pascal quite well during my university course but we didn't write a single program in the end.
Right after graduation I was appointed to an oil refinery and worked there for almost 12 years.
Moving to the US
In adulthood, my wife and I began to travel a lot. We often went to Thailand, usually for over a month. We came there, settled in the areas where Thais lived, and dip ourselves into the local flavor. Such travel greatly broadens the worldview — and this is especially noticeable when you return home. So at that time, we began thinking about how cool it would be to live somewhere else. But I was still working at the oil refinery and was jealous of guys with laptops who were not physically tied to a certain place. Probably it also had laid the foundations for my further desire to pursue IT.
It so happened, that my wife, our daughter, and I moved to Miami about six years ago. We left our old life behind in Russia.
I have good English skills. The reason for this was my friend from the university who studied only in English before. I guess I was a little jealous of him and wanted to speak at the same level — especially since English courses at my university were pretty decent. Eventually, we were the only ones in our group who defended our thesis in English. My wife moved to the USA with almost no knowledge of English but she attended a lot of courses here.
When we moved, at some point I even thought of going to exercise my profession, so we considered states with a large oil sector, for example, Texas. I applied my resume there and went through several interview stages but I got rejected and never figured out why. Now I'm glad it turned out that way. It allowed me to find something I enjoy doing today.
After being rejected, I tried out other options. For example, I got a job at Samsung and started repairing large household appliances (refrigerators and washing machines). I was generally satisfied with this job — I didn't overwork, I stayed at home in the evenings and didn't get very tired. But there was one big disadvantage — I didn't get paid much.
To provide for my family I became a truck driver. During my work, I traveled all over the country while receiving a decent salary. You drive a lot, you're making good money, don't overwork, and don't have to think about anything. But my wife told me that I better stop doing this because it's not what I should strive for.
First steps towards the development
It was my wife who insisted that I should try my hand at testing since they say it’s the easiest entry into the IT industry. Besides, she was also doing a testing course.
At first, I resisted, we even argued about it. Eventually, she won, and when I decided to quit truck driving and start studying, my wife had already gotten her first job. It allowed me to focus on my education process without worrying about money.
I started reading articles about testing one by one, learning automation, and looking for the right technologies for work. To write basic scripts you have to know a programming language (the most common are Python and Java). I didn't care what to choose since I didn't know anything and learned almost from scratch.
My choice fell on Java, I just came across JavaRush while searching, went on their website, and started reading. I didn't understand anything at first but I was incredibly curious. It was easier for me because some of the code examples were not only in Java but also in Turbo Pascal, which I studied a bit at the university.
While learning Java I realized that I didn't want to be a tester, I really liked programming and I wanted to write code. My wife supported this ambition of mine. The growth potential in programming is much higher. And most importantly, if you realized what you really like, then that's exactly what you should be doing.
I studied programming for 12 hours a day. I set the alarm clock for 7 a.m. and finished studying at 7-8 p.m. I was solving dozens of tasks in JavaRush, reading the theory, and figuring out how everything works. At first, it was almost impossible to study because I wasn’t used to such a cognitive load, and after an hour of studying, I desperately wanted to sleep. But gradually my brain got used to it and it became much easier to learn.
I finished the JavaRush course in three months, all 40 levels! Then I started looking for a job but it turned out that my knowledge level was insufficient to get a job. It was necessary to know additional technologies, at least Spring Framework and databases.
I had to study for another six months. That time I spent on Udemy courses: Spring, the basics of programming, and related technologies.
Interviews in the USA
I had to go through plenty of interviews to learn how to succeed in them. At first, I had no idea what questions would be asked — I was able to solve tasks but I hardly knew the theory.
I was asked about the differences between the 8th version of Java from the previous ones, the basic programming principles, and design patterns. And all of that was in English. I knew the language well but still felt very uncomfortable.
Interviews required different tasks — flip a string, arrange arrays, etc.. My experience of solving various algorithmic tasks helped me out since I didn't prepare for the interviews. Although I know many websites with reviews of different approaches and tips on how to behave during an interview. I didn't know all this at the time and I often had to reinvent the wheel.
How does a programmer live in the USA
When I got my first job I was over the moon. After all, I have come a rather difficult and long way to find myself, to get my dream job. I mean, by that time I had already moved to the USA, got a job as a programmer, what could be better?
At first, I had impostor syndrome. I always thought that it was impossible to become a programmer without a degree. So I broke another stereotype which I'm very happy about. It turned out that you can believe in yourself at any age, fill your head with knowledge, and make a dramatic career change.
I struggled with impostor syndrome for about a year. I think I defeated it when my company showed me that they didn't want to let me go. For example, when I got a few job offers from other companies, my management did everything to beat them. I mean, they offered better conditions or a higher salary so that I wouldn’t leave. I was really flattered. It made me realize that I was a valuable asset to the company, I fulfilled all the duties and I was worth something in the job market.
In all the companies I worked I was never thrown into the deep end of the pool. As a rule, you barely do anything for a month — you just read a lot of documentation, go to meetups and listen to the team, read the code. Step-by-step you just get acquainted with the project and the team, immerse yourself in the environment and learn the necessary documentation. The whole immersion is a very smooth process and you get the first work tasks only after a month of work.
My first task when I was a junior was to compare two Excel files and tell how they differ from each other. I then thought that I had spent almost a year studying and solving thousands of algorithmic tasks, and all they asked me to do was compare two Excel files. Unbelievable! But over time I was given more serious tasks, and I could make some changes to the code.
I would like to note that I’ve always worked in American companies with more than a thousand employees. With such a scale, companies have the resources to gradually include all new employees in their work processes. I think that in small startups everything is entirely different.
Now I use Java a lot at work — we have 10 Microservices written in Spring Boot, they all run in Docker containers, plus we use Kubernetes. I use OpenShift to observe, trace, and monitor Microservices. It's all in the backend. In the frontend we use Appian, a completely new technology for me. I knew almost nothing about low-code, and here we practically don't write code but just manually drag objects and witness all the processes that are happening on the website in real time.
I really like coding and I’d like to keep doing this. Speaking about further development, maybe I’d switch to architecture. But in general, I enjoy programming, so I don’t want to switch to production yet.
I'm still learning every day. My company has corporate access to Udemy, so I steadily take courses there and study new technologies. It's cool that my brain learned to acquire information fast while I was learning Java, and it hasn't changed much since then.