Four years after changing career to a software developer

Katarzyna Nowak
RSQ Technologies
11 min readJul 1, 2021

--

Right now I am a developer with more than 4 years of experience in Frontend Development. Five years ago I could barely see myself as anyone connected with IT. Before all that happened I had a completely different career plan. Well, it did not work out as I expected. I quit my job, took a break and started to wonder what exactly I could do in my life… One of my friends asked me ‘Have you ever tried coding?’. I burst out laughing. I really did not think that it was going to work out, but at least I could give it a try. It turned out that this is what I was looking for.

Before

After finishing high school, I wasn’t sure which field of study to choose. In the end, I chose Administration at a university, that is one of the best in the country for law studies. All in all, it was even fun to finally understand what was going on with all these paragraphs, ordinances, laws, the legislative process and many more things. I cannot deny that this knowledge has been very useful to me more than once in my life. After graduation, I had to make a choice where I would work. I decided to work in a court because I thought it would be an interesting, but also very useful job. After a year, I knew that this is just not for me. The work turned out to be much less creative than I had imagined at the beginning. Work did not give me much development prospects. I was very frustrated. I devoted a lot of time to education and work experience in which I did not feel well. I decided that I cannot spend any more time on something that does not give me satisfaction. I started looking for an alternatives. Of course, it was not an easy decision, but my inner compass told me I needed to change direction.

Yes you can

I wanted to change everything, but I had no education, experience or much help. My friend told me where to find some tutorials, try each of them to know what exactly I want to learn. I started with Codecademy courses. They were easy and friendly. I could get help from other users and of course I had much much fun. After a week or two, I devoted all my time to tutorials and reading documentation. I was determined to become a software developer, and after a few weeks I knew it was going to be frontend. It was not easy, especially that most of the things I discovered by myself, like developer tools… Yeah, that was a life changing experience.

First recruitment interviews

It was super refreshing to start learning new things. It was some time since the last time I gave myself some goals to achieve. Gathering knowledge outside of school is a totally different experience than during school education. Everything is based on your focus and motivation. I chose a company which I wanted to work for, I learned all requirements from a list of must-haves for the position I wanted. I applied to multiple other companies before going to my chosen place. First interview was a complete disaster, but with each job conversation, I knew more and more and felt much more confident. When I was going through the recruitment process, I asked as many questions as possible. Often I met people who willingly explained everything to me and gave me great advices. I learned a lot thanks to many recruitment interviews. In the end, I did not get my dream job, but honestly I still could not be more grateful for that experience. One of the recruitment interviews was memorable. I sent my CV to every single job offer, no matter if they were looking for a junior, mid or senior (I know some of readers going to hate me for that). I was more than surprised when somebody called me from a company in which they were looking for a senior…

Senior Front-end Developer Interview

I was extremely nervous when I was going to the interview. I was even thinking there that there was some misunderstanding. Well, the first part was HR and I think it was not bad. Second part was a technical one. The interviewer told me from begging that they know that I do not have commercial experience, but somebody decided to give me a try and that the questions they prepared for me are on junior level. That part was not that hard, but of course I made a few mistakes. That person had like an hour-long conversation with me about why I answered like I did, no matter if they were right or wrong. He explained me a lot things I could not understand or did not know. It was like an 1 hour tutorial based on my knowledge. They were not really testing my knowledge but rather the way I think. Fun fact is that it was still not over. Third part was a conversation with the boss and you should see my face when they told me about it. I had to wait like 15 minutes for the third part…

What are you doing here?

The third, and luckily last, part finally started and the first question was: ‘What are you doing here? We are looking for a senior developer. Do you meet all the requirements on the list of requirements? I am looking at your CV and I have my doubts’. Well I would lie if I would say that I was not shocked. I collected my thoughts and I have said that I did not add anything that would not be true. Someone decided to invite me to that interview so why would I refuse. I came in for an interview and was doing my best. He also asked me about why I decided to try a software career even though I did not have any education or experience in regards to IT. I told him that I am very determined and there must be a reason why they decided to invite me on that interview. I can not be that bad right? I told him also that even if I will not get that job I am already satisfied because I learned a lot at that technical part and for that I am very graceful. Well… I did not get that job. He said it right away that they were looking for someone with slightly different skills. But I also heard that he really likes my determination and will definitely find a job as a software developer. I knew that I was getting close to my goal.

First job as a developer

At the beginning of my job search, I was primarily focused on learning. During recruitment interviews, I said that I could work for free as long as I learn as much as possible. However after all, I was offered a salary in my first job. The beginning was tough. Developing features looked different than at home: large codebase, sprints, pull requests (PR), team meetings, estimating tasks well - that was a whole new level. But as a junior I could always ask about everything or look for the answer. At first, I was very flustered by the fact that I didn’t know so many things and that I made so many mistakes. After all, I entered a completely different world and everything in the company was new to me. I had to take the time to understand certain dependencies and actions, but after a while it all made logical sense.

First few months as a developer

The first tasks that were assigned to me were quite simple and I tried to implement them as best as I could, but still I had many comments, improvements and questions on my PRs. I started to feel like a bad developer, but I had a chance to speak with a friend who told me to treat it as training. In fact nobody wanted to prove to me that I am not good enough, they just wanted me to learn to write better and to bulletproof code. If I did not agree with the comments, I tried to voice my doubts. Usually, we considered the best solution together. After some time, there was a visible progress with the quality of my code. I also started to work as a reviewer and then I had a chance to understand teammates` code, look for bugs but also ask about solutions, code improvements and other perspectives. I learned a lot from other people’s code.

That`s me at RSQ Technologies :D

Few years as a developer

After four years of work in the profession, the time has come for a brief summary and setting myself the rules that I intend to stick to in the future, as well as admitting what mistakes I made while working.

First there was a few simple revelations like:

  • I always have a dev console opened. I was not always like this. Before when I was writing code with a closed console sometimes I got feeling like I was on strike. I produced some much and everything looked fine and… ou… project is not building… ou…. the console is all red…damn I crashed the browser. When did that happen? So now the open console for me is a must have.
  • Looking for a bug and trying to reproduce it, yup that is my kind of stuff. When the path is not always clear and sometimes looking for the source takes much longer than to fix it. But I also had a few situations, that after I spent long hours looking for a bugged line I could not fix that easily. I refactored code multiple times, changed conditions and even if I thought I understood what was wrong, the bug still appeared. My frustration was reaching its limit and I was slowly considering a career in a local supermarket. Then I decided to change background-color to red. It did not change…Why? Because this whole time I was looking at a production version and not my local one…Thanks to that ‘background-color: red’ is also one of my friends now.
  • Ask about everything. The more I asked the more I knew. If I could not understand something, after a while the answer appeared by itself or I would spend many hours searching, because I just couldn’t let it go — but it was worth it. There were also aspects that remain incomprehensible to me to this day. Even if I read about them and try to comprehend, I cannot say I understand those things completely. Like CSS. After the first month of learning, I thought I would be a CSS master because it is super easy… Well, now I think I will never fully understand what is going on there… but the point is that I know that it is not my direction. It is good to know that I do not have to understand absolutely everything.

Then with the experience came more serious rules:

  • Too much logic and code in one task is usually a problem. It is hard to write, check, improve and merge too big tasks. Often it is much better to split it into smaller bits. There is also a risk that I end up choosing a wrong implementation way and do not understand a problem correctly. Better to talk to a team leader and consult the best solution. With big tasks there is also a problem that it might be not the only one big task in progress in the project. Merge conflicts are something I try to avoid at any cost. I remember that sometimes it took me hours to fix my branch because in the end nothing was working correctly.
  • Mistakes are the best teacher. Initially, I was very stressed when in my part of code was found a serious, hard to detect or simply stupid bug. The work of a programmer requires creativity, so even with the best efforts it is impossible to always avoid mistakes. Bug fixing is fun, especially when there is a bug where I have absolutely no clue about what is wrong. Of course I like only those which I was able to fix. When I finally find the wrong line of code, I like to see who made that nasty bug, that turns out to be me.
  • Refactor is always a good idea. No matter how much time I spend on some code I know that sooner or later I will come back to make it even better. In this profession, being up to date is very important. Even if I write some code that seems absolutely great to me, there will be changes sooner or later. I will learn how to write something differently and I will want to improve some bits and pieces. I wish I had time to improve each functionality or component from time to time.
  • Find time to self educate. We have knowledge sharing (KS) meetings at work, as well dedicated time for self development. KS
    is a meeting where team members share their knowledge. Sometimes we sit together to watch tutorials, conferences or discuss problems or solutions. I have had better and worse times when it comes to my own education. During all this time, as a software developer, I have learned that when I have lack of motivation, it is better to read or take up lighter topics, than to force myself to study hard all the time. Among such lighter topics I include such matters as: How to make code review, what to do before I create a PR, how to names functions correctly etc. Remember to never stop learning and If you have a Knowledge Sharing never miss it.
  • Impostor syndrome. Yup it hits me from time to time. Every developer I know tries to solve this problem in a different way. Sometimes I get the thoughts that I’m stupid, that I can’t do anything and actually I don’t know what I’m doing in this job. Everyone around me is super smart and they look at me like I’m a moron who doesn’t understand anything. I feel that I work too slowly, that my code is bugged, that I have a lot of comments on my PRs. Later it gets to me that if I were such a terrible developer I would get fired right? So if I feel like there is too much stress, pressure and other negative emotions around me, I know that I need to find a solution. I usually need to talk to a coworker, mostly it is my leader because thanks to her I know ifs it’s only in my head or not. I get some advice and take a few days’ break and then I am ready to code again with renewed strength.
  • From time to time, I talk with my leader about what I like to do as part of my job and what I do not. If there is possibility to concentrate on the parts which give me more satisfaction and avoid those which I am not the best at. I am really lucky that I can speak openly about it. Sometimes it is good to listen to the opinion of someone standing a bit to the side. How I deal with problems in someone else’s eyes. I often learn that some things are better than I thought and with some I have to work on.

Best decision ever

Summing up all these thoughts, I know that the decision I made 5 years ago was one of the best decisions I have ever made in my life. It was hard, but this effort gave me a lot of fun and satisfaction. We spend a very large part of our lives at work. If you feel that the industry, profession or work culture does not suit you, believe me that it is worth taking the risk. No matter how much time I spent on something, that turned out to be a complete flop (yup 5 years at university) there is never too late to change. I hope you found my article helpful or at least you enjoyed reading it. With the right commitment, each of us is able to achieve our goal.

--

--

Katarzyna Nowak
RSQ Technologies

Frontend Developer at RSQ Technologies, Poznań, Poland.