Lessons from my first software engineering job

Lessons from my first software engineering job

First steps from freelancing to leading large projects

In this article I want to share thoughts related to the first year in my first engineering job. It was a transformative experience. I was freelancing before but being a part of the team building ambitious projects turned out to be a lot different. Lessons described here apply to getting this job, surviving in the unknown and getting the most out of it. Some things were different than they would be today as at the beginning I was working primarily in the office.

The first company I worked for was focused on bioinformatics and biotechnology. The overarching idea was to bring personalized medicine to cancer patients. We believed we could develop world changing therapies and bring comfort to millions of suffering people around the globe. Fascinating idea, right? Such ideas attract exceptional people and I had a chance to learn from them.

If you like the company, just apply

I first heard about the company at a job fair in my city. I saw their booth while getting a coffee and really liked the graphic design and their messaging. I decided to go there and apply for a position. I mentioned this to a friend with whom I attended the event.

However, I went to talk with other companies first. I left my resume at stands of some Big Tech and well known companies. I was looking for the bioinformatics company booth but couldn’t find it. Later it turned out it was near the staircase I used only once.

When me and my friend were leaving the job fair venue, she asked me whether I talked with the company and how it went. I said I couldn’t find them and that we should grab something to eat. Even though I was starving, she convinced me to go back and find the booth.

At the time I was looking for something part time. It turned out they not only had no entry-level nor internship openings but full time was the only option. They spent some time talking with me though and asked me to leave my contact details, just in case. They called after a few days. The HR manager told me they enjoyed talking with me so much, they decided to give me a go and invite me for an interview. And the rest is history.

Stick to good mentors

I was lucky to work with a great senior engineer & product owner in my first project there. He was running the project using a very healthy flavor of Scrum. He had a head full of ideas, was very strong technically and open to new approaches. We had a great time working together.

He went to work on other projects but we still cooperated. When another senior developer that took over technical leadership left the company, I took his place. I was able to follow the lessons of my mentor (neither me nor him called it this way) and be successful in the role. We stayed in touch throughout the five years I spent at the company and provided support to each other.

We are holding weekly calls to this day, discussing problems, exchanging ideas and seeking feedback. His guidance was essential for me to get to where I am now.

Company growth accelerates your own

When I joined the company, the headcount was twenty something. When I was leaving, it surpassed one hundred fifty. Thanks to the rapid growth, I was able to step into new roles, take on more responsibility and bring more value. This meant higher salary, more influence and working on projects with bigger impact.

Take breaks

It may seem obvious, but the pandemic showed me that I forgot this lesson. Whenever I was at the office, my colleagues, especially my mentor, were dragging me off my desk to take regular breaks. This meant having coffee, playing table tennis, walking in circles around the building, having lunch, going out for ice cream or exploring kitchens and break rooms spread around the office complex. This may sound like we were hopping on any chance to avoid working. It couldn’t be further from the truth.

Thanks to their experience in office work, they knew the value of maintaining proper balance. I wouldn’t be so efficient and learn so fast if I didn’t have a chance to clear my head from time to time. Staring at a screen for eight hours straight isn’t healthy either.

When I started working remotely this wasn’t a problem because I was traveling and switching workspaces a lot. Breaks were natural. But when we went into lock down, I spent most of my time in my apartment. I wasn’t used to taking care of myself during work hours and had to learn it again. I started taking regular walks throughout the day. And I found out what a great excuse to do that is getting some ice cream!

Soft skills are as important as technical expertise

System design and coding is only a part of a software engineer’s work. You need to be able to communicate your ideas to different groups of stakeholders. You are expected to mentor younger colleagues. There’s plenty of product work, writing documentation, understanding requirements and talking with customers in our line of work. Don’t neglect non-technical skills. Time invested in developing them pays off. I was told that my choice to grow this side of me helped me get subsequent promotions.

Take responsibility and you’ll grow

I started from the entry level position and ended up with an offer to become a software engineering director for the company. This path was marked by me taking additional responsibility and delivering on expectations.

Good managers expect you to be proactive, grow your influence and help others. When you see an opportunity to help someone, take it. You can get visibility and show your skills in situations different from your daily tasks. Because I actually cared to help whenever I saw space for my contribution, I proved that I can be relied upon.

More responsibility generally means higher pay, new challenges and more satisfaction. If that’s not the case, you know you should be looking at something else!

Share knowledge from the start

You may think that as an entry-level engineer you are not yet fit to teach others. The reality is that you had a chance to learn the newest technologies and novel ways to solve problems. You can teach not only people on and below your level but also engineers much more senior than you.

Because of my freelancing experience and my love for frontend development, I surprisingly found that I have an advantage over others. I wasn’t one of the best engineers but I was one of the best at the company in developing client-side applications. I was quickly encouraged by my mentors to run some internal workshops.

This idea later evolved into me speaking at multiple tech conferences per year and running even more workshops. And that led me to writing this blog.

Interview regularly

Even if you feel great at a particular company, it is essential to know how the market values your skills. Because of that, from year one I was regularly interviewing for new jobs. This gave me negotiation power but also educated me about the market. I used knowledge from these interviews to improve our internal recruitment processes and programming tasks used to screen candidates. Keep in mind that I stayed at the said company for almost five years.

If you want something, ask for it

Whether it’s salary, work terms, extended time off or transfer to a different project - make sure you ask before you get frustrated. I gained a lot by being direct with my ideas and gently asking for the stuff I thought would improve my experience at the company. Most of the time I could justify it by bringing more value to my employer in the long term.

After I read The 4-Hour workweek, I knew I wanted to work remotely. I got prepared, improved my asynchronous communication, outlined pros and cons and set up a meeting with my boss. I became the first remote employee by asking and clearly stating the value of a proposed change.


I know, you’re probably tired of hearing that you should take care of your body. Health was a never ending discussion at the office. Perhaps because we were working in the medical field, people were brutally aware of the science related to exercise. I was constantly asked about my training goals. One colleague, when passing me in the corridor, always said one thing - “How is your triathlon prep going?”. And I never mentioned any desire to do it, it was a subtle push to start thinking about it.

So was I bullied into working out? Not at all. I felt a lot of support and all the knowledge I needed was available during coffee breaks. I had a history with professional sports (Judo) and I ran a marathon a year before but lacked balance and routine. I ended up regularly working out in the office gym before, during or after work. Motivation was all around.

Depending on when I did it, it served a different function. Doing it before work helped me to get up to speed and think better. Exercising during the work hours was the best way to take a break to later push through the problem that felt impossible. And working out in the afternoon turned out to be the best way to reset and transition to personal focus for the rest of the day. I defaulted to doing a light work out just before lunch, splitting the day in two. Sometimes it felt like I was doubling my productive time.

I am happy about having motivation and ability to take care of myself during this time. I was spending a lot of time working and learning new things. Being able to keep my body in check was a blessing.


As you can tell, I really enjoyed my first regular job. I wish everyone to have a chance to work in such a growth-enabling and friendly environment at the beginning of their career. If you had a less pleasant experience, I hope you learned something from mine.

I’d be happy to hear your stories and thoughts.

Did you find this article valuable?

Support Karol Horosin: AI, Engineering & Product by becoming a sponsor. Any amount is appreciated!