Resilience in Coding: Miro Wengner on Thriving in the Software Industry

Resilience in Coding: Miro Wengner on Thriving in the Software Industry

In this insightful discussion, we sit down with Miro Wengner, an accomplished software engineer with a deep-rooted affinity for Java. Miro shares his professional journey, highlights the significant challenges in the field, and reflects on the key moments that shaped his career.
Profile
- đŠ Twitter: https://twitter.com/miragemiko
- đ LinkedIn: https://www.linkedin.com/in/mwengner/
- đ» GitHub https://github.com/mirage22
- đ Home Page: https://www.wengnermiro.com/
Fun fact: When I was in my early 30s, I took my sister to Amsterdam. We visited almost all the museums, and I realized they kept selling me a student ticket without asking me the whole time. And it happened many more times after that. So finally, when I was 38, my wife told me I should grow a beard and that I didnât look like a student, so Iâve had a beard ever since. So I could get a beer without showing id.
Bazlur: Can you tell us about your background and how you got started in the software industry?
Miro: I still remember the moment, like yesterday. It was shortly after the revolution in the Czech Republic, I was shortly 9, and we (me and my brother) got our hands on the first computer. It was real; It was a ZXSpectrum+2 with a Cassette player attached to it. Weâve been playing Bruce Lee and a bunch of others. I was very impressed; the idea of developing my own game was so present.
I started âstudyingâ the basic language, but I really had no idea. My gaming efforts ended with moving objects over the screen, but it was awesome.
Anyway, later on, I was influenced by my friendâs father. He did concepts for some car companies and always had the most powerful computer back in the 90s. Sometimes I watched him for a long timeâhis precision and attention to detail.
During my studies, I do remember a second very strong moment, which was joining Sun Microsystems. Entering the ground of the SUN changed my world perception, literally. It was like lightning; I got âaccessâ to the world where many things have started, and technologies or approaches we are using today have been âinvented.â It all began as a student job, and it has evolved over the years. I got the opportunity to contribute to projects, learn, and be influenced by amazing people. I do remember being hungry for information; it was my hobby in those days.
The third thing I realized at Microsystems was the power of knowledge sharing and the beauty of thought transformation. It was a lot like designing mechanical parts for a new vehicle, as I observed many times as a little boy. Of course, the difference was that we had a whiteboard and bytes, but it was no less exciting; we had âbeautiful hardwareâ at SUN.
Iâve met so many people at SUN that I canât even count them on all my fingers. Iâm so grateful they crossed my path, allowing me to participate in many amazing projects from Java, SunLabs, NetBeans, Glassfish, Hudson(Jenkins) to Solaris and others.
I actively sought out projects that would take my skills to the next level, and many times I felt like I was exactly where I needed to be. I also started presenting, writing the SUN blog, and things like that, but it wasnât as common as it is today; it was more like riding down a hill on a snowboard and doing some cool tricks, just exciting.
Those three moments greatly influenced my entire career and, I would say, life, and it was just the beginning.
Bazlur: What were some of the most memorable projects or challenges you faced, and how did they help shape your professional growth?
Miro: Itâs a great question; Iâd say all of them, one way or another. One of my first tasks was to help improve the validation and efficiency of automatic translations in 2001â2002. The team I was part of built a distributed system with many interconnected nodes across the globe. It was a great time because I gained extensive knowledge in various areas such as hardware, operating systems, scripting, the Java platform, and application development.
I remember that solving concurrency problems was very challenging. As a young engineer, I think it quickly advanced my skills. The critical point was that I was working with people at a different level of knowledge, just better than me, and I was looking to work with such people to improve my skills. Brainstorming with them was like a leap forward, and itâs necessary if one wants to be good at something. Just get out of your comfort zone and move.
Brainstorming with people who are better than me and have a different level of knowledge was like a leap forward. It is essential if one wants to be good at something. Just get out of your comfort zone and move.
Bazlur: Itâs great to hear about your experiences and how they shaped your professional growth. Iâm curious: What motivated you to specialize in Java?
Miro:This may sound ironic, but it was partly due to the constant instability of the operating system I used in my early days at university. I switched to Unix, which meant very few games as a result. A side effect was that I got time. I was on my way to find out how to program hardware with some âadvancedâ logic. So the Java 1.3 reference manual was handy, as C didnât satisfy me enough. I started âplaying aroundâ with Java 1.3 at university and, by chance, got an offer to join SUN shortly after, so my journey began.
In those days, the community wasnât as big as it is today, but the attitude was fantastic in different ways; we didnât have iMessage, WhatsApp, etc. Java kind of drove everyone, and I felt it too!
I remember once discussing virtual machine-based languages and why they can achieve optimal performance over compiled languages. Well, that piqued my curiosity and still does, and after all, Java has made fantastic progress in recent years. The Java platform results from several fields, such as mathematics, statistics, probability, and hardware. Itâs fascinating, and itâs all moving forward!
Bazlur: In your opinion, what factors have contributed to Javaâs continued growth and success in recent years?
Miro: Java has become a reliable platform, a tool that can be used to fulfill simple to complex scenarios. A tool that can be used to create maintainable and extensible solutions that can be diagnosed. Using Java platform tools, you can uncover and understand behaviour and identify bottlenecks, allowing developers to address them. At the same time, Java provides a significant level of optimization.
There is much more to the story, but to keep it brief, all of this would not be possible without the communityâs investment and the contribution of highly motivated individuals or groups who spend their free time informing the community of progress.
2018 was a milestone year for the Java platform with the release of Java SE 11. Tools like Java Flight Recorder and Mission Control were fully open-sourced, along with 6-month release cycles. You could say a new era for Java started here.
2018 was a milestone year for the Java platform with the release of Java SE 11. Tools like Java Flight Recorder and Mission Control were fully open-sourced, along with 6-month release cycles. You could say a new era for Java started here.
To summarize, itâs a community, open-source, and continuous evolution driven by community requests; itâs a âclosedâ loop that helps keep progress moving forward in the timeline.
Bazlur: Letâs shift gears and talk about the current state of software development. In your opinion, what are some of the biggest challenges that developers face today? Additionally, do you have any advice on how to overcome these challenges?
Miro: You ask excellent questions. Letâs investigate them a bit closer. Although we have come a long way since the days of Cobol and software testability, a considerable number of developers could still use assistance with applying SOLID programming principles effectively to create maintainable and extensible applications. Such applications should meet the core business requirements and avoid leading to insurmountable bottlenecks.
In fact, I recently wrote a book titled âPractical Design Patterns for Java Developers.â In it, I have outlined 42 design patterns and 13 anti-patterns that are essential in this cloud and concurrent application era.
In my opinion, this is the first challenge: creating transparent, maintainable, and extendable code, regardless of the language used. The second challenge lies in ensuring that the community stays informed about the significance of the ongoing evolution in software: understanding what it is, how it works, and why itâs essential.
This, in my opinion, is the first challenge: creating transparent, maintainable, and extendable code, regardless of the language used. The second challenge lies in ensuring that the community stays informed about the significance of the ongoing evolution in software: understanding what it is, how it works, and why itâs essential.
A third challenge can be learning to respond to anti-patterns, a natural state of software development. This is due to the dynamics of application development requirements. Itâs critical to recognize this fact and respond appropriately.
This brings me to the second question about referring newcomers: I would advise them to stay hungry for information (the what) and take the time to explore the essential details (the why) and how to apply the newly acquired knowledge (the how). When the solution doesnât fit, letâs explore what might. You see, it appears to be a short cycle moving along the timeline and generating an individualâs knowledge base. In principle, itâs not about jumping or mixing technologies; itâs about understanding and learning.
Bazlur: What advice would you give someone new to the software industry who is unsure about which career path to take? Could you also provide insights into the various roles within the industry, such as developer, quality assurance, manager, and developer advocacy, and the specific skills and interests needed for each of these roles?
Miro: This is another excellent question for which there is no trivial answer, as each personâs case is unique. Still, I would advise newcomers to match their hobbies and interests with the path they choose to take. Of course, define the direction first; it should crystallize based on current capabilities. Patience, thinking, and study are golden gifts. In my opinion, quick success does not lead to the desired satisfaction.
In my opinion, quick success does not lead to the desired satisfaction.
It is also essential to learn to fail because failure is the best way to learn on many levels. Itâs similar to anti-patterns in software.
This is similar to anti-patterns in software development â learning how to respond to them is more beneficial than trying to avoid them because they can be the natural outcome of progress.
From the different roles you mentioned, there is momentum that brings them together. It is a combination of knowledge of mathematics, statistics, and probability. I know it seems a little weird, but being able to apply the 80/20 rule makes things easier, and there is no AI that I believe can replace the human brain based on the current state of the art.
Bazlur: Thank you, Miro, for sharing your insights. Do you have any enjoyable or memorable stories from your time in the software industry that you would be willing to share with us?
Miro: Of course, I have many of them, but it would be a long article, and one story is special. It was in 2009 that I was asked to introduce speakers at the conference, and one of them, my good friend Andres Almiray, had a birthday. So an idea flashed in my head, and I started singing the song âHappy Birthdayâ in front of the whole audience. Honestly, Iâm not the best singer, but a nice effect was that the audience joined me during my performance. Andres didnât expect anything like that. Me neither, but it was great that we celebrated this day together.
Bazlur: Thank you so much for sharing your insights with us. We really appreciate your time. If we have any further questions, we will be sure to reach out to you. Before we end, is there any parting advice or resources you would like to share with our readers, such as a list of recommended books or any other helpful information?
Absolutely, one book I already mentioned above was recently published, âPractical Design Patterns for Java Developers.â I recommend it to developers, architects, project owners, or even managers.
In this book, the vehicle assembly is taken as a carrier abstraction, which allows for a discussion of the chosen approachesâ programming principles, decisions taken, and effects. The book contains links not only to supplementary literature but also to internal parts of the JDK. In addition, I recommend reading classic books like âIntroduction to Algorithms (Cormen and co.)â because the basics donât change.
Conclusion:Our dialogue with Miro serves as a testament to the resilience, continuous learning, and community involvement required to excel in the dynamic software industry. His journey and insights offer invaluable advice for anyone aspiring to make their mark in this field.
I hope you, as a reader, have found this interview beneficial. Stay tuned for next weekâs interview with another industry star.
Note: This comprehensive and insightful interview was conducted through various digital platforms, including Google Docs, email, and Slack. We welcome any suggestions to enhance our process, ensuring better future experiences.
Discover more from A N M Bazlur Rahman
Subscribe to get the latest posts sent to your email.
Type your email⊠{#subscribe-email}
Subscribe {#subscribe-submit}