Interview with Miro Samek of Quantum Leaps conducted by Leonardo Held in February 2021. Published in Portuguese in “Embarcados”.
What is Quantum Leaps?
Quantum Leaps is an embedded software company on a mission to bring “quantum leaps” in quality and productivity to embedded systems programming. The company’s flagship products are: the QP Real-Time Embedded Frameworks (RTEFs), the QM Model-Based Design (MBD) tool, and the QTools collection. These unique products enable embedded software engineers to apply modern, reactive software architecture, hierarchical state machines, model based design and automatic code generation in small embedded systems, such as ARM Cortex-M MCUs (micro-controller units).
How old were you when you first started Quantum Leaps?
I just turned 40.
What was your previous experience with this type of business?
Before founding Quantum Leaps, I had 15-20 years of experience in embedded software development, depending if you count my Ph.D. research. After my Ph.D. in the area of experimental nuclear physics in Germany, I worked on safety-critical embedded software at GE Medical Systems in Wisconsin (3 years). I then moved to Silicon Valley, where I worked for two startup companies specializing in GPS technologies (8 years).
Concept of Self
Do you believe your formal education and advanced degree were essential for your life as an entrepreneur?
I think that physics is a good starting point for any technical career. The pace of change nowadays is such that in college, you simply cannot know what will be needed 10, 20 years later. But physics gives you really deep understanding of the fundamentals, which you can then apply to any technical field. For example, in my career I had to quickly grasp nuances of X-ray generation and detection in medical imaging. Later, I needed to deeply understand GPS, which is a complex system. A solid background in physics helped me every time.
As far as the degree is concerned, I’m not sure that you need to go all the way to the Ph.D. level, but an advanced degree opens a lot of doors and career opportunities. It certainly helped me in this respect.
What does it take to start and run a business?
I can only speak about the embedded software business, which to me is a craft. Consequently, starting a business in this field is to me very much like a master of a craft setting up his or her own shop. My main point is that starting a business is a culmination of a career, not the beginning of it. It’s a destination of a long journey, from apprentice, through “journey man” to a master with his own unique “style”. In this sense I don’t think that everybody has what it takes to accomplish such a journey. But if you do have the passion, the patience, and you finally find your own unique “style”, by all means, start your own business!
What was the idea for Quantum Leaps originally and how it came to be?
Before Quantum Leaps I had only a vague sense that the embedded software I had to maintain could be designed more elegantly. The breakthrough for me was the book “Real-Time Object-Oriented Modeling (ROOM)”, which I read in the mid 1990s. I read and re-read the book several times and realized that all real-time embedded software could and should be created that way. So, my first goal became to apply this in my own software. For many reasons, I couldn’t use the big ROOM modeling toolset, so I was forced to apply the method manually and to distill it to its essence. I ended up creating a very stripped down version of the “ROOM Virtual Machine”, which was the layer of software that bridged the semantic gap between higher-level concepts like “ROOM actors” or “ROOM state machines” and the C programming language. This software layer later evolved into the QP Real-Time Embedded Frameworks. I created this with the realization that such a framework could be useful in many embedded projects and can either entirely replace, or work on top of a traditional RTOS (Real-Time Operating System).
This is perhaps the most important aspect of the Quantum Leaps story. The flagship product of the company was created and went though countless iterations a long time before the business was started. Only after seeing that the framework worked (flawlessly) inside a GPS receiver–a very challenging hard real-time environment–I had the audacity to start a business around it. I consider this my “master work” that entitled me to setting up my own shop.
Is profit the top priority? What are your thoughts on the "get rich fast" mentality some startups seem to have?
Profit is an important consideration to any business, not so much to “get rich fast”, but simply to survive. In my case, I had the working software product, I had published a book about it, I wrote articles, I spoke at the conferences. But I didn’t have a business idea how to make money off of all this, so I couldn’t start a business. This came only after I discovered the dual-licensing business model. (Specifically, the business model called “single-vendor commercial open source”). So, to any technical person, who dreams of being their own boss, I would advise to pay attention to the business models and to the various ways of IP (intellectual property) licensing. For a successful, sustainable business, these ingredients are as important as the actual products or services.
Your video course on YouTube shows that you also have talent for teaching. Have you ever thought about changing the line of business?
Teaching is very much a part of being a “master” of your craft. Masters always took apprentices to pass on their skills. In this sense, teaching is not a change of business. It’s the integral part of the business.
Additionally, in the embedded software field, I found out that there is no established curriculum, because our discipline falls through the cracks somewhere between EE (Electrical Engineering) and CS (Computer Science). Consequently, practicing embedded software engineers don’t have an established common understanding and terminology. Almost every term we use means different things to different people. The “Modern Embedded Systems Programming” video course on YouTube is my response to this need of establishing a curriculum and terminology of our discipline.
What sets Quantum Leaps apart from the competition?
Quantum Leaps offers unique products and different paradigm than the currently dominating approach. This might not suit every team, but if offers a choice to open-minded teams, who want to take their software development to the next level.
What kinds of hurdles did you encounter and how did you manage to overcome them?
A journey of 15-20 years is bound to hit many obstacles. But I consider myself fortunate that:
- I discovered my goal relatively early; and
- that no other business did it better ahead of Quantum Leaps.
Once I had the goal of scaling down the “ROOM method” to small, deeply embedded microcontrollers I could shape all other decisions around it. So, for example, after leaving GE I carefully chose my next employment to be at a place where they were just starting a new suitable project, as opposed to maintaining an already existing product. I was specifically looking for a “test bed” for my ideas. This was not necessarily the best paying job, but that was a good place and good team to do exactly what I needed.
Speaking of hardships, the hardest part was to keep at my thing after my “day job”. So, instead of going back to my family, I stayed long evenings and weekends after everyone left to test, iterate, and refine my framework. I then had to swap it and replace the previous version in the working project. Later, I applied the same extra effort strategy to writing my first book (“Practical Statecharts in C/C++”) about the framework.
But this is how it is. I believe that in the end only the extra effort, above and beyond your “day job”, puts you ahead.
Have you ever thought about quitting?
Sure, I had occasional thoughts about quitting. But then, I didn’t want to keep writing the usual “spaghetti code” and keep chasing race conditions in a traditional RTOS-based deisgn for the rest of my career. Once you experience a better way of doing your job, it’s really hard to go back. So, I realized that I really had no alternatives.
Are you happy with the work you do?
Oh, yes. Definitely. The extra effort was significant, but it already gave me 15 years of freedom and fun doing what I truly enjoy! And I’m not done yet…
Did you have any support from mentors or family?
Yes, I was fortunate to have support from my family and from the local community in the Valley. I was very positively surprised how willing some of the seasoned CEOs were to take my phone calls and answer my rookie questions about starting a company. I think this is something very special about Silicon Valley.
How did you sell the idea? Was there a market gap that you saw and fulfilled?
Actually, I did a poor job of selling my ideas (for profit). I just published a book and the code with a rather unprofessional, quasi-open licensing statement. One day, a big company called me and asked about the possibility of licensing the software “properly” for a closed-source project. Only then I realized that some businesses were willing to pay for avoiding open source licensing. This was the beginning of the dual-licensing business model.
What advice would you offer on how to choose a team? What are some of the difficulties you found working with people?
As most entrepreneurs, I was afraid of “going solo” and my first instinct was to look for partners, and so I did. But this complicated so many things right at the beginning when you don’t know about the valuation, the company stock, the allocation of shares, the “business plan”, etc. Eventually, I decided to start alone and it made my life so much simpler.
Later, I found more like-minded people, mostly through conferences, and mutual friends. But I haven’t built a traditional team. Instead the “team” largely consists of independent consultants that provide training for Quantum Leaps, for example, or help companies in projects based on Quantum Leaps software.
I still do most of the embedded software development myself, because I believe this is the only way to achieve and maintain the high conceptual integrity of the software. Good software architecture cannot be “outsourced”. Rather it must be a product of essentially a single mind of someone who deeply cares about such stuff. Embedded programming is perhaps the last software discipline, where it is still possible.
In the end, the business model of Quantum Leaps has been only possible because of the Internet. The recent pandemic shows that such loosely coupled, remote teams turn out to be more flexible, more resilient and even more motivated than “traditional” employees. It seems that more and more businesses will migrate towards this style of work.
What's in store for Quantum Leaps in the next 10 years?
I hope that within the next decade we will finally see a “critical mass” of adopters of the modern way of developing embedded software. This requires a paradigm shift from the currently dominating RTOS-centered approach to new design patterns based on event-driven, autonomous components called “active objects” or “actors”. Also, we need to move up to a higher level of abstraction and the right abstractions, such as hierarchical state machines, to apply visual modeling and automatic code generation. This is exactly what Quantum Leaps is all about.
Did you do any market study before starting Quantum Leaps?
If you mean a formal market research then no, I didn’t do it. But I knew the value of the software, because I used it in the real-life product (a complex GPS receiver at this point).
How do you innovate? Is innovation necessary for staying in your type of business?
Yes, of course, you have to innovate to stay relevant. In case of Quantum Leaps, the main ideas for innovation come from carefully listening to the engineers who use the software in a huge variety of projects. This is one of the main benefits of having both, the open source community and commercial customers.
By listening “carefully”, I mean not accepting all feature requests as they are presented. Rather, I mean trying to understand the real needs and the underlying problems that the users of the software face. The actual solution is sometimes very different from what a customer originally suggested. All this goes really back to maintaining the high conceptual integrity of the software.
What are the biggest strengths and what are the biggest weaknesses of Quantum Leaps?
I believe that the biggest strength of Quantum Leaps is the high conceptual integrity of the software. Bigger teams of constantly changing developers simply cannot create that.
The biggest weakness is the slow speed at which some requests can be implemented. For example, in embedded programming customers constantly ask for new ports (i.e., adaptations) of the Quantum Leaps software to new types of processors, real-time operating systems, and other types of third-party software. Bigger teams could obviously handle such workload faster.
How long did it take for Quantum Leaps to become profitable?
Quantum Leaps has been profitable from the inception and has never taken any debt or external funding. This is because the company had been started with an already existing and working product.
How did you initially fund Quantum Leaps? Did you look for any private investors or firms like Y-Combinator?
No. Taking other people’s money limits your freedom of what you can and cannot do with your business. This was incompatible with my main goal of being truly independent.
Watching from outside, good businesses never seem to fail. Have you ever failed in business?
Not yet. The company has existed since 2005 and survived market downturns, such as the “great recession” of 2008-9. The company is flexible and has remarkably low fixed costs.
What's the biggest threat for businesses like Quantum Leaps?
Quantum Leaps exists because other businesses commercially license our software. The biggest threat to this is widespread disregard for intellectual property rights (software piracy and software plagiarism). Unfortunately, outsourcing of embedded software development often leads to a “lax” attitude towards license infringement. This is really unfortunate, because everybody loses when this happens. There is a reason why innovative, high-quality software like our QP frameworks have not and will not be developed in environments that routinely disregard intellectual property rights.
Do software companies have to think about ecological sustainability?
This is one of the main issues of our time. Embedded software will undoubtedly play a big role in all aspects of this, from electronic products that reduce emissions to enabling sustainable practices (e.g., robotic farming with much fewer chemicals). In all these aspects Quantum Leaps software can be very helpful. Also, the QP frameworks are ideal for low-power designs.
How do you see open-source and SaaS as a part of the shared economy?
Quantum Leaps has been built on open source, and I believe that the importance of open source will only grow in embedded systems. But to be valuable, any type of software must be actively maintained, enhanced and supported.
With so much software available from the Internet, some developers might think that they want completely “free” software (“free” as “free beer”), but they really don’t. For example, after the recent rush of acquisitions of RTOS vendors, we see a lot of the previously expensive commercial software now available on GitHub for “free”, under permissive open source licenses. But the software is effectively abandoned and no longer maintained and supported. I don’t think that many companies would like to base their products on such software anymore.
In hindsight, what do you wish to have known before you first started your business?
I wish I knew more abut IP licensing, because this would allow me to start Quantum Leaps a few years earlier. I also wish I knew more about Internet and pay more attention to the discipline now known as SEO (search engine optimization). By this I mean not just having a nice looking website, but to design every piece of information, documentation, articles, and videos for searchability. For this you need to think backwards, starting with how you wish your information to be found and only then fleshing out the content to exactly match that searchability criteria.
Is there anything that you would do differently?
Of course if I were to launch Quantum Leaps now, it will be different. But I think that the most important decisions were largely correct at the time.
Do you have any advice for engineering students who want to follow some of your footsteps?
It’s really hard to give a universal advice, because everyone needs to find what they want. Actually, this is the hardest part, because once you find what you really want, you just have to do it.
Thanks for the Q&A, I really wished to know more about how you got to the point you are today.
As a daily user of your framework, I have few other questions that I find interesting to ask.
AO/HSM paradigm can work with any application. Why do you target mostly RT embedded systems and not desktop PC, Mobile devices?
Do you plan to hand over your business to someone else when you’ll get your retreat ?
Are you gonna publish a complete refund of your framework with new coding standards at some point (C++ 14/17/20) ?
Thank you for your interest and good questions.
> AO/HSM paradigm can work with any application. Why do you target mostly RT embedded systems and not desktop PC, Mobile devices?
I certainly realize that the Active Object design pattern with hierarchical state machine can be very valuable in all sorts of systems, including desktops, mobile phones, and even big servers, where event-driven architecture and efficiency per-client are important. To this end, QP has always offered ports to POSIX (Linux, etc.) and Windows. But a small company like Quantum Leaps has to very carefully choose the target audience, or else it will spread itself too thin and lose the focus.
> Do you plan to hand over your business to someone else when you’ll get your retreat ?
An exit strategy for a business must be planned very carefully. Of course, financial aspects of selling out are attractive, but still it could be a personal disaster. If the next owner of the business doesn’t care, it could be really heartbreaking to watch your life’s work going to waste. Also, optimizing a business for a lucrative exit may be actually bad for the customers. You are just catering to a different audience. As they say “building to flip is building to flop”…
> Are you gonna publish a complete refund of your framework with new coding standards at some point (C++ 14/17/20) ?
The QP frameworks are constantly refined and improved. Specifically, QP/C++ version 6.x has already been updated to use many features of C++11 (prior version 6.x, QP/C++ used the old C++98 standard). But the avoidance of adding too many of the latest C++ features is deliberate. It allows the framework to be used with established compilers, which in embedded space don’t necessarily implement the latest standards right away.
Thank you very much for your detailed answer.
It’s really nice that you take so much time in general to bring help to the people using your framework. or just answer their questions.
I think I’ll still use your framework when I’ll have to develop a desktop application instead of an embedded one, I like so much the control that HSMs bring to my applications.