Summary

I got Commodore 64 when I was 10. So I completed masters in software engineering. Started PhD. Quit. Spent few years working on Semaphore, a continuous integration service used daily by thousands of developers around the world.

In March 2016, I became an independent consultant.

Trigger

It all began when I got Commodore 64 and latter Commodore 128. I was 10 and C64/128 was long discontinued, but that didn't matter to me. It was an amazing machine.

The machine came with a book called "What can C64 do?", that I still have on my book shelf. It was a guide to the Commodore BASIC programming language. Commodore 128 had a diskette unit so I figured out how I can make programs and save them on a diskette.

Back then I was at primary school and it was popular to have a notebook with questions. You would pass the notebook to your friends and they would answer the questions. I developed my first program to replace the notebook. It was basically a Q&A wizard and it would save answers on a diskette. No one ever used it.

First Mastermind Group

I was lucky enough to have 3 friends that lived close by and shared my interest in computers. At each point in time, one of us had a solid computer. Commodore 64/128, i386, i486, machines with Cyrix processors, first Pentiums, AMD Durons... The group had it all.

We used to go to a local computer club with notebooks and to write down instructions for installing programs, games, cracking... We figured out how to format a disk, reinstall Windows and set up drivers.

At one point, a friend and I were "summoned" by the primary school principal to fix his computer (that wasn't broken in the first place).

Together, we learned basic things about computer administration and fixing common problems. Today, 2 of us are software engineers and 2 electrical engineers.

High School

Early on I decided I want to "do computers" in my life. That's why I went to the Technical High School for computer technician.

There, I learned basics about computer hardware and programming - Assembly, Pascal, Delphi and C.

What's even more important, I was surrounded by people that liked computers. This was an era of custom build computers, overclocking, games and website building.

I learned some Java on my own. We had a graduation exam and I implemented a program for fitness studio in Java. I was very proud about that. Not long after, I found out that it's not a good idea to implement a program as a single, 2000 lines of code class.

I completed the High School with an award for the best student in generation.

University

After High School, in 2005, I continued my education at the Faculty of Technical Sciences, University of Novi Sad, Serbia. I got my bachelors degree in computer science in 2009, with a average grade 9.52/10.00 and my masters in software engineering in 2010 with an average grade 10.00/10.00.

PhD

At end of my masters studies, I was approached by the university staff and invited to stay at the university as a teaching assistant and a PhD student.

I enjoyed teaching and working with students. I was an assistant on several software engineering related courses (basics of software engineering, patters, modeling).

On the other hand, my PhD studies didn't go so well. It was hard for me to find a topic that I'm interested in. I liked biology inspired computer systems, artificial life and intelligence, but I was working in the software engineering domain. Also, I wanted to develop a real world systems, but I found out that the academia values papers more than code.

Since I was unhappy about my slow personal development, after year and a half I quit my PhD studies and the position at the university.

Rendered Text

I was lucking enough to quickly find a nice place to continue my career. I joined Rendered Text in February 2012 and stayed there for the next 4 years.

When I joined, Rendered Text was a Ruby on Rails oriented consultancy. I worked on several client projects. I quickly learned how to find my way around in a few years old code base.

At the time, part of the team worked actively on Semaphore. Few months after I joined the company, Semaphore was officially launched. After a while, the whole team switched to Semaphore and Rendered Text became a product focused company.

I had an opportunity to work on almost all parts of Semaphore's code. I worked on core parts, such as the subsystem that creates and schedules builds and deploys, the logging and metrics infrastructure, the user permissions layer and the system for managing features. I also worked on the user facing application and implemented new major features such as organization support and Test Boosters.

As Rendered Text and Semaphore grew from 4 full time engineers to 18 engineers, designers, writers and other makers, I took the role of a lead engineer. I supported and guided a team of 4 other engineers, held 1 on 1 meetings and helped new team members get up to speed with our code base.

I also wrote several articles for Semaphore Community and talked about our experience developing Semaphore on a conference.

I'm very grateful that I had an opportunity to work with Rendered Text team, to hack on such great code base and see Semaphore grow from an MVP to the best CI service in the world, used by thousands of developers around the world, every day.

Today

In March 2016, I became an independent consultant.