Creating robots isn’t easy. A lot of hard work and perseverance goes on behind the scenes at Ozobot to make sure students and educators are getting the most out of their computer science experience.
We wanted to spotlight the dedicated individuals behind our bots, starting with Ondřej Staněk. Ondřej started developing the firmware and electronics for the first Ozobot robot prototype back in 2012. Two years later, he finalized the firmware for mass production. He also designed and implemented a virtual machine that facilitates user program execution on Ozobot Bit and Ozobot Evo. He is a co-author of two patents that are part of Ozobot intellectual property.
In 2015, he founded an engineering team in Prague, Czech Republic. The team is currently five engineers strong and provides R&D, electrical engineering, and Firmware development for Ozobot technology and products.
Ondřej graduated with honours from Charles University in Prague. His master’s degree is in Computer Science / Software Systems. He has won several awards in international robotic competitions. In short, Ondrej is the kind of creator we hope Ozobot inspires kids to be! We recently sat down with Ondrej to pick his brain–from what got him started in CS to what he’s working on now. Read on for his answers.
On what inspired him to start coding…
When I was 8 years old, my grandfather gave me a PC for Christmas. It was the most awesome gift ever. The PC had an i386 processor, 5.25″ floppy drive, monochromatic CRT monitor (not black and white, but black and gold – very cool!). The computer came with various software preinstalled; a text processor, a program to teach touch-typing, a tool for astronomy, an interpreter of the BASIC programming language and, of course, plenty of video games. Together with the PC, I got a handwritten manual, in which my grandfather documented each program, how to launch it, and how to use it. Things were a little more complicated back then; the computer came with an MS-DOS operating system and it was controlled from a command-line (or from the Norton Commander, at best). The user experience was very far from intuitive, so at that time, manuals were a must have. Imagine no Internet access, no YouTube channels or online tutorials to draw information from. All we got was just plain text in books.
The computer was also preinstalled with a visual programming language for children: the SGP Baltazar. That was my first experience with programming. The language allowed me to command a tiny wizard to move on screen and conjure various objects on it. Later, my mother taught me the fundamentals of programming in QBasic. My programs were simple, not very useful and not much fun. Well, only until I got an awesome accessory to my computer: a pen plotter. The pen plotter is a machine that uses a pen tip to produce geometry drawings on paper. I used the QBasic programming language to generate input for the plotting machine. Suddenly, I was creating programs that were useful for me. They were producing geometric shapes, plots and texts. I was most proud of a program that reproduced my handwriting on the plotter. At the age of 18 I experienced another big “aha” moment when I realized my programs can run outside of the realm of PCs, in a microcontroller as small as a fingernail. Those were my first steps towards robotics and embedded system development.
A fun project he is working on…
There is one project that I get back to every winter, when days are short and there are less opportunities for trips and outdoor sports. Some years ago, it appeared to me that conventional programming languages for children have quite crude mechanisms for expressing concurrency, or don’t support it at all. Yet, we see that children often want their robot to perform more tasks at once. Children can formulate their intentions well (i.e. “robot moving around, while animating LEDs and playing sound”), but the programming languages don’t offer the expressiveness that would match childrens’ intentions one-to-one. Some believe teaching concurrency is hard and therefore it is a subject that only advanced programmers can grasp. I believe in the opposite; if concurrency was addressed elegantly on the language level, children would be able to create concurrent programs with ease. My fun project is a proof-of-concept concurrent programming language for children.
On his favorite thing about working at Ozobot…
I love the culture that emerged from the mix of talents we have in the team. We learn a lot from each other, as everyone is passionate about different areas, including but not limited to computer science and engineering. I enjoy the discussions we have over lunch, coffee breaks, or over a couple of beers in the evenings.
Stay tuned for our next Ozobot Engineer Spotlight to get a behind-the-scenes look at the people behind the bot!