Ivo Milota: Software development as a life passion
What is this episode about?
✔ Why it's more important to teach principles than specific technologies
✔ What approach he takes to teaching software architecture
✔ Why he currently avoids integrating AI directly into his teaching
✔ His take on frontend vs. backend specialization
✔ Inspiring examples of real student projects
✔ How Unicorn University supports complete beginners
✔ His perspective on the role of AI in the future of software development
Hi, today’s guest on our podcast is Ivo Milota – a specialist who turned his passion for work into a fascinating career. For over 20 years, he has been part of Unicorn, where he has held various positions – from sales to technology architect. Today, he focuses on his lifelong passion – software systems architecture. Ivo, welcome to our podcast!
Hi there.
Ivo is also an active lecturer at Unicorn University, where he teaches frontend systems, cloud application architecture, and software architecture. Today, he’ll share his perspective on the world of software architecture.
Ivo, what brought you to teaching at the university, and what do you enjoy most about this work?
Well, it was more of a coincidence, really. I was involved in internal employee training, and it seemed like the students liked me, so someone suggested I try teaching at the university. So, I started teaching at Unicorn University, then I began supervising and reviewing bachelor’s theses, and now I’m also part of the final exam committees. So yes, it really began by chance – and it’s been five or six years now that I’ve been involved in teaching and helping students grow.
And what do I enjoy about it? Mostly working with the students – especially the active ones, who ask questions and show interest. The best part is when students come back to thank me – for helping them with their thesis or for helping them understand the basics of software architecture. Because many students come in without any programming background, starting completely from scratch. They ask how to begin, how to learn programming, or how I got into this career – and I really enjoy that.
And what approach do you use in your teaching to help students better understand the technical concepts you cover?
I try to draw on how I learned to program myself. I changed careers – I really started out in sales, doing business roles, and I was a salesperson for quite a long time. Then, almost by chance, I became a programmer.
I started learning through examples – I would look them up, try to understand what they were doing, and then I’d try to write similar code myself. So I try to show students practical examples of how things work – how architecture works, what the foundational concepts are that they need to understand to build on top of them.
I structure the lessons so that they learn through practice, moving from an initial idea to the goal – to have a working application or at least a part of it. I really try to lead them to experiment, learn by doing, work with examples, and get inspired by what’s already out there. Because you don’t need to invent everything from scratch.
What do you think about the claim that the "programmer bubble" is bursting? Does this trend affect how students are being prepared for real-world practice and skills at the university?
Well, I must admit, this is a question I don’t fully know the answer to. With AI and everything happening around it right now, I think no one really knows where it’s all heading. It reminds me of a question my students recently asked during a lecture – they wanted to know how the world of software development will evolve.
We live in a time where an incredible number of things have changed within a relatively short lifetime. When we were born, there were no mobile phones – and now everyone has one. So yes, things are definitely going to change, and it will certainly affect how we work, how we program, and how we approach building applications.
On the other hand, I still believe that smart and thoughtful people will always be needed. That’s what I try to pass on to my students – to learn how to think, understand the fundamentals of how software works, and be able to apply that knowledge. When they enter practice and receive an assignment, they should be able to imagine what the application is supposed to do, how to design it, and how to build something that truly works.
If they don’t have that foundation, it becomes a problem. I still believe – and maybe it sounds silly – that a doctor won't build good software because they lack the technical background. And likewise, a programmer probably won’t make a good doctor.
What current trends do you see in frontend technologies, and how do you incorporate them into your lessons?
Software is definitely going to evolve, likely moving away from classic user interfaces toward more natural communication with software. The latest developments in AI now allow us to interact with computers using everyday language.
I recently compared it to Star Trek. From the very beginning, they spoke to computers naturally, gave commands in common language, but they still used interfaces – screens, visualizations. They needed to see certain things, to set them up without speaking, because it was faster.
So I think we’re moving in that direction – where we’ll interact with computers more using natural language. But we’ll still need people to develop software, to visualize data and make it accessible and understandable to humans.
In your opinion, what are the key qualities a modern frontend developer should have?
I try to explain one essential idea to my students – today, it’s not as important to be a perfect coder. AI helps us write code now. And I’ve always appreciated developers who can create a working application that does what the client asked – even if the code isn’t 100% perfect.
On the other hand, I’ve seen many developers during my career who wrote “perfect” code – method calling method, everything was formally correct – but the code didn’t do what it was supposed to. It was impossible to make sense of it.
So I try to emphasize to students that what matters most is the ability to imagine what the final result should do. Test it. Run it. Make sure it really works. And focus much more on the business aspect of the task, not just the coding itself.
Of course, you can’t do it without knowing how to program, but that part is also evolving. The main goal today is to teach people how to think.
How would you define the ideal architecture of a cloud application, and how do you guide students in designing it?
I’ll use an example I often give my students. They frequently ask me why we teach React and JavaScript at our university, and not Angular, PHP, or Python. And I always say: "Students, have you completed driving school?" Most of them nod. Then I ask: "Could you choose the car you were going to drive in your lessons?" Of course not.
Because the goal of driving school isn’t to teach you how to drive a specific car brand, but to teach you how to operate in traffic, anticipate situations – like when overtaking a bus, you expect that someone might suddenly cross the street.
It’s the same with software – we teach principles. Learn the basics, understand the building blocks and how things are structured. When you start working in a company, you’ll learn the specific “car model,” or technology. Whether reverse is under first gear or sixth, where the A/C controls are – those are just details. But if you don’t know how to drive, it doesn’t matter if you’re in a BMW or a Trabant – you won’t get to your destination.
Technologies are just a means to an end – the end being a functional application that provides real value to the user. So we teach verified technologies, but it’s not about mastering them 100%. The key is to understand the principles.
Right now, at Unicorn, we’re working on a specific architecture, and we show students that architecture is more than just the technology. We build components and tools to help developers focus on functionality and the business core of a problem, rather than worrying about whether they’re writing in JavaScript.
At one lecture, a student said, “Mr. Milota, there must be so much work behind this.” And he was right. It takes a lot of thought and effort. But that’s why it’s so important to stay focused on the business side – because technologies change, but principles and goals remain.
You mentioned AI – do you incorporate it into your teaching? Do you introduce students to how to use it in development, for example Copilot or others?
I try not to include it directly in my teaching. Not because I think it’s bad, but because I want students to try things on their own. It’s important that they understand what they’re doing. I’ve seen many examples where students used AI and submitted work they didn’t understand. The result often didn’t make sense – they didn’t understand the assignment, and they didn’t know how to properly instruct the AI on what they wanted.
If we don’t understand the fundamentals, AI won’t help us. I read an article recently that said AI can now detect diseases in X-rays more accurately than doctors. But I wouldn’t want that kind of AI to be trained by a programmer who has never seen an X-ray. It needs to be trained by someone who understands medicine.
It’s the same in programming. We need to understand what we want from AI and how to communicate with it. Otherwise, it won’t be able to help us. I use it myself – to speed up my work, for example to generate routine code – but I have to review the output. And the more complex the component I’m writing, the more I need to understand what I’m doing, because AI gets lost in it.
Do you think the developer's role will change with the rise of AI? And what do you think of the claim that SaaS (software as a service) is already outdated and we are entering the age of AI agents?
I’ve already mentioned the architecture we’re building at Unicorn. At one presentation, we showed how to integrate AI agents and the potential use cases. For example, today, a service technician with a company car who has an accident has to open a system, find the right form, know what to fill in and where – it’s complicated.
But imagine instead they just say, “I had an accident.” The agent knows who they are, finds the car, pre-fills the form, asks what happened, completes the data, shows the result, and sends it.
That’s a much more natural way to interact with software – especially for people who aren’t technically inclined. Forms will be simplified or even replaced completely.
Likewise, on the backend, there’s currently a person who contacts the service center, schedules a repair, reports the incident to insurance. All of this can be handled by AI – it can assess whether the report makes sense, contact the right people, and schedule the service.
User interfaces will become simpler, but I still believe we’ll need to see things – tables, visualizations, interactions. And we’ll need people who understand these systems. AI will simplify routine tasks, but it won’t fully replace humans. At least I hope not.
What do you think about the idea that it's better to have a specialized frontend developer and a different one for backend?
That’s a tough one… I myself can do both. I know people who prefer backend, and others who prefer frontend and say they’ll never touch backend in their life. I think both are still needed. It depends on what the person enjoys more, what they understand better, and what they can picture themselves doing. It’s like asking whether I’d rather drive a bus or a truck – both are similar, but in the end, they’re a bit different.
It really comes down to people’s preferences and the actual needs of a project. Sure, it’s simpler to have someone who can handle both – to assign the work to a person who manages frontend and backend. But on the other hand, today we’re working on massive projects, and that’s just not feasible anymore. You can’t have one person who understands everything. There are big teams working solely on backend, and separate ones focused on frontend.
Specialists will still be needed. I often tell my students: use components that already exist. But learn to understand them at least a little – not necessarily the internals, but what they do and how to use them.
It’s like with a car – you don’t need to be an engineer who understands how an automatic transmission works, but you need to know what it does to be able to drive with it.
Some people will lean more toward technical depth, really diving into the details. Others will lean more toward business. I myself started as a businessperson and ended up as a programmer – my degree is in international business.
Which student project or achievement made you the happiest?
Before I answer, something else comes to mind that I often tell students – and it’s connected to AI. I tell them: learn from examples. I consider myself a “copy-paste” programmer. Some laugh at me for that, but in the end, it’s exactly what AI does.
When I work on a project, I look for examples – things I’ve done before or something others have done. I try to understand how it works and adapt it to the current problem. And that’s exactly what we do with AI today.
Now, about the projects – there have been many, and some were truly impressive. For example, one student built his own 3D printer, brought in printed models, compared them with a commercial printer, and explained what worked and what didn’t. That was a fantastic thesis defense.
Another student built a small hydroponic farm in his basement using pipes, grew tomatoes, and brought them to the defense for us to taste. He created software that measured temperature and adjusted lighting accordingly.
And very recently, I reviewed a bachelor’s thesis from a student who came up with her own app. She identified a gap in the market, couldn’t find anything similar, so she designed it herself. She didn’t use much traditional coding – she used no-code tools – but she still had to understand the processes and algorithms.
She deployed the app to Google Play and the App Store, documented the costs, development, licenses. The app is live and has already been downloaded by hundreds of people – even in the US, without any advertising. She even used AI to generate a logo, chose one she liked, adjusted the colors, and ended up with a finished product.
These are beautiful examples – people come up with an idea, go through the whole process, learn something, and produce a real, working result. That’s what I truly love about this job.
That’s wonderful! What would you say to potential students who are considering studying software development but don’t yet have any programming experience? How does Unicorn University help them take that first step?
I think the main thing is hands-on experience. We try to guide students to actually try things, to imagine how they work, and to jump into practice.
We also have students who don’t necessarily want to become programmers, but who want to become qualified project owners. They want to understand IT so they can give the right specifications, understand what they get back from developers, and evaluate whether it makes sense.
The most important thing, in my opinion, is that we teach through practical examples. So students can really visualize what’s happening. And when it results in great bachelor theses with working, real-world outcomes, that’s incredibly rewarding.
How do you see the future of software development, and how should students prepare for it?
I don’t have a crystal ball, but I still believe software will be needed – more and more of it – because we’re living increasingly with digital devices.
As I’ve said before, I can’t really imagine going on a family trip where everyone is talking to their own phone. Or being in a packed tram where everyone is loudly talking to their device – that doesn’t quite seem realistic to me.
So I still believe we’ll need to visualize a lot of things. We’ll need to translate data and logic into components, nice visuals, tables, and graphs – so we can interact with it visually. And we’ll always need people who understand how things work, who can really grasp the underlying systems.
So far, I don’t see any technology that would completely rewrite this model from the ground up. After all, when you look at the App Store or Google Play today – there are tons of websites and apps that exist, that work, and that people are used to. Saying we’ll just throw it all away and start from scratch? I don’t think that’s realistic.
I think the new direction will be more about agents and assistants. It’s important to be in an environment that’s prepared for this shift. To have tools that are actually usable. And I believe Unicorn is doing a tremendous job in this area – many things already work smoothly and are ready to be built upon. That’s where I see the future.
Ivo, thank you for today’s conversation. Our guest was Ivo Milota, and we’re glad you tuned in. Have a great day.
Have a great day.
Links and resources
Tools and resources mentioned by Ivo or related to software architecture and teaching:
- React – A front-end library that Ivo uses in his courses; it's the foundation of many modern web applications.
- Node.js – A JavaScript runtime used for developing backend applications.
- Unicorn University – The official website of the university where Ivo teaches frontend, cloud architecture, and software architecture.
- GitHub Copilot – An AI-powered code generation tool. While helpful, Ivo emphasizes the importance of understanding the fundamentals first.
Inspirational resources and communities:
- Frontend Masters – High-quality courses focused on web development, suitable even for beginners.
- Stack Overflow – A developer community for asking technical questions and participating in discussions.
- Frontend Developer Roadmap – An interactive overview of technologies and skills every modern frontend developer should know.