Ivaylo Kenov
Interviews · 15 min
GuestIvaylo Kenov

“Anyone Can Be a Pro­gram­mer. It’s Time More of Us Were Engineers!”

Translated from the Bulgarian original →

Ivaylo Kenov is an inspiring teacher who has helped so many people become programmers. He drifted into the profession by chance, after realizing that civil engineering wasn’t for him. He decided to try teaching, even though he is shy by nature.

For many years he led the development team at SoftUni, a large Bulgarian private school for programmers, and taught lectures on countless technologies. He teaches, inspires and hands people a trade—I, too, learned from him the basics of the technology I earn my living with today. He has been more than successful with his ventures: his library My Tested ASP.NET has over 2 million downloads, and he owns one of the most popular Bulgarian profiles on GitHub.

Today Ivaylo faces a new venture. His team has turned into a company that has set itself the ambitious task of reminding everyone that creating software should increasingly be an engineering process, not just coding.

  • Can anyone really become a programmer, as the teacher who has helped so many fulfill that dream says? What are the main difficulties that hold people back? (Here.)

  • What are the big problems today’s programmers face? Why is it worth it for them to be more than coders and to bring an engineering approach to the other sides of their work too? (Here.)

  • Is it really that hard to find your first job in this field? What are the most common mistakes? (Here.)

  • How does Ivaylo, whom doctors told he would never be able to walk, now deadlift 150 kilograms thanks to… the engineering approach? (Here.)

– You head AMBITIONED, a software company that at the same time helps young talent take their first steps. Can you tell us more about the idea?

– Until now SoftUni had about 10 platforms, which we developed with a team of around 15 people. Almost all of them came to us as graduates of our courses, and today they are quite experienced. At the same time, our systems are mature now and mostly need maintenance. So we decided to spin the whole team off as a software company. We want to grow it by positioning ourselves in .NET technologies. We’ll do projects, and the other big goal is to build professionals.

What will be different from all the other companies? Our vision is to have very well-thought-out processes—both engineering and management ones.

I want us to put the emphasis on the engineering approach to software development.

To optimize the processes so that we deliver better code faster. For development to come ever closer to every other engineering activity—as if you were producing cars or houses. It’s worth taking everything we can from that approach. Nobody would get into a car that hasn’t been tested, right? Or live in a building that wasn’t built to code.

Of course, we can’t compare a physical product with a virtual one; with the latter you can be much more flexible in planning.

Ivaylo Kenov
Photos: Dobrin Kashavelov

– In theory, software development is supposed to work like that already, but the fact is that very often it stays just words.

– I’ve asked a huge number of software engineers what they don’t like about the job they currently have.

The most common answers are: lack of quality, an unclear life cycle, no structured management system. Management promises things that can’t be delivered, nobody reviews my code, nobody mentors me.

Saying that we’ll fix all these problems would be insanely romantic, but that is our vision, and I want us to work in that direction. We’ll position ourselves on foreign, developed markets, where this kind of service would be appreciated.

Maybe it sounds romantic and hard, but there are companies that manage to strike a balance between growth, revenue, quality and optimal processes. Quite often those are projects that are in some way life-critical. And I would like that to become standard development.

In my opinion, many of the basic things that problems stem from can be solved with processes and an engineering approach.

– I understand very well what you mean. Veli Pehlivanov told me similar things in an interview, and that’s how, for a while, I professionally ended up as part of the Resolute team myself.

– Yes, I’ve read his interviews and I completely share his point of view.

Here’s something elementary—estimating the time a task will take. It’s a fundamental principle; every programmer, every engineer does it constantly. But how many people are trained to estimate in the same way? How many are trained to describe tasks? How many have had it explained to them what the definition of done is? There’s a very good article by Vasil Terziev about the definition of done, which differs enormously among the people in a company. For one person it’s done when you’ve written the code, for another when it’s tested, for a third when it has reached the users. For engineers it’s a fourth thing.

I want to call all my colleagues “engineers”—that’s what I want us to achieve.

I don’t want us to be coders!

Not just programmers who simply write code, but people who think like engineers. Not only in the code itself, but also in the processes around it, in the metrics. Do we know what we’re estimating, or does everything happen by eye?

In most places people aren’t trained. Often it’s an inherited problem—team leads who were never taught themselves have no way of teaching those who come after them.

Ivaylo Kenov
Photos: Dobrin Kashavelov

– You put it well—to be engineers, and not only while we’re writing code.

– Let’s start there. Train people, put the small, fundamental tasks in order, be real engineers. Then I believe things will gradually start to improve, and we’ll have a process that works.

No, I haven’t reinvented the wheel, but these are problems that often go unrecognized. And they get in the way of work a great deal.

Over the years our team has been staffed with course graduates. So far everyone who has left us has become very good and grown into a leader. It helps that my colleagues and I are teachers and know how to approach someone to train them further. When there’s nothing more they can take from us, they go out into the industry. We want to achieve the same thing, but in a company of 100 people.

– You studied something completely different at university. How and why did you decide to become a programmer?

– Somehow it just happened on its own. I chose to study civil engineering because I had taken part in a lot of math olympiads. I was strong in competitions that didn’t require deep knowledge and heavy theory, but rather speed. In first year we studied only math; I found it interesting and got straight sixes, the top grade in Bulgaria. And then suddenly… twos and threes, a fail and a bare pass. I reached the subjects that demand a lot of reading, and that was the end of me.

I started wondering what to do with my life. I tried to start a small online business and bought some PHP script—back then it seemed like a fortune to me. I launch the site, I advertise,

I spam forums, and some kind of business gets going. It was a funny, cowboy kind of operation.

The script soon turned out to be insufficient, so I started digging through the files and changing things without having any idea what I was doing. I left a SQL injection hole and… someone stole my entire turnover. Then I launched my own hacker investigation and found the guy. He got scared, gave me the money back and even told me where my weak spots were. He even joined the project as a programmer, paid by the hour.

Ivaylo Kenov
Photos: Dobrin Kashavelov

– What a story! And that must have been when you decided it was worth studying more in that direction?

– Not exactly. I saw that I had a knack for programming, and my parents had noticed it too. It was they who told me there was some academy—Telerik—that ran courses I could sign up for. So I did; I signed up, the course was due to start in six months… and I forgot. I remembered at the last moment. September 14, and suddenly it came back to me that I had to write a motivation letter.

But at the beginning I didn’t want to do this. I had spent 10 years sitting at a computer,

I didn’t feel like doing the same thing; I wanted something more connected with people, with more communication, more meaningful.

Things were quite different back then. The news didn’t keep repeating that programmers are well paid, and there was no rush into the field. In high school it was taught so boringly that everyone gave up.

I went to the academy by chance, just to see what it was like. I didn’t know what to do with my life; I had decided I wouldn’t work in civil engineering. But suddenly… successes started coming. Soon I was ahead of most people, even those with a degree in the field. I started finishing first in courses of 1,200 people. And it kept getting more interesting; programming turned out to be exactly what I like—solving problems.

Before I knew it, I was at it 16 hours a day, and it went on like that for three or four years. Everything else took a back seat. It came from within; I had a huge desire and found it all very interesting. That’s something that can launch you forward, and that’s what happened to me.

Besides, I realized that by programming a person can genuinely help technology advance. That motivated me enormously.

– How did you start teaching?

– In my sixth month at the academy, because of my several first places in the courses, I asked what the requirements were to become a trainer. I thought they would turn me down, because I’m an introvert and find it hard to speak in front of people.

I had come to like the academy’s environment, its culture, and I wanted to keep being part of it. To help and to give people what the academy gave me—meaning in life and interesting problems to solve.

Even so, I’m the kind of person who finds it hard even to ask a stranger what time it is.

I’m rather reserved; it’s hard for me to communicate with strangers. I had every reason not to be a good lecturer.

For two years I started every lecture with my heart pounding! Funnily enough, to this day I feel awkward asking what time it is, yet I go out in front of 4,000 people to lecture and, judging by the feedback, it works. People enjoy the lectures, watch them, buy them, keep asking me questions and want more.

I have over 1,000 lectures, about three hours each on average; unfortunately, not all of them are online. For 10 years I never stopped teaching and had no break except holidays. Then I went further—some of my most interesting lectures are from the advanced series Code It Up. The series on software architectures is especially in demand, because it offers more than 30 hours of video on the subject in an organized, digestible form.

Ivaylo Kenov
Photos: Dobrin Kashavelov

– What are the most common reasons people fail to become programmers?

– Most have self-limiting beliefs: “I’m not good at math, at speaking in public.” I could just as easily have told myself, “I won’t be a good lecturer, I’ll just embarrass myself.” But if I became a lecturer and managed to beat myself, even though I clearly had no talent for it, then anyone is capable of anything.

I constantly see people doubting themselves enormously.

In my view, these days it’s elementary to become a programmer—without belittling those who haven’t made it. The material is collected, digestible, prepared; you just mustn’t be lazy. Yes, you might make it in six months, or it might not happen in two years; we all start from different places. But people doubt themselves and give up far too easily.

To succeed you don’t even need any special prerequisites—just basic literacy, reading, comprehension, common sense. Through my courses people from all sorts of fields have successfully become programmers—humanities, economics, musicians, artists, people with only a high school diploma, even 15-year-olds. Many of them found it extremely hard at first, but they didn’t give up, and now they are leaders in the industry.

Anyone can become a programmer! You get used to it and you learn.

Take the course on object-oriented programming, for example: one of the easiest things there is, nothing algorithmic, just a matter of syntax. I was a complete zero! The course is four weeks long; in the third week I understand nothing, I watch the lectures several times, the exam is knocking at the door. But a classmate sat down with me, showed it to me in two hours, I got it and came first in the exam. You mustn’t despair easily, you mustn’t give up.

The learning process consists of getting slapped nonstop.

You don’t have the information, there’s always something you haven’t quite understood, it causes pain. They hit you and hit you, and in the end you get used to it; you know what to do and how to defend yourself.

It’s like that with everything. Even after I started working, I kept learning new things. Then in management—a whole team of six key people quits; what do you do? A hard slap! But if they quit now, I know what to do.

Ivaylo Kenov
Photos: Dobrin Kashavelov

– Is it really hard to find your first job in our field? Why do companies seem not to hire enough juniors?

– People often finish some academy and think they need nothing else. I think the marketing misleads them; you hear it everywhere: “Come study and you’ll find a job in three months.” That’s not impossible, but it happens rarely and takes a lot of effort. But if you analyze the problem, the conclusions come easily.

Let’s say that every three months the academies graduate 500 people. All of them with exactly the same profile, the same CV. How are employers supposed to choose?

My biggest piece of advice to all beginners: build one project from the very start to a finished product, and give it to friends. Say your hobby is fitness—you make an app, think through the design, set up its infrastructure, hosting… Obviously the architecture will be wrong and your code won’t be fit to show anyone, but you’ll have learned a lot. It isn’t easy, there will be plenty of ups and downs, but with what the internet offers it’s by no means impossible. I did that in my first years too, and afterwards interviews seemed ridiculously easy.

Your first task once you graduate is not to stop learning. Finding a job isn’t a two-week process; it takes time. You have that period to keep improving. If instead of moaning that nobody will hire you, you sit down and build that project, you’ve already eliminated 400 of those 500 people, and a potential employer has something to look at.

It’s also very important to make your CV meaningful and good-looking, so it stands out from the rest. Hiring is essentially about managing to sell yourself better than everyone else. For that you have to stand out somehow. Previous experience shouldn’t be underestimated either, even if it’s in a completely different field and at an entry-level position. It shows discipline, work culture and teamwork skills.

And one more thing—if they give you a task, you need to pay attention to it and complete it in a way that makes you stand out.

People think there are no junior positions because they don’t see many job ads. The truth is that companies know how to find candidates—they hire people through the academies, the ones who performed best during training. We have partners who hire five people almost every month. That means that they alone have 60 positions a year, more than 10 percent of those 500 people! Here’s one more reason to work hard during your training.

Ivaylo Kenov
Photos: Dobrin Kashavelov

– I’ve left a rather different topic for the end… How do you find time for teaching, for projects, and for going to the gym so often?

– Apart from this company, I advise four or five others. Out of 15 to 20 startups over the years, it’s only in the last year or two that I’ve learned the ropes and things have started to work out. My workdays are 16 hours again now; I’ve come back to the same cycle.

To be honest, I don’t have enough time, and I juggle it all through solid prioritization on a weekly basis. I’ve planned to work Monday through Saturday. But training is also like work for me, because I have an old spinal problem and I keep it in check with strong muscles; otherwise I wouldn’t even be able to sit.

– You do somersaults and deadlift 150 kilograms, and 10 years ago doctors told you that you wouldn’t be able to walk. How did that happen?

– Yes, that’s what they told me. It all started with extremely severe back pain; for months I couldn’t sleep. I didn’t manage to find the right doctors to solve the problem, and over the years I learned to solve it myself through trial and error. I know that isn’t the right way, but I had no other choice.

Some kinds of exercise do a lot of harm, different kinds of food have an effect… like some kind of reaction of the body. I filled a whole book with notes, and in the end I reached a point where I no longer had the problem.

Once again, the analytical, engineering approach saved me…

Almost there…
If you liked the story, support the project. The site has no ads.
Support

Next story

All stories →