1. Can you please introduce yourself and what you do?
My name is Krasimir Stoev and I am a senior software trainer and consultant. My career kicked off as a Junior Developer in an IT company that was dealing with the automation of processes in industrial complexes and factories. I then continued as a Middle, Senior, Project Manager, Software Architect, etc. During most of that time, I was training a lot of the new employees. There, I dealt with all kinds of projects - from software for electronic scales to large industrial facility ERP systems. Among our most notable clients were CHP Maritsa Iztok and Stomana. I was also involved in a number of startups, primarily as a tech consultant and architect. At some point, I got invited to teach at ITTalents - a training camp for junior IT specialists.
2. What brought you to ITTalents?
Due to the nature of my job I was meeting a lot of people - and one of them was Nickolay Tomitov who then ran an IT academy. They were working with Imperia Online - one of the biggest game studios in Bulgaria. Their goal was to create a course that would train people, which they would eventually employ. Soon after that ITTalents was born with the idea to provide fresh junior IT specialists to the industry. You see, finding high-quality personnel has always been an issue when it comes to software development. And I already knew that I could be a teacher since the new employees who were being mentored by me managed to quickly grasp the processes. As a mentor at ITTalents, I could see how happy my cadets were and how fast they were able to find jobs after the course - which convinced me to leave my old job and concentrate entirely on teaching.
3. Do you think that anyone can become a software developer?
To be a software engineer, some specific skills are required, but these skills are not necessarily included in tech education. For sure more people can become software engineers than it's currently suspected because the two main ingredients are logical thinking and natural curiosity that makes you dive deep into the subject. Everything else can be learned. And it is a myth that being highly-proficient in Math is a prerequisite. You just require a 7th-grade level of math. IT Talents is the proof that people of all backgrounds and with all kinds of personalities can become developers with enough discipline and motivation. My students have been working previously as lawyers, doctors, dentists, even ex-soldiers with missions in Afghanistan. They are all successful IT specialists now.
4. What should the thought process of the good software developer be?
All you need to do is think about how you can make the computer do something instead of you - which is why you need to speak their language. Everything else is connected to having a problem-solving mentality, as well as not being a quitter - because you’d often face complex issues that you need to handle. Beyond that you need imagination. A true developer needs to be able to picture how things look like even without being able to see them. You also need to foresee any problems and issues that may arise and you need to solve them before they actually occur. Furthermore, you need to be quite persistent because sometimes the issues you face are so elaborate that they may make you want to flip the table and give up. Problem-solving should be so inherent to you that it keeps you awake until you actually overcome the hurdles you’ve stumbled upon. This is often what sets apart the truly talented and dedicated developers from the mediocre ones.
5. At what age should kids start to learn how to code?
In order for you to code, you need to be able to solve problems, so the real question we need to answer is - when do kids start solving problems adequately? People often confuse developing with coding - coding is actually the easiest and the most boring part of software development. The most important part is coming up with the solution. Considering the fact that you also need to come up with algorithms, a sequence of steps that lead to expected results, the answer is not an unambiguous one. They may be 7, 10, or 12 years old. Least of all, they need to have some grasp of grammar and be able to write so they can write down orders for the computer. This process can be initiated from a very early stage - there are some schools for example that teach kids how to solve issues by working with robotics.
6. Can you please tell us a bit more about the book about programming that you have written?
With time, Nikolay Tomitov and I put together a methodology that was quite efficient when it came to introducing people (who previously hadn’t had anything to do with the IT industry) to programming languages and to what it meant to be a programmer. Based on this methodology we decided to write a book, called ‘Java for everyone’. As the title implies, it helps everybody get acquainted with this programming language. One of the most valuable features of the book is the fact that it includes over 100 tasks. Some of them are solved and the solution involves not just the code but also the reasoning behind it, thus teaching the reader how to think about these issues. We wrote the book for two main reasons - the first one being that we wanted to facilitate our process and to give a tool to our students that would allow them to prepare after class. On the other hand, we also wanted to present the Bulgarian audience with an easily digestible source of information when it came to jumping into the software development industry. Our intention was to make 3 books but unfortunately, the second and third ones are still in the planning.
7. What would you advise the young entrepreneurs who want to build tech products?
I’d advise them to first clearly outline the idea and then think about the language and the technology. The tech depends on what the product is and what it would be used for, what its fundamentals are… That’s why there are hundreds of programming languages because each and every one of them has its strengths. Furthermore, people should not worry about sharing their ideas with others and about iterating them through communication and discussions. The biggest issue I face with my students is that many of them hide their idea, including from friends and family for fear that someone could steal it. The bigger risk you take is that you could actually be on the wrong path when you are building a solution that no one really needs or when you don’t realize that there is already a well-established competitor who has solved this problem. This can be easily prevented if you just share the concept with others so that it is proven quickly and the team moves on to the next tasks. I’ve seen people work on an application for 2-3 years before they show it to anyone. This is extremely risky because in case the target customers don’t like it, then this would mean that a great amount of effort had gone for nothing. So in a few words, do things fast, get to a prototype quickly and ask the people around you for feedback. Oftentimes the successful startups have kicked off with a completely different concept at the very beginning. We can take as an example Instagram, which wasn’t originally meant to be used for sharing photos - but for users to check-in and post their plans. Eventually, the founders realized that users perceived the photo-sharing option as the true value of the product.
8. What does it take for a developer to turn into an entrepreneur?
I think the main difference between developers and entrepreneurs is the scale of the problems they try to solve. But in the end, it all comes down to problem solving and persistence, so the required set of skills is not so different. Developers are used to dealing with obstacles on a daily basis and their job is to overcome them and come up with a solution and then write the code that does the job. To become an entrepreneur, one has to start seeing ‘the bigger picture’ of the problem and then the software system becomes only a part of the equation. Most software developers feel comfortable in the context of solving complex IT problems and designing solutions in code. If one manages to go on a higher level and get out of the IT context and start designing solutions in a business context, that would be the first step of transforming into an entrepreneur.
9. How and why did you decide to become a part of the BattlePass team?
I am currently part of the startup studio as a technical consultant. My main incentive to join BattlePass was the fact that I would work with startups. I had already gained a lot of experience in startup-building together with my associate Nikolay Tomitov, since we founded BarinLabs together as a successful startup project. Over the years we have created for instance Bulgaria’s first (and so far only) fantasy football game, FFstars, from the ground up. We have also developed the game-result prediction app Glowter, which again doesn’t have an equivalent in the country. Beyond that, we have worked on healthtech projects, real estate, VR and many other startups. So I know what should and shouldn’t be done from a tech point of view when a startup is conceived. BattlePass is aiming to fill in all the loopholes that startups may come across. Oftentimes startup founders have no idea what they need - but the startup studios offer entrepreneurs the assistance they require before they have actually figured out what the next steps are.