by Ana Ćakić
Vladimir Novachki is the Chief Technology Officer (CTO) at Cosmic Development. With over ten years of experience in the IT sector, Vladimir has a lot to say when it comes to building high-performance, scalable web applications which can handle hundreds of thousands of real-time users. He is directly involved in the implementation of solutions for large enterprises, some of which are ranked in the top 5 websites in the world in their field, such as Little Things and AFV, among others. Vladimir is also the creator of one of the first fully Macedonian mobile applications. He is genuinely passionate about hardware prototyping and blockchain technology, as well.
Curious about his success, we asked our CTO to share his story and experiences – how did he make his rags-to-riches professional dream come true, what were some of the key steps in his career to this point, and what has he learned along the way.
In this interview, Vladimir also talks about the learning process. Many young people today are keen to dive into the ocean of the IT industry, but they are unsure of how and where to start. Should they learn in computer classes or on the internet? Or should they perhaps enroll in some specialized programs? Vladimir explains what is the best combination in his opinion and advises his future colleagues to be persistent and keep going, to stay updated with the latest technologies and to try not to focus on the code alone, but also the bigger picture.
Employee Recognition Awards Ceremony 2018
Your path from intern to CTO is more than inspiring. Could you please tell us how it all started?
Like many great things in life, this one started by chance. One of the Cosmic Development’s founders gave a speech at the university, and I remember being so inspired by what he had to say about the IT industry. I instantly recognized Cosmic as the right place for me and decided to apply for their very first internship program. It turned out there were more than 50 undergraduates who applied for that program as well, but I was fortunate enough to be one of the four chosen interns. We were given the opportunity to work on real applications used by lots of people. The whole experience was truly priceless.
After finishing the internship program, there was mutual interest between the company and myself to continue working there as a full-time employee and to keep working on those projects. Over the years of continuous learning and improvement of my skill set, I was empowered to nurture and grow my career in the company and consequently became the CTO. I guess I was lucky enough to find the perfect fit company right from the start.
Being a CTO is a much more responsible position than the ones you held before. How do you cope with the challenges of your job?
As CTO, I am responsible not only for the technological requirements and operations but also for managing and providing guidance to the rest of the programmers in our company. CTOs are required to have extensive knowledge of the technologies and processes of software development, along with a company’s strategy, and I’m doing my best to ensure that Cosmic Development is always at the top of the game. Another set of my responsibilities include regular communication with all of our clients and pretty frequent business trips.
However, all of that comes naturally, because as a software development company, the business strategy largely depends on the technology we use, and I feel confident in the choices we (my team and myself as the CTO) make in that area. We work with big clients who are in the world’s top 5 in their fields, such as Little Things, AFV, and Rumble. Together with our teams, I am directly involved in the implementation of solutions for most of our clients and make sure we deliver high-quality products that contribute to our clients’ success.
Vladimir Novachki, CTO and His Team
The openness and the ease with which you talk about work is impressive. It sounds like you truly love what you do! When did you discover your passion for programming?
My interest in programming dates back to my elementary school years. I believe it was 2001 when I came across a book called “Introduction to Computer Programming (Computers & Electronics)” by Brian Reffin Smith. It was an illustrated children’s guide to computer programming, and I was hooked instantly. I remember learning about the basics of the programming language BASIC from it. My access to the Internet was quite limited at that time, so a “no computer needed” programming book, or in my case – “no internet needed” guideline was much appreciated.
In addition to a lack of Internet access, we didn’t have informatics at school at all. Still, we had magazines like “PC Info” and “Plugin,” so thanks to those publications, I’ve learned a lot about Linux and Visual Basic. Then I decided to enroll in high school specialized in computer science and learned about the architecture of computer systems, how to code in Pascal, how to use the environment of Delphi, etc. I also dedicated much of my free time to study HTML on my own, and in 2002, I created my first website. I used the premises of Internet Clubs in Skopje and a bunch of floppy disks to upload and update it. The fun thing is – the website is still alive, and you can check it out here. Just make sure to enable Flash in your browser if you wish to see it.
That really sounds exciting! What happened next?
My passion for computers and computer coding had reached a whole new level when I began university studies. I took a much more serious approach to programming at the Faculty of Electrical Engineering and Information Technologies. I learned a lot about advanced concepts – from the development of the application for the command line, web and mobile applications, some simple hardware modules, all the way to advanced hardware prototyping.
However, the process of learning and training did not end with my formal studies, but on the contrary – it gave me a sound basis for constant upgrading of knowledge and skills. I still keep learning with every new project I’m involved with.
Thank you for these insightful answers. But, if we want to summarize, what would be your advice to young people who want to go your way?
There is no magic wand that could make a top-notch programmer out of you (let alone CTO) if you are not a hundred percent dedicated to it. If you really want to succeed in this game, you better prepare yourself for continually expanding your knowledge and upgrading your in-depth understanding of the newest technologies.
My best advice to young people is to stay curious and open to new things. The era of being an expert in one technology is long gone. Nowadays, everyone who wants to call him or herself a good developer must stay flexible – those who get too attached to a specific syntax or programming language are doomed to fail in this ever-changing world of the IT industry. Young developers should try and focus more on concepts, structures, and algorithms. They need to see the big picture and to know how to connect all of the dots to achieve the best possible results.
How do you stay updated with news from the industry and the latest trends? What are your favorite sources of information?
There are many useful websites where software developers and other IT professionals can learn about what’s going on in the industry, dig up some helpful, practical advice, post a question to the community or share their thoughts and ideas with the world. Some of my favorites are the Practical Dev, Hacker News, Reddit, among many others.
I also like to read random articles on business and other less “hardcore” work-related CTO and developers’ topics. Sometimes the change of subject or better-said focus helps us escape the vicious circle of (same old) thought and see things more clearly when solving a specific problem. My favorite go-to place for such reads is, in fact, our blog as it offers some pretty great advice on things that are quite important but less considered in the developers’ world, like breaking a daily work routine, communication tips, and other soft skills advice.
Let’s stick to hard skills for a bit. If you have to name your favorite technology stack, what would that be and why? What tools do you find the most useful?
We should not be focused on one stack or technology. With the usage of microservices, we can break down the system into different services. Each service can be developed with the most appropriate technology for the problem that the service is solving.
If I have to choose one stack, that would be LEMP. Although it might sound outdated, the fact is that many of the world’s biggest websites are developed on top of this stack shows how powerful LEMP truly is. We should not forget that Laravel is one of the most popular web frameworks with the most significant community.
Web Summit 2018, Lisbon, Portugal
How do you see the future of software development and what directions should your younger colleagues take when it comes to new technologies?
When it comes to new technologies, there are a lot of different directions. We should be focused on technologies that can solve daily life problems.
For instance, electric scooters have completely changed the micro-mobility market. However, they are facing one big problem – the increased number of accidents on a daily basis. Technologies like IoT and machine learning can be used to solve this problem. All scooters can be equipped with GPS, accelerometer, and other IoT sensors. All collected data from these sensors could use machine learning to interpret the habits of their riders and notify the rider of dangerous practices. This is just one example where modern technologies can solve our daily life problems.
When we are talking about the future in the new technologies, we should not forget about blockchain. When I say “blockchain,” I do not mean Bitcoin and other cryptocurrencies. Blockchain allows us to store a large amount of data safely and can be a substitute for complex software systems. It can be used in any area such as banking, education, health, government, etc.
Any last tips (from the CTO perspective) on how to stay motivated and on track with career goals?
I firmly believe that having the right work-life balance is the key. No matter what you do, always look for a balance between your professional work and your free time. Taking time for yourself to do what makes you truly happy will give your brain a chance to reboot and prepare itself for new challenges.
If you are a programmer like I am, try not to focus on code alone, but work on your other skills as well. Those so-called soft skills or interpersonal skills will help you to deal with, let’s say, disagreements about unforeseen requirements, tight deadlines, and pressure to maximize productivity. If you are interested in this topic, make sure to read “The Clean Coder” and “The Software Craftsman” books. It could help you immensely.
Stay connected to people and keep building relationships. Open up yourself, do the networking, attend conferences, and meet-ups. Use every chance to introduce yourself to new people and always share your knowledge, experience, and ideas with others. Give back to the community what you’ve been given, and you’ll be amazed how far that can take you.