Today I’m going to interview Ivan Kravets, the guy whose recent efforts got significant attention from such companies as Texas Instruments and Atmel. In particular, Atmel has decided that Ivan’s open-source project PlatformIO [PlatformIO] is worth an article on Atmel’s own blog [Atmel2015]; believe me, it is not easy to get there with an open-source stuff. But more interesting for us is the fact, that Ivan has started his career as a web developer, not as an embedded one. Let’s try to find out how such a career change (which quite a few web developers dream of, but are afraid to undertake) is possible.

As the interview turned out to be rather long, we will be splitting it into two posts (to avoid getting hit by TL;DR syndrome 😉 ).

Originally, you’ve been a web developer. Which web technologies you were dealing with?

I’m happy that I had a chance to live in the time (beginning of the 2000s) when there were no fully-fledged web development toolchains. My first steps as a “web-developer” were made without Internet and “googling” for the things I did not understand, just with offline language manuals and documentation. The absence of fully-fledged MVC client side frameworks, DOM traversing tools, etc., allowed me to play with the most popular technologies which have been arising in that time:

Ajax in combination with JavaScript, DOM and CSS using XMLHttpRequest for asynchronous interaction with the server;

Drag&Drop features which haven’t been supported natively in the browsers.

Also, this time was interesting, because relatively low-power server equipment has forced me to concentrate on the quality and optimization of the code.
For the first years in web-development role I’ve created more then 50 web sites, from simple corporate home pages up to complicated portals.

What was the most interesting web project of yours?

The most interesting project was developed for the students of Kyiv National Aviation University in the year 2003. The www.relax-info.com portal has become a virtual home for the thousands of students. There were forum with active interesting discussions, virtual powerful mail and acquaintance services, free SMS to more than 150 countries in the world, the latests news in the Ukraine and in the world and etc. Many of my friends tell me that www.relax-info.com could be the “facebook” if I have had extended it to the other universities. However, it wasn’t a business project, it was a place where I could experiment with interesting web-technologies and practice with real users.

At some point you’ve been a “pure” web developer, how comes you’ve developed interest to hardware? (it feels like two very different and barely connected worlds…)

I’ve been interested in electronics since my school years. I loved to play with soldering iron, repair simple things which did not require deep knowledge in electronic. Hardware world is a part of my soul. However, in comparison with the world of web-development I’ve got no practice with the hardware-based projects.

Moreover, as years passed, I have been losing interest to the web-development. Each new framework or tool which simplified the web-development process reminded me that I had to deal with the constructor by the name “WEB-Lego”. From the marketing point this is good: these excellent web-development instruments can significantly reduce the efforts which are needed for project. Nevertheless, I don’t like to be just a user of this world or deal with easy tasks. There are fascinating and complicated things which are of interest to me. If I see that something is missing in the world and I can fix it, I should do it.

This way, the hardware world was new for me and I accepted the challenge from it.

How did you start embedded development?

Most of us have problems with learning new things. In other words, we have problem with finishing what we’ve started before. I don’t want to talk about idleness, I mean persistence. Try to follow my rule: “If you want to learn or discover something new, try to find an interesting idea of how it can be implemented in practice”.

For example, if you want to learn new programming language, experiment with it using some interesting project which will be useful for the others, not only for yourself. It will allow you to get a new aim with a final practical result, but not only with the theory or practical lessons. Don’t hesitate to share your code with the others and don’t wait until the project is 100% finished. The most awesome idea generator, tester and reviewer of your code is the community which uses it. Implement things (learning new language, tricks and approaches) which were required by users, they will thank you for it. So, it will be the most valuable reward for your job. Warm words and interest of the community will inspire you for the new achievements. I’ve passed the same way when I was dealing with web development.

What was that first “interesting project” of yours in embedded field? Which board was the first, etc.?

As I mentioned above, I was interested in hardware world earlier and I decided to enter it via realizing the dream of my childhood – My own SmartHome. The new world, new technologies, new development instruments – what could be more interesting? Accordingly to the rule described above, I decided to dive into the embedded world using low-cost MCUs and development prototype boards. As for the community with feedbacks and propositions – it was my family. The first version of SmartHome was built using wiring CAN bus, mbed LPC1768 prototype board with built-in CAN and Ethernet controllers and a few Arduino-based boards coupled to an external MCP2515 CAN controller.

Comments

I hope that Ivan Kravets passed the interview successfully and got a job he deserves. This offer is very important to him. As former compatriots the interviewer and interviewee understood each other very well. God speed.