A tale of a software engineer: The beginnings

Published: August 12, 2017

It all started with Age of Empires II. Then Wordpress made me enroll in a computer science program at university where I realized I had a bunch of things to learn about software engineering. After 3 years of studies I gathered some real-world experience during student internships, got my first job as a web developer, failed to get another and ultimately landed a full stack engineer position at Zemanta. I learned a bunch trough this journey and cracked the code of "How to be a *real* software engineer?".

Now, for a more poetic version of the above excerpt just keep reading ...

Chapter 1: Pre-university years

My family got our first PC when I was about seven years old. Truth be told, I used it mainly for gaming. You know, AOE II and stuff. I’ve shown absolutely no interest in software development until I was fourteen or so.

George Byte's first PC

Rocking high fashion developer outfits from an early age.

Around the age of fourteen, I started to use the web more frequently. I remember being quite amazed by the websites of that era. They sparked an interest in me. I wanted to create my own website!

But my initial motivation quickly faced an obstacle. I literally didn’t know where to start. HTML, CSS, PHP, web hosting, domain names etc. were some terms that kept me up at night. Well, not really. I gave up because there was just too much to learn to get started.

Luckily quitting wasn’t that easy after all. There were all these amazing websites being developed that were constantly reminding me of my wish to create a website. So I gave it another try.

This time around I came across Wordpress. A pre-made website with simple install instructions. It was magical. It was all I needed. And I had my first website up and running in a week.

Many other hobby websites followed the first one. I was slowly learning web technologies like HTML and PHP by poking around Wordpress source code. It wasn’t too hard to do, but it felt like real programming. I liked the feeling. I liked it enough to let it influence my decision about what career path to pursuit once I’m done with high school. I decided to enroll in a computer science program at the Faculty of Computer and Information Science in Ljubljana.

Chapter 2: Engineering studies

Soon after starting my studies in 2010 I realized I knew almost nothing about the real programming. Luckily my solid math foundation from high school proved to be very useful when learning software development and I managed to get the hang of it rather quickly.

During my years at university, I discovered I really enjoy developing software. It didn’t matter what type of software - every project/ assignment got me completely involved after the initial resistance of tackling a new, unknown problem. Because of this, it wasn’t too easy for me to choose what field do I want to specialize in. So I kinda YOLO’d it out - web development seemed like a field that would see some serious growth in the years to come, so I chose it as my preferred career path.

This choice steered my decisions about which classes and projects to tackle in my last year of studies. I enrolled in a class which had us develop a project from start to finish. My team chose to build a web app to make learning history in primary school a more interesting thing to do. We did a great job and I got a recommendation from the lecturer for a student internship we had in plan for the last semester.

Chapter 3: Student internships

With the recommendation, I landed a paid internship at DRAGON Ticketing - a company developing ticketing and access control systems for sports events, concerts, art exhibitions etc. They offered me a full-time job after 10 weeks of student internship have passed. This was my first position as a web developer. I’ve customized our ticket selling platform to suit more than 25 different designs from our customers and learned CSS and HTML by heart in the process.

At the same time, I applied for another student internship organized by the faculty. I joined Celtra working on a project called “Using Creativity to Gain Practical Knowledge: Automation Testing of Web Applications”. My main task was to develop a style guide/ design pattern library published on GitHub pages.

I learned a lot about web development during these internships. The experience gathered boosted my confidence as a web developer. So it was time for me to move on and tackle new challenges …

Chapter 4: My first real job application

Joining a successful company as a web developer seemed like a solid next step. I applied for a front-end developer position at Outfit7. I spent 10 days (*cough* nights) learning AngularJS like a mad man in order to finish the interview assignment. I did pretty well at my engineering interview and my hopes were high. But it turned out I wasn’t the right “cultural fit”.

To be honest, I wasn’t too sad because this AngularJS hackathon once again ignited my passion for web development.

Chapter 5: JavaScript madness

I had a solid knowledge of writing software from my years in college, but I wanted to be able to call myself a real front-end engineer. Learning all the quirks and design choices of JavaScript seemed a step in the right direction.

I created a plan. I read a bunch of books about JavaScript and watched many video tutorials. I subscribed to RSS feeds of a lot of front-end related websites and I was reading their articles on my commute almost all the time. I was eagerly absorbing all the information about the technologies. And I tried to apply my new learnings to projects at work.

Chapter 6: LinkedIn works

The more I learned, the more confident I was as a front-end engineer. Once enough of this confidence accumulated, I changed my LinkedIn headline to call myself a front-end engineer. Many interview offers started to appear in my inbox. Most of them from companies abroad. I didn’t want to move so I turned them down. But one day I got an email from Zemanta’s tech lead.

Chapter 7: Zemanta

I got invited to an interview. A four-hour interview. I was scared because I knew Zemanta employed some of the best engineers in Slovenia. I was sure they would manage to crack my shell of a wannabe web developer and expose all my shortcomings.

Sure thing, this didn’t happen. I actually enjoyed the interview challenges and questions. I realized I know a lot about software development. Interviewers at Zemanta must have thought the same since they later offered me a position I gladly accepted.

I kept improving as a front-end engineer for the first year at Zemanta (AngularJS, front-end architecture etc.). After a while, I started to notice that I was reading less front-end related articles from my RSS feeds. At the beginning, everything was interesting to read about and learn. With time, however, less and less new stuff appeared in my RSS feeds. I realized I was slowly getting over JavaScript fatigue. I established a solid base of front-end know-how. And this foundation enables me to quickly pick up a new shiny framework/ technology if needed.

In order to progress further in my engineering career, I had to adjust my learning course. I wanted to expand my knowledge of web development from front-end to back-end and become a more well-rounded full stack engineer.

This meant I had to learn more about server-side technologies, APIs, software architecture, project research and management etc. And that’s what’s keeping me busy for the last few months.

Chapter 8: Keep calm and keep learning

I’m sure you managed to recognize the common denominator of my career path if you made it this far in the post. It’s all about passion for learning new things and experimenting with them. As the time goes by it becomes easier to distinguish between important stuff to learn and some overly-hyped stuff you don’t need to know everything about. Only then can you start to really enjoy the era of fast innovation and not worry about burning out as a software engineer.

If you find the content I produce helpful you can support my efforts by buying me a coffee or by tipping me via Brave Rewards program. Thank you!


Also, let's connect on Twitter (I have no product to push on you and my feed stays clean and interesting 😇).