Jim Grisanzio from Java Developer Relations talks with Bruno Souza, who is a Java Champion, leader of the SouJava User Group in Brazil, and a member of the JCP Executive Committee. Bruno received the first Java Community Lifetime Achievement recognition in October 2022 at JavaOne in Las Vegas. “I was totally surprised! I was jumping up and down! I was so honored! Itโs an honor to be a member of that group.” he said.
Bruno Souza is known as the “JavaMan” from Brazil and that nickname started back at Sun when Java was announced and Bruno started evangelizing the technology. Bruno’s message to the community was “Open Standards and Open Source” as he began his community building efforts around Java. He continually brought to Brazil FOSS and Standards experts for community discussions, and he advocated for a standards-based Open Source implementation of Java that would pass the TCK.
“Maybe my greatest pride, I think, is the idea of the Java User Groups community,” Bruno says. “We have OpenJDK for development and the JCP for standards, but for me the real Java community is the Java User Groups! These are all volunteers who meet and help others participate and learn.”
Bruno in recent years has been talking a lot about building reputation and career by embracing the open-source lifestyle โ writing code in Java, contributing to Open Source, and helping build the community itself. Since our work lives in public mailing lists and open-source code repositories, we earn credibility by being visible, contributing, engaging the community, and helping others get involve as well, Bruno says.
Bruno advises that career is a long-term project: “The more you work on it, the more you grow, the more results you have. So, the sooner you start the better. This is not a sprint! This takes time.”
Getting back to Java itself, Bruno, like most Java developers, prefers the 6-month release cadence over the older system of multi-year development and release cycles. There is a constant flow of technology now which allows for more interactions between the Oracle engineers and engineers in the community.
“Everything you see today in Java is possible because of the 6-month release process. I just loved it when the guys did that! I think it’s amazing! The fact that we now have two releases per year changed Java. I think weโre positioning Java to be even stronger in the years to come. Iโm very excited about the whole thing,” Bruno says.
Throughout this conversation Bruno provides a wonderful history of Java since heโs been involved from the very beginning! “People donโt remember that Java was a community from the very beginning!” Bruno says. โWe were able to look at the source code from the very beginning and that allowed us to build the community from the very beginning with lots of other companies joining.” And then the JCP was created to allow Sun and the community to discuss the standardization of Java. And then OpenJDK was a huge step because now Java would be everywhere with Oracle leading and building the community. “Java is more participative today under Oracle than during the Sun times.”
“Java + Open Source + Community: Thatโs what grows our career. That’s what grows Java too!”
Surprise and Honor of the Lifetime Achievement Award Quote: โI was totally surprised! And it was very cool because, you know, youโve been to keynotes on big events, and lots of things are scripted, lots of things are rehearsed. And I think with that one, the way they did it, allowed it to be real.โ Timestamp: 00:04:16โ00:04:34 Context: Bruno describes his genuine surprise and excitement upon receiving the first Java Community Lifetime Achievement honors at JavaOne 2022 in Las Vegas, highlighting the authenticity of the moment.
Advocating for Open Source and Standards Quote: โOpen Source plus Open Standards. Thatโs what we need, right? You know, we canโt really just do free software, right? Itโs not only open source. This whole idea of having open source software that is not standard basis, then you only have one implementation.โ Timestamp: 00:08:01โ00:08:13 Context: Bruno discusses his early efforts in Brazil to combine open source with open standards, emphasizing the need for a standards-based, open-source implementation of Java to ensure broader applicability and community involvement.
Java User Groups as the Real Community Quote: โBut for me, the real Java community is the Java user groups! Because those are all volunteer-based leaders helping people to meet each other, to actually participate and discuss, and learn.โ Timestamp: 00:12:47โ00:12:55 Context: Bruno underscores the significance of Java User Groups (JUGs) as the heart of the Java community, highlighting their role in fostering volunteer-driven collaboration, learning, and networking among developers locally and around the world.
Reputation as a Career Cornerstone Quote: โReputation is more important than your salary, is more important than your job, is more important than your house, right? Because reputation is going to give you all of that!โ Timestamp: 00:15:11โ00:15:19 Context: In his career session, Bruno emphasizes the critical role of reputation in professional growth, explaining that reputation underpins long-term success and opportunities more than immediate material gains. Remember, reputation is actually a dependency for success.
The Power of Java, Open Source, and Community Quote: โThis merger of those three things โ Java, Open Source, and Community โ I think thatโs what grows our career. Thatโs what grows Java too!” Timestamp: 00:36:51โ00:36:57 Context: Bruno summarizes his philosophy that combining expertise in technology like Java, contributions to open source, and active community participation drives both individual career growth and the advancement of Java as a platform.
Career as a Marathon Quote: โCareer is this long term thing that, the more you do it, the more you grow, the more results you have.โ Timestamp: 00:22:10โ00:22:18 Context: Bruno advises developers to view their careers as a long-term endeavor, not a short term sprint, stressing the importance of consistent effort in building reputation and skills over time, rather than seeking quick wins. Also, he stresses that if you find yourself unemployed, that’s not the time to start networking. You have to always be networking and always be building your career.
The Impact of Javaโs Six-Month Release Cadence Quote: โEverything you have seen on Java today is possible because of the release cadence. I just love it when the guys did that.โ Timestamp: 00:28:31โ00:28:40 Context: Bruno praises Javaโs shift to a six-month release cycle, crediting it for enabling rapid innovation and fostering greater interaction between Oracle engineers and the broader Java development community.
Javaโs Community Roots Quote: โPeople donโt remember that it was a community from the beginning. You know, the fact that it was not Open Source, it was not Free Software, it had very complex license, but it allowed us to build that community in the very, very beginning.โ Timestamp: 00:30:29โ00:30:46 Context: Bruno reflects on Javaโs early days, noting that despite its initial complex licensing, and not having a standard FOSS approved license of the time, the ability to access source code from the start under the Sun license fostered a strong community foundation that contributed to Javaโs success today. Over time, however, Sun released OpenJDK under the GNU General Public License (GPL) in 2006.
Oracleโs Role in Javaโs Evolution Quote: “Oracle released more coding to OpenJDK, they built a community, they maintained the whole idea, they maintained Java, they maintained the specifications. Oracle did the best it could have done. I think that Java today is more participative in OpenJDK than it was during Sun’s time.” Timestamp: 00:33:51โ00:33:57 Context: Bruno discusses Oracleโs stewardship of Java after the acquisition, suggesting that Oracleโs less protective approach compared to Sun allowed for greater community participation, enhancing Javaโs development through OpenJDK.
Encouraging Broader Participation Quote: โIf you are the only person that does something and you want more people to come and help you in your user group, in your volunteer work, whatever it is that youโre doing, if youโre the only person that does everything and you want other people to participate, thereโs just one way. You have to stop doing something!โ Timestamp: 00:34:23โ00:34:38 Context: Bruno shares a philosophy on community leadership, explaining that stepping back from some responsibilities is essential to encourage others to contribute, thereby strengthening the community. Watch for this in communities. Leaders know how to do this to encourage more participation.
JavaOneโs Vibrant Return Quote: “JavaOne was awesome! I really enjoyed the talks. I really enjoyed the people that were there and had great conversations. There’s people that came to JavaOne for the first time and they’re like, oh man, it’s such an amazing event. So I’m glad we’re back!” Timestamp: 00:00:31โ00:00:43 Context: Bruno expresses his enthusiasm for the return of JavaOne 2025, highlighting the eventโs energy, the quality of technical talks, and the community engagement. It was a significant moment for Java developers new to the community and also established developers.
A Gift for Career Growth Quote: โI wrote 15 emails, one for each chapter of the book that gives you one main idea from each chapter. So if you download the book, Iโm going to send you all of those 15 emails.โ Timestamp: 00:38:36โ00:38:47 Context: Bruno offers a practical resource for developers, sharing that he and Heather Van Cura wrote a book on career growth, and he provides free access to the first chapter and a series of emails summarizing key ideas to help developers apply these principles. The book is called “Developer Career Masterplan: Build your path to senior level and beyond with practical insights from industry experts.”
Since 2022, Oracleโs Java Developer Relations team has been celebrating the contributions of Java community members through a special Java Community Lifetime Achievement Recognition. These prestigious honors recognize individuals whose lifelong dedication to Java has advanced the technology and strengthened the community globally.
Java Community Lifetime Achievement Recognition
This unique program is led by Sharat Chander, Senior Director, Java Product Management & Community Engagement. As part of the program, Iโve been interviewing the community recipients on the Dukeโs Corner Podcast to share their inspiring stories, technical insights, advice to new developers, and passion for all things Java. Their work embodies the spirit of Open Source innovation, driving progress through collaboration, contribution, education, advocacy, and community building.
This year represents Javaโs 30th anniversary, and Oracle has been leading Java since acquiring Sun Microsystems in 2010. The ecosystem is now thriving around the world. And the Java Developer Relations team is committed to recognizing those who have shaped that ecosystem by empowering developers, solving complex problems, and sharing knowledge. From authoring influential books and highly technical newsletters to organizing transformative conferences and contributing code, these recipients have left a significant impression on Javaโs evolution. Their efforts highlight the power of open, community-driven development, where individuals collaborate to extend the technology, innovate solutions, and mentor the next generation of developers.
The podcast interviews that follow reveal a shared ethos among the recipients โ a commitment to continuous learning, problem-solving, and fostering human connections across vast networks of developers. Discussions also cover Java 25โs latest innovations with specific JEPs, the platformโs evolution from decades ago, and the recent six-month release cycle that enables iterative improvements.
The recipients also share personal insights about contributing to Java โ from submitting code to OpenJDK to creating and running Java User Groups โ emphasizing the importance of earning credibility by collaborating with other developers to integrate code and build the community. Their advice to students and new developers centers on learning how to learn, solving real-world problems, leveraging community resources, and building portfolios of work hosted in public repositories such as GitHub. These pioneers continue to inspire, which helps ensure the platformโs continued growth in a rapidly evolving tech market saturated with AI. The recognitions not only celebrate past achievements but also pave the way for future contributions, reinforcing Javaโs role as a leader in modern Open Source software development.
And finally, during the interviews all of the recipients speak fondly of Sharat Chander who leads the program at Oracle. Shar has been the Java community’s ever present leader for the Java’s entire lifetime, starting back at Sun and now at Oracle. And it surely shows! Every recipient enthusiastically appreciates Shar’s tireless efforts to engage developers wherever they are and help grow the community.
Below are the audio podcast profiles of the six recipients honored so far, with summaries of their podcast discussions, the full transcripts of the conversations, blogs with quotes and context from the interviews, and links where the interviews appear in full or via clips on various platforms. This post will be updated as more individuals are recognized, celebrating the ongoing legacy of Javaโs community pioneers.
Podcast Summary: Mattias Karlsson is a Java Champion who was also honored with the Java Community Lifetime Achievement recognition at Jfokus in February 2024. โI was shocked and honored, very humbled,โ Mattias said about being recognized for his lifetime of achievements in the Java community by Sharat Chander of Oracleโs Java Developer Relations Team. Mattias, a Stockholm-based engineer and long-time leader of the Stockholm Java User Group, shares his journey with Java, from its early days to its current role in todayโs modern tech ecosystems. He also talks about the evolution of Jfokus, a leading annual Java conference he organizes, which has grown from a small JUG into a major gathering of over 2,000 developers from diverse backgrounds. Mattias highlights Javaโs enduring appeal, driven by its robust JVM, backward compatibility, and vibrant community. He also reflects on the six-month release cycle, calling it โbrilliantโ for its balance of stability and innovation, and shares insights on mentoring developers and using AI. When discussing how students learning programming will inevitably encounter Java due to its widespread use, Mattias said, โSooner or later they will end up with Java anyway.โ Finally, the episode underscores the unique culture of the Java community and Jfokus as a conference for its blending of culture, professionalism, and a welcoming atmosphere.
Podcast Summary: Venkat Subramaniam was recognized with the Java Community Lifetime Achievement honors by Oracleโs Sharat Chander at Devoxx UK in May 2024. Venkat is a Java Champion, founder of Agile Developer, and teacher at the University of Houston. In this conversation Venkat expresses humility about his accomplishments and credits industry giants and his passion for learning and sharing. He reflects on his decision years ago to focus on teaching and technology, writing books, and speaking at conferences and Java User Groups. In fact, Venkat praises Java User Group leaders as โunsung heroesโ for their organizational efforts to build the Java community locally and globally. Venkat highlights Java 25โs evolving features like structured concurrency, scoped values, pattern matching, and the instance main method, which helps simplify the learning process for new developers. He also cites Javaโs agile six-month release cycle, which helps improve the smooth evolution of Java, increases developer engagement, and makes Java more suitable for todayโs rapidly expanding technology markets. Emphasizing teaching as reciprocal learning, Venkat advises students to engage mentors and senior developers to collaborate with juniors and welcome them into the community. He stresses that knowledge grows when shared. His mantra? Teaching fuels learning and he lives that ethic every day as he interacts with thousands of developers around the world.
Podcast Summary: Bruno Souza, a Java Champion and SouJava leader, reflects on his decades-long impact in the Java community, from early evangelism in Brazil to making the Java Community Process more open and fostering global open source growth. He credits Java User Groups as the โreal Java communityโ for connecting and empowering developers worldwide. Bruno emphasizes: โJava + Open Source + Community โ thatโs what grows our career. Thatโs what grows Java too.โ On career development, he calls reputation โmore important than your salary, job, or house,โ and urges developers to see professional growth as โa marathon, not a sprint.โ Discussing Javaโs evolution, Bruno highlights the shift to a six-month release cycle, saying, โEverything you see today in Java is possible because of the six-month release process.โ He notes that this regular cadence has driven both innovation and stronger connections among Oracle engineers and the global developer community, encouraging continuous learning, open collaboration, and lasting opportunities for developers in the Java ecosystem.
Podcast Summary: Trisha Gee, head of developer advocacy at Gradle, shares her 25-year Java journey, starting as a university student in 1997. Honored at Jfokus, she emphasizes Javaโs community-driven ecosystem and the JVMโs performance as key to solving real-world problems. Trisha discusses AIโs role, noting that developers excel in problem-solving beyond just code generation. She advocates for continuous learning, sharing knowledge, and building relationships to empower developers. Her work at Gradle bridges technical and business needs, ensuring that the voice of the developer resonates. Trisha encourages new developers to engage with the community and embrace discomfort as a path to growth. On Java 25, she praises the six-month release cycle for enabling incremental improvements like pattern matching, which simplifies adoption. She advises students to use modern IDEs and resources like Head First Java to ease learning and to contribute by sharing knowledge at conferences.
Podcast Summary: Cay Horstmann, a celebrated author and educator, was surprised by his JCON recognition. Known for Core Java and decades of blogging, he discusses Javaโs evolution, particularly Java 25โs recently implemented beginner-friendly features like simplified main methods. Cay highlights task-driven learning and unconferences like JCrete for sparking innovation. He advises students to focus on learning how to learn, a critical skill for navigating rapid technological change. His teaching philosophy emphasizes practical engagement over rote memorization, which helps prepare developers for lifelong growth in a dynamic field. Cayโs contributions continue to shape Java education and community engagement. He appreciates Java 25โs JEP 512 for compact source files, making learning easier, and values the six-month release cycle for steady improvements. Cay encourages students to tackle small projects and contribute to Java by exploring open-source opportunities.
Podcast Summary: Heinz Kabutz, creator of The Java Specialistsโ Newsletter and JCrete unconference, was honored at Devoxx UK. His newsletter, launched in 2000, reaches developers in more than 150 countries and offers technical insights and building a global community. Heinz discusses JCreteโs interactive format, which fosters life-changing connections and innovation. He highlights Java 25โs features like flexible constructor bodies and simplified main methods, which helps ease the on ramp for new developers. Heinz advises new developers to solve real-world problems, build GitHub portfolios, and engage with JUGs to expand career opportunities. He also emphasizes the Java communityโs generosity and collaborative spirit. He praises Java 25โs JEP 513 for flexible constructor bodies and the six-month release cycle for iterative enhancements. Heinz encourages students to solve math problems on Project Euler and contribute to OpenJDK by submitting verified bug fixes.
Stay tuned for more updates to this post as we continue celebrating the developers shaping the Java community via the Java Community Lifetime Achievement recognition! I’ll keep this post pinned to the top of this blog.
Jim Grisanzio from Java Developer Relations talks with Trisha Gee, an author, a Java Champion, and a Developer Advocate at Gradle. In February 2025 at Jfokus in Stockholm Trisha received the Java Community Lifetime Achievement Award from Sharat Chander from Oracle Java Developer Relations. Trisha has been a Java developer for 25 years, and since 2011 sheโs been actively blogging, presenting technical sessions at conferences, and evangelizing Java globally. Recently, Trisha has moved from a traditional developer advocate role to more of a facilitator of developer advocacy internally at her company as well as externally. She works with engineering teams, marketing, teams, and sales teams to ensure the voice of the developer resonates throughout the organization and the community. Trisha is always evolving, sheโs constantly growing.
In this conversation we talk about the JVM, the six month Java release cycle, writing code, the unique features that make Java special as a technology and as a community, Generative AI, design patterns, understanding requirements, asking questions, problem solving, edge cases, documentation, testing, open source, standards, advice for students, and teaching her 9-year old how to code in Java. Trisha is fascinated with the entire development life cycle of software projects and especially the skills developers need now for working with AI.
Sharat Chanderโs Community Impact 00:03:02 – 00:03:37 Context: Trisha discusses receiving the Java Community Lifetime Achievement honors from Sharat Chander at Jfokus 2025, emphasizing his role in fostering a collaborative and inclusive Java community. Quote: “It feels like a very personal thing from him. [Shar’s] such a huge powerhouse in the community. Obviously, he cares about the technology, but he understands that the technology isnโt enough. It is about individuals stepping up but not doing stuff for themselves, doing stuff to enable other people, to empower other people. Itโs the community that makes it a great place to be. And Shar is such a huge champion of that. He makes you feel really appreciated for making the efforts to help others and to be involved in the community.”
Developer Advocacy Role Evolution 00:06:07 – 00:08:36 Context: Trisha explains her current role as head of developer advocacy at Gradle, highlighting how she bridges the gap between developers, marketing, and sales to amplify the developerโs voice in the organization and throughout the community. Quote: “Iโm doing more strategic thinking for Gradle. Itโs one thing for a developer advocate to go off and say, hereโs whatโs new in Java. Itโs another thing for a senior advocate to work with the head of marketing to say, our messaging to developers needs to be more like this or that. This is what the developers care about. But the guys who are paying โฆ they might not know what that means. So this is kind of how you bridge the gap between what the developers care about and what the people with the money care about.”
Developers as Problem Solvers 00:14:14 – 00:16:19 Context: Trisha discusses the misconception that developers primarily write code, emphasizing that their true core skill is problem-solving, especially in the context of Generative AI. Quote: “The naive way of thinking about what developers do is that we generate code, we write code. But itโs not the same thing. โฆ Itโs not the writing of the code, the typing of the code that really slows us down. Itโs understanding what is the real problem, what are the weird edge cases, how do I get it to fit inside my current application, what design patterns do we have โฆ The job of the developer has always been to say, what do you really want? And how can I give it to you within the constraints of the existing system, organization, and team?”
The Art of Asking Questions 00:18:04 – 00:18:26 Context: Trisha reflects on the importance of questioning as a critical skill for developers, noting how junior developersโ curiosity can drive innovation. Quote: “The best genius Iโve ever worked with ask really good questions. And thatโs where, like this idea of, asking questions and not taking anything for granted is not just for senior experienced people. Itโs a mindset that we need to come with. โฆ Itโs a really good skill.”
Javaโs Enduring Strengths 00:19:35 – 00:23:25 Context: Trisha explains why Java remains relevant after 30 years, highlighting its technical strengths and the supportive community that fosters innovation and inclusion. Quote: “Thereโs a number of things. I think itโs a combination of the technology and the community. Write once, run anywhere is one of the things that kind of helped it get started. The JVM is designed for performance. And then weโve got the ecosystem of Open Source, but also standards, which stops things going absolutely crazy. It feels like whoever you are, whatever kind of programmer you are, thereโs something there for you. And thereโs a kind of inclusion in all of that. Like, weโre all here, weโre all here to help each other. And that is a very difficult thing to leave behind and go somewhere else.”
Six-Month Release Cycle Benefits 00:26:53 – 00:30:18 Context: Trisha discusses how Javaโs six-month release cycle enables incremental improvements, citing examples like Project Loom and pattern matching. Quote: “Since we moved to two releases a year, weโve been able to release incremental steps towards improving the language and the JVM without having to do like a big piece of work and then release it in a version of Java. Doing things in a small incremental way allows you to get faster feedback, allows you to iterate and allows you to deliver something better. And I think we can really see that in the two releases a year with Java.”
Teaching Java to a Nine-Year-Old 00:31:46 – 00:34:09 Context: Trisha shares her experience teaching her nine-year-old daughter Java using modern tools like IntelliJ IDEA and resources like Head First Java, highlighting how accessible learning has become. Quote: “I was just teaching my nine-year-old how to code Java, obviously. She gets the IDE straight away. โฆ Things have changed a bit since I learned how to code, but not that much. You can teach the old school way of like, hereโs a main method. โฆ And you can teach the basics of the IDE to help lighten the mental load for someone learning it for the first time.”
Advice for New Developers 00:36:28 – 00:38:15 Context: Trisha offers advice to new developers, emphasizing the importance of embracing continuous learning and being comfortable with not knowing everything. Quote: “The overwhelming thing for a lot of these junior devs is that they realize they know very little and they need to learn a lot. โฆ The most important skill to come out with after learning to program is learning how to learn and learning to be comfortable with the fact that you donโt know it all โ and you will never know it all.”
Final Thoughts on Programming 00:38:53 – 00:39:32 Context: Trisha summarizes her key takeaways, emphasizing that programming is about community, continuous learning, and embracing discomfort for growth. Quote: “Programming is about writing code into the computer, but thatโs not your key skill. Programming is about the community, the people, the network you make. โฆ The more you learn to be uncomfortable and to work within that discomfort and embrace it, I think the sort of the more successful youโll be.”
Java 25โs Incremental Improvements 00:26:35 – 00:28:39 Context: Trisha comments on Java 25, noting that while sheโs not as focused on individual releases as before, the six-month release cycle allows for small, impactful changes that make the language more approachable and improve developer experience. Quote: “Iโm not as on top of each individual release as I used to be. โฆ But in some ways, that distance gives me a different lens to answer that question. Since we moved to two releases a year, โฆ each one has at least one thing in it which is kind of cool and new and maybe syntax that we havenโt used before or maybe a performance under the covers.”
Learning Through Modern Resources 00:35:17 – 00:35:46 Context: Trisha discusses how modern resources, like YouTube channels and interactive tools, make learning Java more accessible, especially for those who struggle with traditional reading or non-native English speakers. Quote: “Thereโs so many more different ways of learning these days. โฆ If reading is a struggle for you โฆ then thereโs a whole bunch of YouTube channels and you can learn more visually. You donโt have to just read dry code on a piece of paper. You can see interactively how things are going to work, and I think thatโs cool.”
Embracing Growth in Learning 00:10:36 – 00:13:27 Context: Trisha reflects on her own personal growth and passion for continuous learning, explaining how her career evolved from coding to advocacy to engaging with diverse teams, driven by a desire to grow and solve problems. Quote: “Iโm always looking to grow. Iโm always looking for growth. I am constantly evolving and constantly growing. โฆ Itโs really a selfish thing. How can I help developers be happier? Well, I need to be able to speak to the folks who pay our salaries so that they can learn what makes us happy.”
JVMโs Performance Advantage 00:24:26 – 00:25:26 Context: Trisha highlights the JVMโs efficiency for high-performance applications, recounting her experience at a low-latency trading platform where Javaโs performance was leveraged without needing specialized code. Quote: “The JVM is designed for performance. โฆ If you write good readable Java code with small methods, not too many nested like conditionals or too many weird for loops, youโll get good performance from Java out of the box. Youโll get better performance out of the box than writing it in anything else.”
OpenJDKโs Incremental Progress 00:27:14 – 00:27:40 Context: Trisha references OpenJDKโs Project Loom as an example of how the six-month release cycle allows for incremental concurrency improvements, benefiting developers through iterative feedback and development. Quote: “The ability to split Loom into a series of different deliverables which are going to improve concurrency. โฆ Thinking about it in terms of what can we incrementally release, how can we separate this into individual things, has allowed the engineers to make incremental improvements that can be used by developers.”
Jim Grisanzio from Java Developer Relations talks with Cay Horstmann, a professor, author, and Java Champion. In April 2025 in Cologne, Germany at JCON Cay received the Java Community Lifetime Achievement recognition from Sharat Chander on the Oracle Java Developer Relations Team.
This conversation covers the evolution of Java, the constant polishing of the library, the upcoming Java 25 release, the six-month release cycle, improvements in the Java language to make the technology more beginner friendly, teaching methodologies, conferences vs unconferences, and also timeless task-driven learning methods for students and developers to keep their skills sharp. Also, Cay has been writing books about Java for decades and years ago he was instrumental in initially getting Java integrated into the curriculum for the computer science AP exam in the United States.
โOne of the reasons why Java is still so vibrant 30 years in is that there is a constant stream of low-level innovation going on. Itโs pretty amazing.โ
Javaโs Continuous Low-Level Innovation Timestamp: 00:13:45โ00:14:12 Context: Cay discusses why Java remains vibrant after 30 years, emphasizing the impact of the Java six-month release cycle and the steady stream of incremental improvements. He contrasts this with how individual features might not seem groundbreaking alone in any given release, but cumulatively they drive significant progress. He also ties this process to the natural competition among programming languages, where Java’s consistent updates help it stay relevant in a fast-evolving field. Quote: “And I think one of the reasons that Java is so vibrant 30 years in is that itโs doing a really good job. I mean, if you think about it, every six months, thereโs a new version that has some features that some are interested in for some people, some for others. And there is a constant stream of low-level innovation going on. Very few of these features seem like momentous on their own, but altogether, it is pretty amazing.”
Polished Java Library Through Continuous Refinement Timestamp: 00:07:05โ00:07:33 Context: Cay highlights how Javaโs library has been refined over decades, making it more polished and user-friendly compared to other languages. He explains that this comes from ongoing attention to the API, where small complications are identified and simplified over time, and while each change might seem minor in isolation, the repeated process over 20 to 30 years results in a highly refined system that stands out for its logic and ease of use. Quote: “There is the evolution, but thereโs also the constant polishing of the library. So the API gets attention. You say, this is just a little bit too complicated. And someone says, yeah, sure. And then some small simplification comes. It never looks [like] much of a deal once, but repeat that over 20, 30 years, and you have really a super polished library. You do not have that with other languages.”
Java 25 and Beginner-Friendliness
Simplifying Java for Beginners Timestamp: 00:08:49โ00:09:16 Context: Cay explains how updates in Java 25 will reduce syntactic complexity for beginners by removing the need for a class in simple programs and improving I/O methods. He notes that while beginners have historically managed with templates, this change makes the language less intimidating from the start, and he appreciates its regularity compared to Python’s mix of top-level code and methods, which allows for a smoother introduction to programming concepts without unnecessary distractions. Quote: “Nevertheless, Java 25 now does make this a lot easier. You now no longer have to have a class for simple programs. You still do need to have a main method, which I think is actually fine because itโs more regular than Python. In Python, you have a slightly confusing mix of top-level code and then methods. And in Java, itโs just methods for simple programs.”
Visual Clarity in Java 25 for Educational Content Timestamp: 00:09:16โ00:09:49 Context: Reflecting on rewriting his textbook, Cay notes how Java 25โs simplified syntax reduces visual clutter, benefiting students and textbook authors. He describes how textbooks often feature numerous small sample programs, unlike larger developer projects, and removing elements like public static void main makes the code less overwhelming visually, allowing developers to focus on core ideas rather than ceremonial syntax that can distract them while learning. Quote: “At first I thought, you know, big deal, but now Iโve rewritten the first three chapters of Core Java with this and I really, really like it. It just is visually less distracting when you write a textbook. Thereโs lots and lots of small sample programs… and public static void main, you know, if you even have one in a framework, you would never even have it. But in a textbook, yeah, itโs nice.”
Simplified I/O in Java 25 Timestamp: 00:10:24โ00:10:33 Context: Cay discusses how Java 25 introduces simpler I/O methods, making it easier for beginners to learn and use. He says that this eliminates odd constructs like system.out, replacing them with straightforward static methods, which helps beginners master a few key concepts early on and progress smoothly for the first several weeks before transitioning to more advanced object-oriented features. Quote: “To read something now, you no longer need to use system.out, which was always kind of an odd beast. You just say io.printon. Itโs a static method.”
Teaching and Learning Methodologies
Task-Driven Learning for Lifelong Skills Timestamp: 00:19:42โ00:20:10 Context: Cay advocates for task-driven learning, where students engage with material through hands-on experimentation, which he believes is more effective than traditional lectures. He stresses that while learning the basics is necessary, the real value comes from applying them in practical ways, which encourages trial and error to build motivation and skills. This approach aligns with how professionals tinker and iterate in real-world work scenarios. Quote: “You really want the learner to engage with the material by trying things out, by kicking the tires, by failing and then succeeding. There are some times when you need some fundamentals, you canโt build without knowing some basics. So Iโm not against teaching those as facts. But then you quickly want to motivate students by putting things to work.”
Teaching Students to Learn How to Learn Timestamp: 00:18:11โ00:18:29 Context: Reflecting on his teaching career, Cay emphasizes that teaching students how to learn is more valuable than pushing specific subject matter, which is especially important given the rapid evolution of technology. He shares how he shifted focus from content delivery to guiding students through vast information landscapes, helping them navigate changes like in Android programming where details quickly become obsolete. Quote: “I realized that subject matter really does not matter that much because it changes anyway. What really mattered to me is how students could learn to learn better, and how they could find their own way in that morass of materials out there.”
Interactive Learning in Small Classes Timestamp: 00:18:39โ00:18:58 Context: Cay describes the shift from large lectures to small, interactive lab sessions where students collaboratively fix outdated code, promotes practical learning. He explains that by using last year’s notes as a starting point, students learn to adapt to shifts in technology, identifying principles for troubleshooting and using tools like AI or Stack Overflow to aid the process. Quote: “I really stopped lecturing. We had, like, a lab session every day where I said, here are the lecture notes from last year, none of this stuff works anymore, letโs fix it together. And in fact, none of this stuff did work anymore because this or that shifted. And so then what we really learned is how can you tease out the underlying principles that help you understand where even to look for the failures?”
Challenges of AI Tools in Education Timestamp: 00:23:46โ00:24:07 Context: Cay addresses the challenge of students using AI tools like chatbots to complete homework, emphasizing the importance of learning through personal effort. He observes that while younger students seem to intuitively know when to avoid these tools, older ones struggle, and he compares it to self-practice in other skills, noting that exercises are meant for cognitive development, not just output. Quote: “Whatโs the value in that though, right? Itโs not that people want to have another program that prints prime numbers. Itโs that those exercises are there to make you think and to make you a better programmer. And so at that point, one needs to learn. And for students, this is hard. One needs to learn not to use the chatbot. I mean, itโs just like if you want to learn Italian or to play the piano, you need to do it yourself.”
Contributing to the Java Community
Instrumental Role in Javaโs AP Curriculum Integration Timestamp: 00:04:39โ00:05:02 Context: Cay remembers his role in helping integrate Java into the U.S. Advanced Placement Computer Science Curriculum when he was advocating for a minimal subset of Java to focus on fundamentals. He mentions being invited to the committee due to his expertise in Java books and teaching, and how they successfully transitioned from C++ while resisting too many additions that could complicate the course unnecessarily. Quote: “And so we actually managed to do that. I was very proud that we did not just switch to Java, but we switched to the smallest possible subset of Java that we could. Because I felt that the programming language should not be the key of this course. It is a course in fundamentals of computer science.”
Blogging and Conference Contributions Timestamp: 00:03:11โ00:03:35 Context: Cay reflects on his contributions to the Java ecosystem through writing books, blogging, and speaking at conferences, which he initially underestimated as community work. He describes the effort involved in daily blogging at large events like JavaOne, which included late nights after sessions and parties. He viewed this work as an important responsibility tied to his press pass and a way to share insights widely with developers at the event. Quote: “I mean, Iโve been writing books, of course, for as long as Java existed. I do a lot of blogging, I speak at conferences, and I guess thatโs community work too. For many years, I would go to every JavaOne and I would snag myself a press pass and then I would blog about it. Every day. So it was actually, it was hard work.”
JCrete and Unconferences
Unconferences Foster Dynamic Learning Timestamp: 00:29:00โ00:29:57 Context: Cay praises the informal, interactive format of unconferences like JCrete in Greece. Events like these prioritize participant-driven discussions over the tight schedules and polished presentations of traditional corporate events. He explains that topics emerge from the attendees and their interests, with groups forming naturally around shared ideas, allowing for real-time adjustments like slowing down explanations or skipping known parts. These sessions are far more engaging than standard conference talks and better for deep learning. Quote: “The interesting part is what goes on in the hallway. And so the unconference kind of says, okay, letโs give us more hallway. Letโs make it so that there is more interaction… That interaction is much more effective because I feel when Iโm there, I can stop the speaker and say, that was too fast for me. Or can you dig into this a little bit further? Or we can all tell the speaker, oh, we know this part. Just move on. So you have a much better way to learn.”
JCreteโs Mix of Experts and Novices Timestamp: 00:30:40โ00:31:09 Context: Cay highlights how JCreteโs mix of experts and novices fosters innovation and learning, encouraging young programmers to participate despite feeling intimidated. He says that novices often bring fresh perspectives given their experience from emerging industries, while experts also gain insights into new applications. He urges employers to recognize the value of such networking opportunities. Quote: “What most of these unconferences purposefully try to do is get a mix of experts and novices. Because for me, itโs also super interesting to know how someone who is just getting started, how they use the technology. Also, sometimes the people who get started, they get started in more innovative industries than what we already know… So we want young people in these events.”
Lifelong Learning Strategies
Setting Aside Time for Learning Timestamp: 00:17:22โ00:17:34 Context: Cay advises developers to dedicate time to learning and make deliberate choices about what to study, which is especially important given the rapid pace of technological change that never seems to stop. He says that this has been a constant in the field for decades, and while it can feel overwhelming, it’s normalized through consistent habits, which is different from some students who may need more guidance to adopt these practices early. Quote: “You have to absolutely, you have to do two things, right? One is you have to set aside a certain amount of time every week, every month to learn. And secondly, you have to make choices what to learn and what not to learn.”
Task-Driven Learning for Developers Timestamp: 00:21:16โ00:21:54 Context: Cay shares his approach to learning new technologies by setting small, practical tasks, which he believes is an effective way for developers to acquire new skills. He gives examples like when he was starting with basic cloud deployments before advancing, noting that this method avoids the overwhelm of building full apps immediately and mirrors how people naturally learn through motivation and iteration via small tasks. Quote: “I think this task-driven learning is how people learn. So when I first had to learn like a cloud, AWS and that kind of stuff, you know, I said, okay, I just want to have something running in the cloud. And then I said, okay, now I want to do something with the database. And so I set myself small tasks that were not of the ‘build an app lift’ because I didnโt yet know what app I might want to build.”
Final Advice: Hands-On Learning Timestamp: 00:32:46โ00:32:56 Context: “In his closing remarks, Cay reiterates the importance of hands-on, task-driven learning as a lifelong strategy for developers. He encourages figuring out personal goals and learning incrementally to achieve them, repeating the process to stay current. He ties this back to his own experiences in updating books and adapting to new tech over 30 years. Quote: “No, really, my advice is to take the time to learn new stuff and do it by some hands-on process. Figure out what you want to do and then learn just enough to do that. Repeat and rinse.”
Jim Grisanzio from Java Developer Relations talks with Heinz Kabutz from the Island of Crete in Greece. Heinz has a PhD in Computer Science, publishes the The JavaSpecialists’ Newsletter, and runs the JCrete Unconference. Heinz is also a Java Champion and a teacher, and he cares deeply about the technology and the community. Recently, Heinz was recognized for his Lifetime Achievement by Sharat Chander from Oracle Java Developer Relations. โI was on cloud nine! I was so honored,โ Heinz said.
In this conversation Heinz previews some JEPs in the upcoming Java 25 release, he comments on the value of the 6-month Java release cycle, he outlines how heโs contributed code to OpenJDK (and how others can too!), he offers some detailed advice to students getting involved in software development for the first time, and he talks at length about the opportunities for developers who participate at the JCrete Unconference. โI have seen people whose entire careers got revolutionized just by coming to JCrete once. Itโs really life changing!โ See an outline of quotes below by subject and also listen via the link above.
Solve Real-World Problems to Learn Programming Timestamp: 00:51:18 Context: While discussing advice for new students or those transitioning into software development, Heinz emphasizes a practical approach to learning programming. He says that beginners should focus on solving real-world problems relevant to their lives, using Java as the tool, obviously. This method not only makes learning engaging but also helps learners see immediate value in their coding efforts, fostering a deeper understanding of programming concepts through practical application. Quote: “My advice is if you want to learn how to program, it doesnโt matter what language it is. Letโs take Java because thatโs a great language to work in. Look for problems that youโve got that youโre trying to solve in your real life and then solve them using Java.”
Build a GitHub Portfolio Timestamp: 00:51:37 Context: Heinz advises aspiring developers to create a public GitHub account to showcase their coding projects, even if the initial code is relatively rudimentary. He says that building a portfolio of projects, regardless of their simplicity, demonstrates progress and commitment to potential employers. This approach allows beginners to document their learning journey, gain visibility in the developer community, engage mentors who can help and provide guidance, and build confidence without fear of judgment for early, less polished work. Quote: “And then as you become more adept at coding, go and create yourself a GitHub account and the little projects that you do, put them there. Make them public. And no oneโs going to judge you for basic, very, very badly written code when you were starting off.”
Project Euler for Algorithmic Growth Timestamp: 00:54:44 Context: Heinz recommends Project Euler (projecteuler.net) as an interesting resource for developing problem-solving and algorithmic skills. He says that the site offers mathematical problems that require coding solutions, encouraging developers to think critically about algorithms rather than relying on brute-force methods. This approach, he says, helps programmers refine their ability to devise efficient solutions, which is a critical skill in software development. Quote: “The other thing that Iโve done a lot of is this nice little website called Project Euler, projecteuler.net, and theyโve got maths problems that you have to solve with code. … You have to think about the algorithms. Youโve got to think about whatโs a clever way to solve it.”
Programming as Addictive Learning Timestamp: 00:55:30 Context: During a recent conversation with an 18-year-old computer science student, Heinz highlights the addictive nature of programming. He describes how solving coding problems can create a powerful sense of achievement, releasing dopamine and endorphins that make programming highly engaging. This insight supports the motivational aspect of learning to code because the thrill of problem-solving can drive continuous learning and persistence in the field. Quote: “I said to him, you need to be careful because programming is very addictive. … Itโs very addictive because once you start solving problems, you get this incredible dopamine hit, endorphins being released, like youโre a cocaine high without taking drugs.”
Quotes on Java 25
Flexible Constructor Bodies in Java 25 Timestamp: 00:45:46 Context: Heinz discusses JEP 513, Flexible Constructor Bodies, a feature in Java 25 that enhances constructor flexibility. He explains that this JEP allows developers to validate parameters before calling a superclass constructor, addressing issues like ensuring valid data (e.g., non-negative age for a Person class). This improvement, which progressed through multiple preview stages, simplifies and strengthens constructor logic, making it easier to write robust code. Quote: “Thereโs this new one now, the JEP 513, Flexible Constructor Bodies. … It does allow us to do checking of values, of parameters, before calling super. … So, for example, if you have a valid range of values, for example, person with age, we donโt want the age to be negative, so we can check the age in the constructor before calling super, which is really great.”
Simplified Main Methods for Education Timestamp: 00:48:30 Context: Heinz highlights JEP 512, which introduces compact source files and implicit main methods in Java 25, aimed at reducing confusing boilerplate code for beginners. He says that this feature simplifies the traditionally complex public static void main declaration, making Java more approachable for new learners. By removing unnecessary syntax, it allows educators to focus on teaching core programming concepts, which is a change he observed being adopted in educational materials like the book Core Java. Quote: “One of them is called JEP 512, which has compact source files and instant main methods. … Itโs way better, way easier to understand than the old version of working with Java. So from an education perspective, thatโs great.”
Quotes on OpenJDK
Importance of Verifying Bugs Before Submission Timestamp: 00:23:01 Context: Reflecting on his experience contributing to OpenJDK, Heinz stresses the importance of thoroughly testing and verifying bugs before submitting them. Many times you’ll find out, it’s not a bug! He advises developers to download and build the JDK to confirm the issue, ensuring they donโt waste maintainersโ time with invalid reports. This disciplined approach, drawn from his own journey as an external contributor, enhances the quality and credibility of submissions to the Java bug database. Quote: “I would recommend anybody who wants to log a bug, download the JDK, build it, try out whether your bug actually is a bug before sending it, because youโre just going to waste peopleโs time.”
Contributing Fixes to OpenJDK Timestamp: 00:23:26 Context: Heinz shares his evolved approach to contributing to OpenJDK, where he not only identifies bugs but also provides fixes. By submitting a pull request alongside a bug report, he streamlines the review process for maintainers. This method, developed through his experience finding obscure bugs in concurrent classes, demonstrates a proactive and efficient way to contribute to the Java development community. Quote: “Find the bug and then fix it. Then you can submit a pull request together with a bug.”
Parallel Multiplication in BigInteger Timestamp: 00:25:10 Context: Heinz describes his contribution of a parallel multiplication algorithm to OpenJDKโs BigInteger class, inspired by a newsletter on parallel Fibonacci calculations. He implemented the Toom Cook 3 algorithm using Javaโs fork-join framework, which was accepted and later improved by other developers. This contribution showcases how personal projects can lead to impactful additions to the JDK, enhancing performance for large-scale computations. Quote: “The other thing I added was a parallel multiply to big integer. … I wrote the code where I parallelized the ToomCook3 algorithm using fork join. And it actually got accepted.”
Quotes on the 6-Month Java Release Cycle
Skepticism Moves to Success Timestamp: 00:43:07 Context: Heinz remembers his initial skepticism about Oracleโs decision to adopt a six-month release cycle for Java, given the previous multi-year development and release model. He says that Oracle successfully implemented this faster cadence, allowing for more frequent updates and improvements. This shift has made it easier to introduce and refine features over time, which aligns with the dynamic needs of developers as they learn, code, and implement their own systems. Quote: “I was very skeptical when they announced six-month release cadence. … First of all, I didnโt believe that they could do it, but they have. Theyโve done a really good job with it.”
Flexibility of the Release Cycle Timestamp: 00:44:02 Context: Heinz praises the flexibility of the six-month release cycle, which allows developers to integrate changes quickly if they miss any given release window. He mentions how his bug fixes for concurrent classes were deferred from Java 25 (an LTS release) to Java 26 to ensure stability, which shows how the rapid cycle provides multiple opportunities to contribute updates when they are ready. Quote: “I absolutely love it because itโs like if you miss the one train, you go next month. … So if you miss the one, youโll have another chance in six monthsโ time.”
Preview Features in the Release Cycle Timestamp: 00:44:26 Context: Heinz appreciates the use of preview features in the six-month release cycle, which allows the Java team to test and refine new functionalities over multiple releases. He cites the structured concurrency feature, now in its fifth preview, as an example of how this iterative approach ensures robust and well-tested additions to the platform. Quote: “The other thing which is really great is all the different previews. So theyโll try a feature with a preview version. … The structure of concurrence is on the fifth preview. So theyโre still trying to figure out exactly how to do it.”
Quotes on JCrete
Life-Changing Impact of JCrete Timestamp: 00:11:20 Context: Heinz passionately encourages developers to attend JCrete. He describes the event as a transformative experience due to its unique unconference format and setting on the island of Crete. He emphasizes that the eventโs impact is so significant that attendees should prioritize it, highlighting its role in fostering deep professional and personal growth through networking and collaboration. Quote: “If you ever get a chance to get a place at JCrete, donโt turn it down. You really, really want to make it. Just like sell your house, get a double mortgage and come because itโs really life changing.”
Career Transformation Through Networking Timestamp: 00:11:30 Context: Heinz explains how JCreteโs intimate and collaborative environment facilitates powerful networking opportunities that can reshape careers for developers. By connecting with influential Java community members, including many Java Champions, participants gain access to new professional networks, job opportunities, and collaborative projects that can significantly grow their careers. Quote: “Iโve seen a lot of people whose entire careers got revolutionized just by coming to JCrete once. Because you make so many connections there that itโs really life changing.”
Advanced Technical Discussions at JCrete Timestamp: 00:09:10 Context: Heinz describes the unique format of JCrete, where sessions involve small, circular discussions rather than traditional lectures. He highlights how these sessions attract advanced Java developers, including those who have contributed to the JDK from Oracle and OpenJDK from the community. The interactions at JCrete promote in-depth technical exchanges, such as discussions on the ZGC generational garbage collector, that push the boundaries of Java expertise. Quote: “Itโs literally sitting in a circle, one person saying, I want to talk about the ZGC generational garbage collector, the new generational one, and what effects thatโs going to have. And then youโll have the guy that actually wrote it saying, well, actually, itโs pretty good, and theyโll have a whole discussion going on there.”
Quotes on Development Processes
Thoughtful Bug Submission Timestamp: 00:26:46 Context: Heinz warns against hastily submitting bug reports to OpenJDK, emphasizing the need for careful validation to respect maintainersโ time. In a funny way he expresses concern that his podcast comments might encourage a flood of poorly considered bug reports, underscoring the importance of ensuring submissions are genuine and well-documented to maintain trust and efficiency in the contribution process. Quote: “You need to because you want to โ What I really donโt want is out of this talk to have, you know, 100,000 of your listeners now are going to go, hey, letโs log some bugs. … Make sure that it really is a bug!”
Considering Behavioral Impact of Fixes Timestamp: 00:28:00 Context: Heinz remembers a scenario where he identified a performance issue in hash sets but chose not to submit a fix after realizing it would alter the observed behavior of sets, potentially causing confusion for developers who expect a certain perfomance. This experience highlights the importance of considering the broader implications of changes in a widely-used system like Java, balancing performance improvements with consistency. Quote: “And then as I was writing the fix and I was going through it, I realized that it would substantially change the way, the behavior of these sets, which wouldnโt be incorrect, but it would be very inconsistent with how it works at the moment.”
Earning Credibility in Open Source Timestamp: 00:29:50 Context: Heinz discusses the culture of Open Source contributions and draws parallels with craftsmanship in construction. He emphasizes that building credibility through small, well-executed contributions is key to earning trust within the community. This approach, he says, mirrors the gradual skill-building process in other skilled trades, reinforcing the value of steady, thoughtful engagement. Quote: “You start contributing slowly with things that you know well. Get credibility. You earn your way. Thatโs what I really like about the culture of open source.”
Quotes on Community Building
Technical Newsletter as Community Builder Timestamp: 00:06:15 Context: Heinz reflects on how his The Java Specialistsโ Newsletter, running for 25 years, has created a sense of community among its subscribers in 150 countries. By sharing personal anecdotes along with deeply technical content, the newsletter promotes a tribal connection, making subscribers feel part of a global Java community that values both knowledge and friendship. Quote: “People feel part of something. We all want to be part of a tribe. And the people that sign up to our newsletter, theyโre part of that community.”
Generosity of the Java Community Timestamp: 00:07:34 Context: Heinz praises the Java communityโs culture of generosity and collaboration, noting its unique willingness to share knowledge and resources freely. He contrasts this with other communities, highlighting how Java developersโ kindness and supportiveness create a nurturing environment for learning, collaboration, and technical innovation. Quote: “I find the Java people are just the best. Theyโre just the nicest people in the world, really. … We are so helpful with one another. Weโre just so kind and generous.”
Oracleโs Stewardship of Java Timestamp: 00:58:07 Context: At the end of the interview, Heinz praises Oracle for its stewardship of Java since acquiring it from Sun Microsystems in 2009. Initially skeptical about the acquisition, Heinz acknowledges Oracleโs significant investment in resources and its support for the Java communityโs growth, allowing it to thrive despite competitive pressures. Quote: “I want to give a shout out to the amazing stewardship that Oracle has given Java. … The amount of effort that Oracle has put in, resources youโve put in, and also the fact that if allowed, I would say, the community to flourish, even though they are competitors and so on, youโre still allowed to flourish, has been really remarkable โ Great job!”
Here’s my interview with Nate Schutta, an author, a teacher, a software architect, and Java Champion. Nate lives in the United States and teaches computer science to university students. He loves teaching and he loves learning, and he specializes in exploring the big picture of complicated systems in his career as a software architect. The conversation covers the Java community, the value for developers if they contribute to Java User Groups (JUGs), the benefits and some possible drawbacks of AI, and the engineering feat that is the Java Virtual Machine (JVM).
Nate has a passion for learning and hereโs his advice for young developers and engineering students. โThe fundamentals canโt be skipped! And they take time to learn! You just have to put in those hours to understand the basics, and then you can graduate to the more complicated stuff.โ
Nate tripped over Java a bit in school and joined his first Java project right in his first job. Once he heard about this new Java project, he said: โHeck, yeah! I want in on that!โ
Here is a nice selection of quotes from the interview with Nate. When you talk to someone as articulate as Nate, it’s hard to select specific quotes to print in text. It’s best to just listen to all of the interview! Anyway, a quick scan across some text is nice too! Each quote includes a timestamp and some context on software architecture, learning, education, contributing to the Java community, Oracleโs role, and the use of AI in development.
On the Role of a Software Architect and Trade-offs
Quote: “Our job on a software project is to see that bigger picture, to understand what those tradeoffs are, to sort of get out of some of the tribalism and evangelism around real specific technologies and be able to answer, well, why is that something we should use? How is that going to make things better for our business, for our developers, et cetera?”
Timestamp: 00:03:00โ00:03:16
Context: Nate explains the essence of software architecture, emphasizing the need to balance trade-offs and maintain a broad perspective on system design to ensure decisions benefit both the business and developers.
On Teaching Soft Skills for Architects
Quote: โA lot of being an architect is people skills and soft skills… I make my grad students read How to Win Friends and Influence People by Dale Carnegie.โ
Timestamp: 00:06:54โ00:07:23
Context: Nate highlights the critical role of communication and influence in software architecture, incorporating soft skills into his graduate-level curriculum by recommending a classic self-help book to prepare students for real-world human relations.
On the Engineering Mindset and Curiosity
Quote: โThe common thread I see through the best engineers that Iโve worked with or that I know, itโs this intense curiosity and itโs this passion to understand whatโs going on here. Itโs this tinkering mindset.โ
Timestamp: 00:11:25โ00:11:37
Context: Nate describes the mindset of great engineers, emphasizing curiosity and a desire to tinker as key drivers of learning, which, for some, can transcend formal education and is essential for mastering complex systems.
On Teaching and the Value of Learning the Hard Way
Quote: โI think you maybe appreciate it more when youโve had to do it the hard way. Like I teach a cloud class to at the [university] and I make my students do things the hard way first to introduce them to why we now have these easier and simpler abstractions.โ
Timestamp: 00:15:27โ00:15:42
Context: Nate explains his teaching approach, where he has students perform tasks manually (e.g., bare metal setups) before introducing tools like Docker, to help them appreciate the value of modern abstractions.
On the Importance of Fundamentals
Quote: โThe fundamentals canโt be skipped and they take time. You know, thatโs the other part of this. I think people are in such a hurry to get past. Itโs like you just have to put in those hours to understand the basics and then you can graduate to the more complicated stuff.โ
Timestamp: 00:16:43โ00:16:55
Context: Nate stresses the necessity of mastering foundational concepts before leveraging advanced tools, using photography as an analogy to illustrate that tools alone canโt replace understanding the basics.
On His Love for Learning
Quote: โAnd I just love to learn stuff. And so for me, that opportunity to just be exposed to brand new things, the web, you know, weโre just starting to play around with that, being able to build an app that you can use on the web and weโre getting a whole new deployment topology and everything is brand new, like, heck yeah!”
Timestamp: 00:21:09โ00:21:25
Context: Nate expresses his passion for learning, describing how his excitement for new technologies, like Java and web development early in his career and how that experience drove his career and continues to motivate him today. You can hear it in his voice, can’t you? :)
On Javaโs Evolution and Stewardship
Quote: โI think one of the things I find remarkable about Java… It has managed to evolve along with the types of programs that weโre writing and the demands that we place upon that. And I think thatโs remarkable and speaks an awful lot to the stewardship. And I donโt think we give enough credit to the people behind that. It’s an incredibly complicated thing.โ
Timestamp: 00:22:35โ00:22:57
Context: Nate praises the stewardship of Javaโs evolution, implicitly acknowledging the contributions of Oracleโs engineering team and others, for enabling Java to adapt to modern programming demands without breaking legacy systems.
On the JVM as an Engineering Feat
Quote: โThe JVM is amazing. And just the feat of engineering, what thatโs enabled over its entire lifespan… the fact that itโs managed to evolve and grow and adapt to new programming styles and new approaches is amazing.โ
Timestamp: 00:29:30โ00:29:51
Context: Nate praises the Java Virtual Machine (JVM) as a remarkable engineering achievement, noting its adaptability over decades, which supports a wide range of applications and programming styles.
On Simple Contributions to Open Source
Quote: โOne of the simplest things you can do is you find a bug in the docs or in a tutorial and report it. Contribute a pull request for, hey, this isnโt right. It should be this instead… If youโve ever gone through a tutorial and the steps are wrong or this command got changed and youโre spinning your wheels for two hours, well, you just saved a whole bunch of people a lot of time by fixing the docs.โ
Timestamp: 00:35:24โ00:35:49
Context: Nate encourages new developers to contribute to open source projects, even in small ways like fixing documentation. He emphasizes that these contributions are valuable and help others avoid frustration.
On the Collaborative Nature of Software Development
Quote: โMe helping you doesnโt diminish me. Itโs not a zero sum game. Itโs not like I now have less because Iโve helped you. Itโs better for both of us.โ
Timestamp: 00:36:24โ00:36:31
Context: Nate emphasizes the collaborative ethic of the Java community, where helping others benefits everyone, which reinforces the value of contributing knowledge and support.
On Personal Passion for Teaching
Quote: โOh, for sure… When I was probably in high school, I thought, well, Iโll be a teacher of some sort. I just didnโt know what.โ
Timestamp: 00:39:42โ00:39:53
Context: Nate reflects on his lifelong passion for teaching, which began in high school and led to his current role teaching graduate courses and engaging with the community.
On Mentorship and Giving Back
Quote: โSo many people helped me. So many people reached out a hand and helped me up. So my job is to turn around and help somebody else to and help them understand something or put them in a position to succeed.โ
Timestamp: 00:41:56โ00:42:16
Context: Nate reflects on his duty to mentor others, inspired by the support he received, emphasizing the importance of helping the next generation of developers succeed.
On AI as a Learning Tool, Not a Shortcut
Quote: โYou still have to have the expertise. You still have to have the fundamentals. People seem to think they can skip over the fundamentals and somehow AI will be the salve over all of that. And where I think we get in trouble is if you just blindly accept whatever the AI says.โ
Timestamp: 00:45:04โ00:45:24
Context: Nate discusses the role of AI in learning, cautioning that it should be used to enhance understanding, not to bypass learning core concepts, especially for students.
On Using AI to Support Learning
Quote: โI love it in the sense of, if a student is using this, because actually one of my students did this last spring, he was doing some stuff with Kafka and he couldnโt quite figure out how to get it configured and so he asked you know chat GPT or whatever how do I configure this and like, oh hereโs what you do and heโs like thatโs awesome.โ
Timestamp: 00:52:38โ00:52:52
Context: Nate shares an example of a student using AI (ChatGPT) to learn Kafka configuration, illustrating how AI can save time and aid learning for those with foundational knowledge.
On Encouraging Thoughtful Use of AI in Education
Quote: โI think thatโs the worst thing you can do, frankly, as a teacher is to pretend itโs not there and all my students arenโt using it. They are. So figure out how to incorporate it, figure out how to give them that advice on how to use it intelligently and not just as a total crutch to avoid learning the concepts that weโre trying to teach you.โ
Timestamp: 00:54:18โ00:54:33
Context: Nate advocates for integrating AI into education thoughtfully and encourages teachers to guide students to use AI as a learning aid rather than a way to avoid understanding core concepts.
On Encouraging Community Involvement
Quote: โI would just encourage folks to get involved, whether thatโs attending your local user group, volunteering to give a talk at your local user group, contribute and be a part of this community. Thereโs nothing thatโs holding you back and donโt let your experience level be an issue.โ
Timestamp: 00:54:59โ00:55:15
Context: In his closing remarks, Nate urges developers to engage with the Java community through simple actions like attending user groups or giving talks. Contributions at any level are valued in the Java community.
Dukeโs Corner Podcast with Francisco Contreras, who is a Java developer and a co-organizer at Nicaragua JUG. Francisco has been a Java developer for over 15 years and he runs his own consulting business with customers around the world. He’s passionate about Java the technology and also Java the community.
“When I learned Java at university I felt like I could do anything with that,” he said, talking about how Java enables him to engage developers, write really great software, and also grow a business. But Java goes well beyond just technology. When Francisco had some personal challenges in his life, he was happy that many community members immediately offered to help him. “The sense of community in the Java environment is just awesome!”
Dukeโs Corner Podcast withย Ivar Grimstad, who is a Java Champion, a JCP Executive Committee Member, and a Jakarta EE Developer Advocate. Ivar is based in Sweden but travels to over 40 events a year talking about Java and Open Source with thousands of developers.
He feels passionately about contributing to Java projects as the best way for young developers to learn Java and connect with the community, especially at Java conferences. Ivar has been working with Java professionally since 2000, but he’s been solving problems with code since he was a little kid around 12 or 13 years old.
“Java has been my go-to language for everything!” he says. “It’s been here for 30 years and it’ll probably be around for 30 more!”
Transcript
00:00
Ivar Grimstad, welcome. Welcome to Duke’s Corner.
0:02
Thank you, Jaymon. Happy to be here.
0:04
It’s great to see you here. We met a couple of times. There was some recently at some conferences in Japan and elsewhere, and I thought it would be great to have a little session here on Duke’s Corner to find out what you do. I see you are doing a lot of conferences.
0:21
You do a lot of travel and stuff. I sat in on your session in Tokyo, I guess about six months or so ago. And the audience was really into it. And so I figured, hey, I want to talk to this guy for this podcast here. So you’re in Sweden and you’re a developer advocate for Jakarta EE.
0:39
So let’s start off with that. So what do you do as a dev advocate for Jakarta EE?
0:45
yeah so before i get into that i actually have a you you said we were meeting at conferences and stuff and i think we met i can’t remember it and i certainly i’m sure you can’t either but i’m pretty sure that we must have met at Java 1 in the Open Solaris launch sometime in the early 2000s.
1:07
Because I remember I was at Java 1, because you used to work with Open Solaris, right?
1:13
Yeah, yeah, I was at Simon. Open Solaris was my baby. Yeah, so I…
1:19
That was before like MacBooks were a thing and stuff. And so I went to Office Depot across the street from Moscone and I bought one of these small, you know, the small laptops, the mini laptops that had some version of Windows on it. And I just unpacked it,
1:37
brought it down to the Open Solaris Lounge and somebody there gave me a USB drive and I just plugged it in. I never booted it on Windows.
1:45
Oh, okay.
1:48
So since you were working with that, you must have been there. I got some really good help from the people in the lounge there to set up the drivers and stuff to get the keyboard to work. Yeah.
2:01
Oh, that’s a great story. Yeah, this goes way back. That was so much fun. We had a bootable CD, and we had a USB, and that was like gold back then. Everything has changed now. Wow. Yeah.
2:18
Well, so, yeah, so Jakari, that’s what I work with on a daily basis. And as I said, a lot of my work is speaking at conferences. So I travel around and do talks. So, yeah. That’s basically what I do. Jakarta EE, that’s the continuation of Java EE that used to be under the JCP at Sun and Oracle.
2:47
So that was moved over to Eclipse Foundation. And we continued it there and rebranded it to Jakarta EE from Java EE. I was so lucky to get into the role of the developer advocate there. So that’s what I’m doing these days.
3:01
Cool. I mean, so if we crossed paths way back with Open Solaris at Sun, so you’ve been in this business for a while. You’ve been involved in open source and advocacy and community building basically for a long time.
3:15
Oh, yes. Yes. I thought back before I ended university or graduated from university in 98. I think in 96 or 97 was when I first encountered Java. Somebody talked about this stuff and I bought this book, Java 1.0 in a nutshell from the bookstore and went down to the computer room because we didn’t have our own computers.
3:41
These old Unix machines logged in, had Java there and did Hello World. And that summer I worked, had a summer job at a consulting company in Oslo. And they put me on the client site because I had worked with them the year before so they trusted me.
4:00
And we were working on the internet banking for that Norwegian bank, and they were using Java, and they were doing it in Swing. So I was put on that, and I think I did some modifications to some of the Swing components they were using. So that was kind of the first…
4:18
time I was doing Java and the open source part of it that came a little later I got exposed to it through the mostly I think I can I can thank Java 1 for most of my this career path because that’s where I got in you know the JCP and started getting
4:39
involved there and that was I guess it was back in 2017 2007 Seven, yeah. Where I signed the agreement with the JCP.
4:52
So it seems like the technology first and then the community second for you.
4:56
For me, at that point, it was. But it was sort of the community around Java that also… made it a natural thing for me. And also at that time, in the company I was working, we had lots of Java developers. This was a tech consultant company. And we had an internal,
5:16
what we call a Java competence group or sort of an internal jug or Java user group. where we had uh i think we had monthly meetings where we had technical like presentations and discussions and we also got people from the java bin which is the
5:33
java user group in oslo coming to present with us at the company and we also went to their event so so that’s where i I started attending Java user groups. So that was the community that kind of brought me into there. But at the time, that early in my career,
5:50
I guess it was mostly the tech at work and community at the conferences I was allowed to go to. And that was usually a Java one every year those years.
6:01
Yeah, I’ve been to about 10 Java 1s over the years because I haven’t always been involved in Java because I was on the Solaris project for, I guess, about a decade at Sun. We used to piggyback off of all the Java operations because they were very, very big, you know.
6:18
So we would go to their conferences basically and tag along. Yeah. And we did, you know, the Sun Tech Days had a big tour. And so we used to, you know, we used to go on that and we would obviously go to Java 1. One of these things about these open source projects is that they’re so dynamic,
6:39
they just foster this notion of contribution. With Jakarta EE being Eclipse, obviously that’s an open source project there, right? And Java itself is less… sort of the meta, that’s the canonical open source project, right? A project of projects. Talk a little bit about this notion of contributing to open source in general, and specifically Java,
7:04
since you’ve seen a lot of it.
7:07
Definitely. And what I usually say when people are asking why you should get involved in, and also the reason why I got involved in open source is that we tend to consume a lot of open source technologies in our daily work. And at some point,
7:25
that scale is not even you don’t contribute back to what you’re actually consuming and and you’re relying on a lot of these technologies. And if you’re not contributing back, you’re kind of losing control over over what’s happening with this technology, which direction is it going? Is it fitting our needs?
7:46
Should we get involved to contribute back so we can kind of make sure it’s still the technology we can rely on? So it’s kind of a give and take, a win-win situation there. I think most contributions that are sustainable comes from when you are using the technology yourself.
8:07
So you’re kind of feeling the pain points and you’re figuring out it’s easier for me to fix it than ask somebody else to do it. that was kind of my first contribution into open source that was actually sort of that but it wasn’t related to java it was um scala that was was kind of coming at
8:28
that time and they had a lot of these getting started with scala guides like a couple of pages with some simple examples And they were translated to a lot of languages, but they didn’t have the Norwegian translation. So I translated it into Norwegian and committed it to their subversion or whatever they had.
8:50
And they had one comment back about some of the formats I’ve used in the documents. So I fixed those and they accepted it and it was published on the webpage the next day. So that was kind of a big thing to have my name out there on some piece of stuff that people could use.
9:07
So how long did that take to do? It wasn’t a big document, so some hours, maybe a day or two in total. So I just spread it out a little.
9:18
So you truly understood the concept then in terms of actually doing some work and contributing it back and then seeing the result of that. Yeah, yeah. It’s interesting because sometimes I ask that question and I get these very interesting stories where somebody will say that they did a contribution and they
9:37
wrote up a blog about it and then went to bed, right? Just, you know, here’s the contribution. This is what I did. They submitted it and then just, you know, articulated, you know, this is what I did basically in a blog post and went to bed and then woke up the next morning and they’ve got like 500,
9:51
you know, comments on the blog and stuff. Yeah. And this thing is sneaking through whatever million list they contributed to and everything. And they’re just so blown away by the result of the contribution. I find that fascinating.
10:05
It is. Yeah. And I think many people who are kind of struggling with where should I start? What should I do there? Maybe they’re thinking a little bit too big and thinking, hey, I can fix this big, massive project that everybody is using rather than focusing on this is a little
10:23
piece of code or piece of document or a graphic. It doesn’t have to be code to be open source contribution. It can be anything, especially documentation and tutorials are what all open source projects are super happy to have contributions on. So it could be a small piece
10:40
Like my three-page or whatever Norwegian translation, it doesn’t take me much effort to do it. But it is actually a fairly visible thing because it’s one piece of work that can be published. And if you contribute to, for example, a super vital if statement that solves a big security problem internally in some open source app server,
11:06
You may have saved the world, but people may never notice that it was here because it’s just hidden down there. So find some kind of thing that you can actually show, like the blog post you’re talking about, show what you’ve done.
11:20
I was at a conference once, actually it was last year in Vietnam. It was FOSS Asia, and there were 5,000 students there. And it was really kind of cool because it was just all these kids. They’re all 22, 23, 24 years old and from multiple universities in Vietnam.
11:41
And a lot of them would ask, what can I do? Because they hadn’t left Vietnam. They’re too young. They haven’t traveled, but they know this stuff is global. And all these projects are global. And I said, well, I mean, you can start a user group. You can get involved in user groups.
12:00
But think in terms of contributing something. Take what you’re learning in school and do some sort of contribution. Get involved in GitHub. Get your name out there within the project that you’re interested in. And start small. And if you do that as a student, when you graduate, you already have a portfolio.
12:19
And they thought that was a really great idea, and they were really excited about it. And a bunch of them were actually learning Java. And it was really interesting to see. I like to talk about this concept of contributing because it sort of equals the playing field. There’s a lot of famous people in technology and stuff,
12:36
and there’s a lot of people who are new and they’re young, right? What can you do? Well, you can contribute. And also, for me, it’s like I’ve changed careers multiple times. I got into this career really late. I’m older than everybody. And I got in because of this specific reason is things move fast and you can
12:55
contribute and you can get yourself known. Because not all professions have this concept. Yeah.
13:03
Yeah, so when I chose this kind of career path, my family were, are you sure you want to do this? People are, things are happening so fast there. You have to always learn. You can never, you know, in many other professions, you can just learn your trade and then just do it, you know. And continue.
13:25
But in our industry, you have to learn continuously. And the second you stop learning, especially these days with AI coming in all over the place, and if you’re not on top of it, it’s hard to stay here in this industry. And one of the best ways of learning things is by doing. Like we learn with our fingers.
13:48
We learn by doing it. You can read a lot of books about programming, but when you start actually doing the coding, that’s when you learn. I mean, that’s not special for our industry. I mean, who would go on a plane if the pilot had learned flying by reading about it?
14:09
So it’s learning by doing and the best way of getting away from just the sort of exercises you have at schools and university and doing something that is actually industry relevant. is an open source project that many people are using. And if you can contribute and learn so much about that technology that you can
14:30
contribute to it and learn by doing it, by building that open source technology, you’re actually building, you’re giving yourself the benefit of learning. So contribution is by the word itself, it’s you give something, you know, but it’s actually you’re getting something because you’re getting all this knowledge by doing it.
14:50
And that’s what’s fascinating about open source that we can just, you know, trade this. I do this and I learn this. also when you when you contribute to an open source project there are usually committers there that has been there for a long time and many of them are like you
15:05
say famous in this industry has written books or speakers at conferences or are well-known figures in the industry and you get to learn with them by solving problems together with them so you you learn from the best and you see how they write code how they solve problems So it is the best way of learning, I think.
15:27
So by doing that with telling the students in Vietnam to go out and contribute to learn, that’s the best way of doing it.
15:37
Yeah, it’s interesting. I’ve spoken with many developers who have told me that their first experience maybe at a conference and there would be approaching one of the senior developers with like a question or something after a session and they were so surprised that the you know senior or famous person was so willing to just
15:58
chat for like a half an hour in the hallway about this obscure bug that they found somewhere you know and there’s a really famous people you know it’s like I was talking to Gosling, and he just was going off and off and off on this great thing.
16:12
You’re talking to James Gosling here, and he gave you all that time. That’s a normal story. Same thing with Venkat Subramanian. He’s a sweet guy. He loves to teach. He loves to engage people. He goes to be in big conferences and stuff, but he also goes to small user groups. He interacts with everybody at all levels.
16:34
So I think what you said is really apt in the sense of the more senior people, the more famous people many times are very humble and they just want to chat about technology.
16:45
Yeah, and we have this technology that kind of unites us. And because most of us are, some are more geeky than others, but we’re usually, we’re coders, we’re probably geeks in everybody else’s eyes. And many of us are introverts, even though if we’re speakers, we’re not necessarily comfortable in a social context.
17:08
But when we have this technology together that we can talk about, then we can open up more easily. Yeah.
17:13
That’s really interesting you say that because although I’m not a coder, I’ve taken a few programming classes in school and stuff, but I can’t say anything without a camera in my hand. So when I go to a conference, I’m usually taking photographs, right? Even if I’m working and managing the event,
17:32
which I had to do a lot of times at Oracle and previously at Sun, where we’d have to actually manage the event or run a user group, something like that. I always have my camera with me to shoot the event because I’m always interested in profiling developers and stuff.
17:45
But I can’t talk to anybody socially unless I have the damn camera with me. So it’s a topic of conversation. So when you were in school, did you choose software for any of these specific reasons or you just like complex solving puzzles and complex problems? Yeah.
18:05
Yeah, so I feel I just slipped into this career path by coincidence. I think I am a problem solver. I was good at math and physics and those kind of subjects. I got a computer fairly early. It was a, I don’t know if anybody knows, it was a Sharp MC700 or something. It has an integrated cassette player.
18:30
So I could load it with BASIC on a cassette. So I learned a little bit of coding on that one, but it was mostly games. My coding started, I think, when I got a Commodore 128, which came with BASIC when you open it up. And I had this…
18:52
a little program on my sharp computer that I could use to test me in words you know when we were learning English at school or English and French at school you had this test you get 20 words that you have to know until tomorrow and then you got a
19:07
test just translated and this program let me type in the words and the translations and it would test me until I had all 30 words correct Cool. It’s like an algorithm. But the Commodore didn’t have this. So I made it. I coded it in BASIC. So I could still test myself in these words.
19:28
And that was my first programming thing. After that, I elected some programming at the high school I was at, where we learned some Pascal coding, mostly by writing on paper. Because the computer room were limited access to, so we can only get in there like a couple of hours or so.
19:49
So we had to write the programs on paper first and then have them evaluated by the teacher. He was kind of the walking compiler and then typing in. Different times, you know. At that time, when I was like 12, 13, I would say I was probably a decent programmer. I could solve problems using code.
20:11
But when I came to university, the others were so much more clever and so much better because they were really into this kind of stuff more than me. So I was still the problem solver, but not necessarily the one typing the code.
20:28
So what was the difference with them, though?
20:30
I’m not sure, actually. But I think my interests were as far as it’s sort of useful within the kind of the ecosystem I know about. And that was sort of having the cassette tapes were my interface to the world. I didn’t have a modem or anything. So internet wasn’t a thing then. Yeah, yeah.
20:54
But these guys had probably were in environments where they had some… Internet, it was in these young days. So I started university in 93. So internet was there, but it wasn’t like web browsers and stuff. It was just you logged into a terminal and text-based everything. But they’ve been doing that for a while, I think.
21:16
So they had been in these more hacker kind of environments. Right. at home, and were more, yeah, I’m going to just have a master’s degree in programming, where I was just, I wanted to be a marine engineer, and I didn’t get in there, so I ended up on computer science.
21:40
But after the first classes, I felt at home there, and yeah, this is my thing. When did you trip over Java? It must have been in 96 or 97.
21:55
So right around Java, yeah.
21:58
Yes, it was Java 1.0, and I wrote the Hello World on the Unix terminal at the university. And I got to use it in a, well, quote-unquote, professional capacity at my summer job in 97. And I started using it in work around 99, 2000, and ever since, yeah.
22:24
So it’s been your main focus since then?
22:26
Yes, it has been. I’ve touched into other programming languages, but I’ve ended up with Java. That’s been my go-to language for everything. I guess it is. I think Jane Gosling, he wanted to be the blue-collar language. It’s a multipurpose language you can use for anything.
22:46
It’s kind of the thing you would use to solve the most problems with. Not kind of the special cases, you would use something else, but most cases you can use Java. And I think the timing when I started working, Java was conquering the server side. So everything was J2EE at that time.
23:08
And that was a money machine for everybody around there. All the old COBOL systems had to be replaced by J2EE because they had to solve this 2000 year problem anyway. So they had to do something and J2EE was there. And it was a brilliant technology at the time. And that was when I started working with it.
23:28
So that’s been my thing since.
23:31
So you’ve had the benefit of seeing really the whole evolution of Java. So let’s talk a little bit about the technology. I always ask everybody, why Java? What makes it special? Because, I mean, like in your case, it’s been your primary focus for your whole adult career. So talk a little bit about the evolution.
23:53
You talked a little bit about how you got involved early on and now we’re 30 years later here. 30 years old, I guess next month is Java. Why Java? What makes it special?
24:05
Yeah, it’s a good question. I think at the time, Java was everywhere. If you were working anywhere as a consultant, coder, programmer in the industry, you were using Java for everything. It works for most things. The language itself, I guess… People complain that it’s too verbose, it’s too complicated to do certain things.
24:35
I think it’s one of the good things about why Java is still around here is its simplicity and its readability, its simple rules. The things that made C++ hard, for example, isn’t hard in Java. You have the garbage collector.
24:51
I hope you don’t have to think about the memory things, the issues you would have in C and C++. The multiple inheritance that you have in Java. C++ just makes things hard. People miss it and Java says that by not having it, it’s hard. But I think having these kind of simple guidelines when they created the language
25:12
makes it easy to learn, easy to use. And if you look at how it’s evolved over these years, oh my god, it’s… When generics came in Java 5, I mean, that was a big thing for us to get over. And then the next one, I guess, was Java 8 when you get streams.
25:32
And now the releases are coming so fast that you don’t remember anything that’s coming in the different versions. But it’s evolving and taking away these small pain points slowly and still being relevant after 30 years. I think it’s impressive. But it’s a good question, why Java, why not something else? It’s been here for 30 years.
25:53
It’s probably going to be here for 30 years or more.
25:57
It’s interesting you mentioned C and C++. I remember taking C and kind of liking it. I can handle it, right? And then I took C++ and I choked. I vomited immediately. It just didn’t sit at all with me. I’m happy to hear that Java solved that problem. Okay.
26:20
Yeah, I think from learning the basic on Commodore machines and then using Pascal, which is more like function-oriented, and when I saw C for the first time, I thought it was, well, this is just complicated. Where is the real words, like the begin and the end of the functions? It’s these stupid curly braces. I don’t understand them.
26:47
But then Java came around and it had this stuff and you got used to it.
26:54
Okay, so you got involved in the technology and the community, you were contributing, and you also got involved in the JCP. Yes. The Java Community Process, which is a specification body. How did that come along?
27:10
Yeah, that’s a good story, actually, because it also shows what can be a motivating factor of these things. And I’ll keep coming back to Java 1, because I think Java 1 has had a big impact on my career. One of the things at Java 1 was that all these bofs at evenings where they had
27:32
these JSRs that presented discussions and JSR, Java specification requests, and all these acronyms. It was JAXRS and JAXWS and JAXXML and whatever. It’s all these. these words and at the beginning it was so impressive to just sitting in a room and hear people saying these letters like it meant something and not understand a
27:56
single thing and then started slowly to understand and then oh yeah it’s JSRs and started noticing people with these ribbons on their badges that said specification lead or expert group member and that and it kind of got curious how do I get that ribbon So you started going to these booths at Excavation Floor, figuring out the JCP,
28:20
and I signed up for it. I signed like a 40-page print. You had to print out a document, like sign it on a couple of pages and fax it to some. That was at the time we had fax machines. And I got to become a JCP member.
28:36
And then I just randomly chose some expert groups to see if I can get in there. And nobody accepted me until because they were all like pretty mature and established until there was a new one coming out. That was the MVC, a new specification.
28:52
And I had done my share development of like web frameworks and that kind of thing. So I thought this is good for me. So I applied for that one and I got in. So suddenly I was an expert group member of the MVC specification. We had bi-weekly calls. So I got that ribbon.
29:12
And I also met Heather from the JCP there at Java 1. And she introduced me to the executive committee. And I heard that as an associate member of the executive committee, Oracle would pay for the travels to these meetings. And I like traveling, so yeah, why not go? So I ran the election to become an expert member.
29:40
So I got into the executive committee of the JZB as an individual. And I’ve been there ever since. That was in 2013, I ran that election, I think.
29:51
Well, that’s really great. And that’s also a huge contribution as well. I mean, you have to run, you have to be elected, right?
29:56
Yeah. And I also was contributing a little bit, at least, to the MVC specification. And to that story also that when Java EE8 came out in 2016, MVC was supposed to be a part of it. But right before the announcement of Java EE8, Oracle announced that we’re not taking MVC in. We’re canceling that one.
30:22
And we were almost done, or we thought we were done, because we had done the spec and the API. And we had an implementation. We thought we had a TCK, because we didn’t do that. There was some team at Oracle that did that one.
30:36
So I asked at one of these buffs at Java 1, I asked, but it’s almost done. Can’t we just finish it, somebody outside of Oracle, if you don’t want to do it? They asked me, yeah, but who would do that? I said, I would do it.
30:53
So I got the IP rights for the MVC specification and the implementation signed over to me by Oracle. So suddenly I owned the IP. of this specification. And I brought in, I had some other German friends, Christian Kaltipoth, which I brought on as a co-spec lead with me.
31:14
And we finalized that spec under the JCP and released it, MVC 1.0 there. we brought it over to the Eclipse Foundation. And actually, a month ago, we released MVC 3.0. So it’s still going strong. And now, no, I don’t have the IPO of that one. I gave that away. I contributed to the Eclipse Foundation.
31:33
So that’s a fully open source project.
31:37
So a lot of benefits there. I mean, a lot of opportunity. I mean, what you’ve just described is a chain of opportunities.
31:44
Yeah, it is. And it’s also, I remember also being at conferences like Java One. And I think if I should recommend a young developer, what should I do for training? What books should I read? What should I do to get better at something? My standard answer is always go to a conference and continue doing it.
32:06
Because what I experienced was I had the opportunity to go to Java 1 every year and also maybe some other conferences in between during the year. By doing that continuously, I learned more and more and more and got inspired. Every time I come back from one of these conferences,
32:26
I ended up buying a bunch of books because I’d seen those speakers. They’d also written books. So I went home and bought their books, read them, and I learned more. And next year, repeat. Until you get to that point where you’re sitting at a conference in a room, you’re listening, it’s probably a fabulously good talk.
32:45
But you’re starting thinking, I could be up there. I now know so much that I could actually consider myself being a speaker. And I started submitting talks. And that’s how I stumbled into the speaker circuit. And that’s almost 15 years ago that I submitted my first talk and got accepted to an international conference.
33:07
And since that, the ball is rolling. Now I do 40 conferences a year. Wow. All over the world.
33:13
That’s a lot. That’s a lot. I can’t match that. Very few people can match that. That’s just constant travel. Obviously, you’re meeting hundreds of developers every year. I mean, thousands in terms of the number of people who are attending your session, but you’re talking to certainly hundreds of people throughout the year.
33:33
Any interesting trends that you can see from the last few years? Yeah.
33:37
I think it’s very different from which part of the world you’re going to. Actually, I have a feeling that Java had some struggle a couple of years ago where everybody was, no, you have to go to other languages. But it was usually on the JVM. It was Groovy or Scala or it was Kotlin or something else.
34:04
But nowadays I feel people are sort of coming back a little bit or Java isn’t irrelevant any longer that people were telling us a couple of years ago. So I see, I wasn’t kidding when I said probably 30 more years. So I think Java is going strong.
34:24
I see a lot of younger developers out there are very interested in Java. And one concern we have nowadays is that universities tend to jump on the latest, or not necessarily the latest, but the easier path of learning. So they’re choosing to learn Python to students rather than Java.
34:45
And developers come out and get the first job, and it’s usually Java. they get exposed to so so having these initiatives like we have in the jcp with java in education to to educate the university that i still have to learn java because that’s what the industry wants still i think it’s um it’s interesting
35:08
another observation is is these cycles that we go through you know we always tend to think that we have invented something new and then we just dial back the time machine and yeah we did it 20 years ago you know interesting so yeah i won’t get into the like server
35:26
started rendering people are talking like react server side components was a new thing like man we had servlets back in 2000 or even before you know so
35:38
I see you have your J-Jug t-shirt on there. I do. Java. Yeah, the user group up in Tokyo. Actually, it’s all over Japan. I’m in Osaka, so I’m a little bit further south or west, I guess. So what’s next for you? We’re in mid-25, actually May of 25 here. What’s up next? What’s your next event?
36:05
Tomorrow I’m going to J-Con in Germany. I’m actually going back to Tokyo in June for the J-Jug CCC Spring event. Cool.
36:17
Well, when you go to Germany to say hello to Char, he’ll be there. And a couple of my teammates will be there as well. That’s an important event for our team that we usually go. And we’re Oracle sponsoring as well. So there’ll be a bunch of stuff there. You’re also a Java champion.
36:35
So I’m sure there’ll be plenty of Java champions that you cross paths with at these events, right? Yeah. How did that come about?
36:41
The Java Champions, that was… I had never heard of it. But then at some conference, I can’t remember which one, but it was someone was pulled up on stage and given a jacket and called a Java Champion. And then I sort of, okay, this is a thing. So I started recognizing and seeing these Java Champions around.
37:01
And I thought that maybe I should… should make myself be a candidate for it. So I know there are five like criterias of things that you should fulfill more or less. So I kind of make sure that I covered them all for myself. So I am a Java user group leader, I’m doing conferences, I’m doing blogging,
37:25
social media, I’m doing a cool open source project contributing to technologies and all these kind of other community building aspects that the Java champions are. And I was suggested as a Java champion and got my jacket on the stage at DevOps UK a couple of years later. So, yeah.
37:48
It’s a beautiful jacket.
37:50
Yeah, it is. And one funny thing is when I tell people I’m a Java champion or people that aren’t familiar with the program, they think, oh, you have to be very good at Java. And I say, no, I’m probably not. And I mean, I know a way around it, but I’m not a very good Java programmer.
38:09
That’s nothing to do with, you’re not a champion of Java. You’re championing Java. So it’s about getting Java out to the people. I think that’s a, people get a little bit surprised when I tell them that. And then you see, some of them you see, which are probably very good Java developers and think,
38:31
I’m the best Java developer in the world. I should be a Java champion. But when I said, and they asked me, how should I become a Java champion? I say, well, you can start coming to the Java user group and you can start presenting on the Java user group because it’s all about the community.
38:47
And you see just the light goes off in their eyes and they turn around and go away.
38:53
Yeah, I mean, that’s true. I mean, there’s a lot of people who just are coding behind the firewall and they’re happy. And that’s fine. That’s their role, too. But what’s also interesting about that is many times those people, especially early on in their career, they’re not necessarily aware of the community anymore.
39:13
And they discover the community through work. And they cross the firewall. They go to a user group. They go to a conference. And they meet friends. And they get problems solved. And their career explodes as a result of that. So the community is so big. I mean, there’s millions and millions.
39:30
And there’s all different people doing different things at different levels. Yeah. What you said about the Java Champions is very true. I mean, I talked to a lot of JCs. I’m involved with managing the program through Oracle. I mean, it’s an independent project, program, so to speak, but it’s sort of sponsored by Oracle.
39:49
And so I work on that. So I’ve gotten to know a lot of you guys over the last few years since I joined this team in 22, the Java Developer Relations team. Yeah. It is true. I mean, some of them are highly technical and they’re just hacking on the JVM and some of
40:06
them are more generalists and some of them do a lot of community building. I mean, there’s just a variety of people. So it’s very interesting for me. I do a lot of learning through my interactions with them. All right. Well, Ivar, it’s been great talking to you. Is there anything that you can leave us with?
40:24
Is there any words of wisdom, any interesting stories, anything or anything I’ve forgot to ask you that I should have?
40:32
i feel i’ve just been rambling on for an hour now but i don’t know i i i say you should listen to duke’s corners podcast because that’s where the real stuff is so cool go back and listen to previous episodes and upcoming episodes and if you want
40:49
to skip this one fine but uh we’ll appreciate if you listen to this one as well
40:54
No, I only talk to good people. It’s interesting because sometimes I talk to someone like yourself as well now and someone who has no name recognition at all. But I learn from every single one of you guys because you all have different stories and different perspectives on things. I do it because Oracle lets me do it,
41:16
so that’s really cool, but I find it a learning experience. And it’s something I can actually do. I enjoy it. So thanks for the plug.
41:25
Cool. Learning while enjoying. That should be our slogan.
41:31
Absolutely. Absolutely. All right, my friend. I will see you at a conference because you’re everywhere. I’m sure I’ll trip over you somewhere sometime soon.
41:41
Yeah. Thank you very much for having me here. It’s been a pleasure.
The Duke’s Corner Podcast did an 11 minute segment at JavaOne 2025! In the video below, my colleagues Sharat Chander and Ana Maria Mihalceanu open the Community Keynote, and then I lead a Duke’s Corner panel discussion with guests Cay Horstmann, Marit van Dijk, and Lize Raes. We talked about what’s new in Java, how to get involved in the community, and finally the best bits from JavaOne.
Jim Grisanzio, Dukeโs Corner Podcast, JavaOne 2025 Community Keynote. Photos by Denys Makogon.
Transcript: Duke’s Corner Podcast at JavaOne 2025
Hello, and welcome, everybody. Welcome to Duke’s Corner Live. So Duke’s Corner is a podcast that I started on the Oracle Java Developer Relations team in 2022. So we’re just running about three years. We got about 60 episodes in the can. And in some ways, it’s a very traditional podcast. We talk about Java, obviously, the community, hackers,
0:28
open source, things like this, a lot of education and learning. You know, Java developers have to keep up with everything and grow and things like that. So it’s really cool in that respect and it’s very informational. There’s no frills. There’s no bumper music or anything like that. It’s just conversations.
0:44
But the most important thing for me is hearing the stories of Java developers. So sometimes you hear stories about, hey, I got to do X, Y, and Z. I have to learn this. I have to contribute to OpenJDK. What do I do? Things like that. but also you hear stories like, hey, Java saved my life.
1:03
Java, you took me out of poverty. I’m now able to fund my college education or things like that. These are the stories that really inspire me, and that’s why I do the podcast. I’m really interested to hear the stories of developers, and through those stories, you learn about all the other things, Java, and Jugs,
1:29
you know, OpenJDK and everything else. But it’s the profile. It’s the story from the developer. So that’s it. It’s very simple. If you just search, you know, for Duke’s Corner, you know, podcast, you’ll find it and love you to listen. And I’ve met a lot of developers here, obviously,
1:45
so I’m excited to have some new programs in the coming year. But for the next few minutes here, let’s just run a little session. I got a couple of my colleagues here in the background here, so we’ll bring out Kai Hortzman and Marit van Dijk and Lisa Reis. We’ll have a little session. Okay, welcome.
2:15
So let’s talk tech, let’s talk community and maybe get a little personal too. So Kai, lead us off with some tech here. So OpenJDK, you know, so Java 24, sorry, is out this week. And what’s the most important thing that developers should pay attention to or
2:33
what’s the most interesting thing in the latest releases to help them with productivity or just to do something really, really cool?
2:40
Well, every release has a lot of things, and I think everyone is different in what they like. What I was most excited about was the developments that help you write small Java programs more easily, both to learn Java and also to use Java in the small. It’s actually a fantastic language. for smaller programs.
2:58
The other thing that I personally liked were there were some things that made my programs run better or faster or with less memory with me doing either nothing at all or very little. The garbage collector is getting even better. I’m excited about seeing Project Leiden where I can get my program to start up faster. Cool. Any thoughts?
3:20
Yeah, I’m excited about the stream gatherers that were released in Java 24, as well as advances in or improvements in pattern matching. I really enjoyed Brian Getz’s talk on Tuesday about where the language is going and to get a bit of context and see how the changes are actually like progression in a direction.
3:45
I also really like that he mentioned that they’re working on improving readability of the code. Mark Reinhold mentioned the same in the opening keynote. That’s a topic dear to my heart because we read code more than we write code. So anything that makes it easier to read, easier to understand, easier to work with is great.
4:05
Excellent.
4:06
I also like very much, as Kai said, what makes it easier to ramp up and onboard in Java. So these simple source files, we’re dropping the static. That’s the big thing. I also saw somebody give a talk about Jupyter Notebooks for Java, and that just helps people getting onboarded so fast.
4:24
They say it’s for people that are new to Java, but honestly, as a seasoned programmer, I also like it to just work faster. And the other thing I liked a lot, since I’m a collaborator on LangChain4J, which is working with AI and Java, we love this structured concurrency scope value,
4:40
which will make it much more easy to make agentic systems and to have this context for our LLMs. And, of course, everything that’s more efficient, memory efficient, GPU acceleration that may be coming with Project Babylon, Project Valhalla, Project Panama. So I’m really looking forward to these things.
4:57
Cool. Well, it seems that there’s endless. It’s just an endless list here of really cool things. So we’ve got a lot of technology out there. We’ve got a lot of really interesting things for developers to grab a hold of and do things with. But how can developers actually participate in this community?
5:12
This is an open source community after all.
5:15
Yeah, so there are many ways to be involved in the community. Obviously, you can get up on stage and speak, but not everybody feels comfortable doing that. You can write blog posts or create videos or share your knowledge in other ways. But if you’re not comfortable doing that, you can be involved in your local jugs,
5:34
you can help organize them, or even just attend and meet other people, share your experience, learn from and with each other.
5:45
Yeah, it may be a bit daunting for some developers to say, oh, I go on stage, oh, I write a blog even. And I just want to say there’s something that you can do that’s much lower threshold to help, and it is complain and give feedback. So in the opening keynote, Mark Reinhold,
6:01
Actually, what he did was saying, we’re doing complaint-driven evolution of the Java language. And I like that because they go, look, what are the pain points? And that’s where you can help. Tell us the pain points for your open source project, for the OpenJDK. And we will make the language better for you and for everybody else.
6:20
Yeah, I’d like to echo both of those points. First of all, just to show up at a meeting or anywhere. Showing up is great. When I give a presentation, I like to have people who are showing up. And the other thing is the complaint-driven development process has been working really well for Java. Java is very open.
6:36
There are multiple avenues for you to report your experiences with new features, say what you liked, and most importantly, what you didn’t like. And there really are changes and improvements in the language that are based by programmer input.
6:52
Excellent. So there’s many ways to contribute. You can even do a podcast, just like we’re doing here, too. So one of the things I actually talk to a lot of developers about is what Java means to you in your heart, essentially. So do you have any thoughts about what Java means to you? It could be the technology,
7:08
some people like hacking, or it could be just the community or anything like that.
7:13
Well, I guess I’m a bit in a special situation because I was with Java from the very beginning. Before Java came out, my co-author, Gary Cornell, gave me a call and said, Kai, we’re going to write a Java book. Neither of us knew anything about Java, so we had to learn it really fast.
7:26
And no one else knew anything about it either. But there we were when Java 1 was released with a stack of books. And ever since, I’ve been working with Java. I’ve really enjoyed interacting with the people that make Java happen, that make it better, and to learn more about it and to teach with it.
7:44
One of my best experiences, I thought, was when we were able to move the AP computer science exam from C++ to Java.
7:52
Cool. Yeah, I first learned Java in university, not quite from the beginning. I learned Java 1.2. We won’t do the math on how long ago that was. And then I did a bunch of other jobs in IT and had to relearn Java, which was Java 8 at the time,
8:08
which was much improved from what I remembered from university. And I actually relearned Java by reading books by… Gene Bajarski and Scott Selikoff for the OCA OCP guides, as well as a book by Mala Gupta, who is now my colleague and teammate. So yeah, that worked out really well for me.
8:28
I really like how she explains Java concepts really well. And it’s been part of my career ever since.
8:36
Beautiful.
8:36
That’s a really exciting trajectory. For me, I can certainly not say that I was with Java from the beginning because I was five years old. But I started, I actually came in from the side, I started electronics engineering. So at the beginning when I started as a regular Java developer,
8:52
it was hard for me and Java was mainly the way where I could not do what I wanted. But I got better. I learned it. And now Java is really a way for me to build, to change my ideas into something tangible in the real world. And then I started contributing.
9:07
And now it brought me here on stage. So it’s been really a huge, become a huge love story by now.
9:13
Excellent. Okay, we just have a minute and a half left here, so let’s wrap up by talking about this conference here this week. It’s been a blistering week. It’s a lot of happy faces. Everyone’s been really cool. For us, the team who are organizing this, we’re all tired and exhausted, but it’s been really a beautiful experience.
9:31
I’m wondering if you have any impressions about this week.
9:35
Well, I’m very glad that Java 1 has been back and that the hallway track is as good as it always was. I’ve learned so much.
9:43
Yeah, it’s been really good attending talks by people who actually work on the language and getting a lot of context on why changes are made. But the most important part is the people seeing everyone here.
9:55
I also find it really exciting to hear from the architects themselves, where they are evolving, what they just built, show their own demos. And one talk stuck with me, that was the talk about somebody at Jefferson Lab, where they do nuclear physics in a particle accelerator. They started using AI instead of analytical methods to fix this,
10:15
using a Java framework, Deepnets, which you can just download, it’s free for individual use, so I just did that yesterday. They managed to speed up this analytics from needing many, many, many CPUs and all data centers to get it on one laptop, 5,000 times more efficient to track these collision paths by AI.
10:34
I’m getting really excited from these real-world use cases that we can do with Java.
10:39
Excellent. Well, thank you. Thank you very much for joining me. And that’s just a little snip of Duke’s Corner. And we did it live here. And next up on the show here is my colleague David DeLabasse to talk about the Quality Outreach Program. And that’s it. Thank you. And have a good rest of the show. Cheers.
Duke’s Corner Podcast with Tom Cools, an engineer from Belgium, a conference speaker, a Java Champion, and the leader of the Belgian Java User Group. “I make it my mission to spread Java all over Belgium,” says Tom as he describes how he runs the BeJUG as an Open Source project that takes contributions from the community. Here in this conversation Tom also talks about how the recent evolution of Java with rapid release cycles and new innovations attracted him to the language he loves. Tom is also a certified teacher so we discussed learning strategies, stress management, social media, managing change, AI, burnout, and other life experiences developers must deal with as they navigate through their careers in software development.
Tom, Tom Cools, welcome to Duke’s Corner for the first time.
0:03
Thank you. Thank you. So great to be here. Finally. It took a while. It took a while, but we’re here.
0:07
It did. It took almost a year, I think, Tom.
0:12
Yeah, well, I was doubting to switch companies and maybe doing a podcast while just switching companies isn’t the best, if you want to talk a bit about your career and such. So it took a while, but now I’m settled into the new company. So time to have a chat. Yeah, it’s great. Great. Excellent.
0:27
So yeah, no, you’ve been on my list for a while. I just kept you there. And so we finally hook up and it’s really cool. So you are in Belgium, right?
0:34
Yeah, I’m correct. I’ve never lived anywhere else. So it’s the land of fries and chocolate and all the good stuff. Actually, I’m lying because I did live for one year in the Netherlands, but there’s this rivalry between the Netherlands and Belgium. So I don’t always confirm that I lived in the Netherlands, but… Yeah, I love Belgium.
0:53
Belgium is like the great place to be. And I’m very happy that I was able to push my beloved programming language here a bit because I’m also, for people that don’t know, I’m also the organizer of the Belgian Java user group. I make it my mission to spread Java all over Belgium.
1:09
Excellent. Well, it’s a small place, so you should be able to reach every corner, right?
1:13
I was only there once. That’s actually the amazing part of living in Belgium. It’s a two-hour train drive and I’m in Amsterdam. It’s two and a half hours and I’m under the Eiffel Tower in Paris. It’s two hours and I’m in London by train. So if you want to explore Europe,
1:30
then Belgium is a great place to hang out for a couple of months and just travel from point to point.
1:35
Yeah, Europe, I mean, physically Europe is very big. It’s like the United States, but it’s so tiny once you get in. It’s very, very different. you know for americans to understand i mean i go for two hours and i’m still in
1:46
osaka and i live in osaka you know so this is still the same city so okay yeah so so you’re also a java champion and you lead a java user group you speak at conferences and stuff like that and stuff you love to you know talk about java why why do you love to talk about java
2:03
I need to wind back a bit because my start with Java was a bit weird. 11 years ago, 11 and a half years ago, I joined a consultancy company and a consultancy company did two programming languages. Either you became a Java consultant or a .NET consultant. And at the start of my career,
2:18
I basically got asked the question, what do you want to do, Java or .NET? And my honest answer was, I don’t care, you pick for me. So I told my manager, you know what, whatever you need at this company, I’m just starting out, you pick for me. And when I left a couple of months ago,
2:34
I actually told this story again to my manager and I was reminiscing like, what if he had said .net? I wouldn’t be talking to you today. I wouldn’t be a Java champion. I wouldn’t be hosting the Belgian Java user group. So it was basically pure luck that I ended up with Java.
2:48
It took me a good year to really fall in love with the programming language because I did my internship in .NET, then switched to Java, and it took a while because it felt a bit more, at least at that time, that’s 11 years ago, it felt a bit more rigid. The release cycles weren’t what they are today,
3:03
so it was a release every three years or something, not every six months, like a nice cadence. But gradually, all these things started to improve and improve and newer things came out. I remember Spring Boot coming out like, oh, we don’t need these servers anymore. We can just have this jar that runs everything. And it started evolving.
3:22
Then Grawl came with native images. And then, yeah, I’ve been in love probably for 10 years now. So it took about a year to get used to the changes. And then once I rolled in, I just wanted to go.
3:35
So there seems to be a difference between before the release cycle and now. Because everybody brings that up in one way or another.
3:43
Yeah, it just felt, you know, all these stereotypes we’re still trying to get rid of. Java is this old enterprise-y language, and it’s slow when it doesn’t evolve. Yeah. We’re still carrying that legacy along with us, but if you look close enough, that’s not what it is at all. Things like Project Loom, the virtual threats,
4:02
it’s bloody amazing that they got that in there after so many years. Never really breaking backwards compatibility with previous programming language versions. Well, there’s always a few breakages, but mostly… You can still run the same Java as you did that many years ago, but you have a bunch of cool new features. So this evolution, I think,
4:22
was the biggest trigger to bring my enthusiasm and also the enthusiasm of other people. Like, oh, look, it’s evolving. Every six months we have something cool. Sometimes it’s not finished with these preview features, but we can already see. What I really like is that collaboration that it also brings. Because before,
4:38
it used to be you have a team of Java engineers that go away for a couple of years, or at least that’s what it looked like from the outside. They go away for a couple of years, they’ve come with a new Java version. Now it’s Java engineers post a Java enhancement proposal.
4:51
Everyone on the internet can see it. Everyone can comment on it. You can try out early builds of the OpenJDK. You can do a bunch of stuff to really contribute to Java, the programming language itself. And I think we really needed those shorter release cycles to enable these preview features.
5:07
And these preview features are the ones that really enable people to contribute. Because before it was like, we made a spec, we built it, good luck with it. Now it’s, we build a spec, everyone please look at it. We’re not sure, here’s a preview feature. And then we can iterate. But before there was no iteration,
5:21
it was basically, we wait until all the features are done and then we just dump it on. Dump it sounds a bit aggressive, but it felt a bit like throwing it over the fence. Like, okay, we’re done with this version, let’s go.
5:32
Well, it’s interesting you mentioned that iteration. I mean, I’ve been working in open source communities for a long time since Sun, Sun Microsystems. And I learned a lot about that very simple concept of iteration. Working at Sun on the Open Solaris project, I used to watch the engineers do code reviews and do architectural reviews.
5:55
You would start this long thread, multi-hundred email thread on a mailing list, and you would start at one โ essentially, you would start at one place and you would end up someplace very different. But then you have all that consensus building. And also, you had this education process that took place.
6:11
And I can imagine it’s the same when you’re releasing, when you’re doing early release builds and things like that and publishing code and specifications and things like that. It gives people a chance to educate themselves as development is taking place. So just like you mentioned, it’s not just dumped and there it is,
6:30
a couple of million lines of fresh new code for you to digest.
6:34
Yeah, and I also think it is a good way to get out of the bubble of creation. And with that, I mean, if you’re working with seven people on something, you get so focused on, oh, we’re building this and we share the vision that sometimes you get these blind spots that you don’t even see anymore.
6:49
Like, oh, but is this actually good for our users? Because we’re so focused on the nitty gritty details that you sometimes forget the wider sense of, is this usable? Yes or no? And I think by breaking it open, it has been done with the Java enhancement proposals and so on.
7:04
It’s a great way to just say to the entire community, hey, it’s basically a card to say, don’t come complaining afterwards because you had any chance to help us make this better. Sometimes there’s trade-offs. And what I actually like very much about how Java is being, because you always need to have some stewards, right,
7:24
that drive the process into a certain way. When there’s certain things that can’t happen, I love the explanation that Brian Gutz, for example, says like, yeah, I get that you want this feature, But here are all the reasons why you actually don’t want this feature. And then when you read his arguments and his thinking, then you’re like,
7:42
oh, I didn’t know that my simple convenience feature would have this cascading effect through the entire JDK. So maybe you’re right. Maybe we shouldn’t be doing this. But that’s all these insightful things that you might miss. And I really like, for example, I know Nikolai posts videos on those frequently, like, why is this the case?
8:02
And I love knowing the reason why we don’t have certain things.
8:05
Interesting. So what types of things do you do to talk about Java out there in terms of what are your activities?
8:12
Yeah, so the biggest one is organizing the Belgian Java user group. It’s a user group that has existed since 1997. So I believe it was one of the very first user groups, originally created by Stefan Janssen, known from DevOps and Vox fame. But around 2018, I believe, was the last event. And then it kind of, well,
8:35
it was going downhill for years, at least if I look in the history on meetup.com, 2018 was the last one. And I knew that was the last one because I attended that last one. And I was like, ooh, it’s been a while. And then eventually I took over. There was a small sidestep.
8:51
During COVID, I tried to run my own Java user group, the Entrop Java user group. I had a genius planning idea to start creating a meetup February, 2020. So that went downhill pretty fast. We had like two meetups at like six people at each meetup max. So that was not what I was feeling.
9:12
But as COVID went away, I talked to Stefan, like, hey, Stefan, you still have the Belgian Java user group. Can you help me promote the end for a Java user group? Because you have this network and so on. And he said, I’m paraphrasing here, he basically said, yeah,
9:24
but why don’t you just take over the Belgian Java user group instead of starting and something new, just take over this thing that has already existed. And that’s what I did since 2022. So after COVID, it was actually pretty funny. You know, meetup.com? So that’s the place where the meetup is organized.
9:41
Did you know that if the leader of a meetup steps down, that any member of the meetup can say, I own the meetup now?
9:48
Oh, really?
9:49
Yeah. So at some point, I was a member of the group. And at some point I saw the banner. Hey, the event organizer has stepped down. Click here to claim ownership. Yeah. And my initial thing was, I’m going to claim this because I don’t want any sort of cynical marketing company to claim this.
10:05
I don’t want, because it’s really cheap. For 50 euros, some cynical marketing company could have said, click, now I own the Belgian Java user group and the entire mailing list. So my first thing was, I’m going to safeguard the community from that. I’ll take ownership. Then I organized the BOF session at DevOps.
10:23
And I just told the Belgian community, Belgian community, This is what happened. I now own the Belgian Java user group. Who wants to help organize this and then we can do it together because I don’t want to do it alone. Because at that time, me and my wife were starting to look into having children.
10:40
And I knew that while I had a kid, I didn’t want to post a meetup full time. And basically, I have a few people then that stepped up and said, I want to help. And since then, we’ve been going every month like clockwork.
10:52
Really? Well, that’s really cool.
10:53
So it was really a coincidence that I saw that it was available and then being like, I don’t want anyone to claim this that I don’t trust. Yeah. Which sounds a bit selfish, but it would have been a good deal for any marketing company, but I wouldn’t allow them. And we’ve been going every month since then.
11:10
And I think that’s the biggest way I contribute to the Java community right now. I make sure that every month there’s an event. I have asked a ton of people to help out and they do. which is amazing. And I try to keep it as open as possible. So our meetup is a bit weird, according to some.
11:31
We basically run it like an open source project. So we have a GitHub project with all the issues. And the issues are meetup November, meetup December, meetup January. Inside the issue, I have a few items that need to be checked off. We need a location, we need a host, yada, yada.
11:51
And then I say to the community, whoever wants to organize this, go ahead. Oh, interesting. But if you don’t do it, then I do it because I make sure that every month something happens.
12:01
Okay.
12:01
So that’s sort of how we organize the meetup. And also for other stuff, I just post a ticket or someone else posts a ticket when they think something’s important. For example, I’m going to show you the sticker. I know in podcast land that doesn’t work, but we have this nice Belgian jug sticker.
12:16
This design is fully made by someone that answered one of those GitHub tickets. I just made a GitHub ticket. Hey, we need a recognizable logo for the jug. Someone answered, Luik, who is now one of the co-organizers, created that logo, printed stickers, and off we go. So I try to keep it as open as possible.
12:33
Anyone can contribute anything they want at any time.
12:36
But it’s really interesting that you do that. It’s a nice way to keep track of contributions because everything’s there. Everything’s in public. You can have a situation where someone is doing a lot of work, but it’s not necessarily easily visible. And so that’s really a great idea to do it like that.
12:57
Yeah, and I do make it a point to yell out. So whenever I mention the sticker and the logo, I will always say that Loic Mania created this. So I do give credit where credit is due. What’s also in that same repo, by the way, is our guidelines.
13:14
So while I say anyone can host it and anyone can organize, we do have some guidelines that everyone has to obey. And whenever we need to make a modification on the guidelines, it’s by approved pull request because it’s all Markdown files. So it’s a very developer-oriented way to organize a meetup.
13:30
But I think when you’re organizing a Java user group, you can expect some developer-oriented crowd.
13:36
Yes, absolutely. That’s really innovative. I had never thought of that. Usually, you know, someone has a website or they have a meetup and you just, you know, someone gets a room somewhere and you send a notice. Who’s going to be speaking? A couple of people speaking, you know,
13:51
and then maybe you go out to dinner afterwards and stuff like that. So it sounds like you have a real feel for managing a community, for basically not only contributing, this is a major contribution that you’re doing, but there’s also sort of a, you have a lot of thought went into how you can get people to contribute.
14:11
Yeah, and there I do need to go back to the fact that I lived in the Netherlands for a while, because one of the reasons I wanted to have a Java user group in Belgium or an active Java user group in Belgium again, because I’m so jealous of the Netherlands.
14:26
And as a Belgian, this hurts to say, but they have like If you throw a stone in the air, you will hit the Java YouTube group leader on the head. There are so many leaders there. It’s incredible. And in Belgium, at some point, we had nothing active. We had DevOps, the biggest conference,
14:43
one of the biggest conferences in Europe, but no monthly thing. Really? So that’s where the jealousy came from. And actually, my hidden plot that’s actually not so hidden because I keep telling every month at the meetup is, my dream is that the Belgian Java user group is a step up for more Java user groups.
15:01
So whenever someone comes to me like, hey, Tom, I want to organize my own Java user group, I tell them, no, don’t start your own user group. Help me organize the Belgian Java user group. In your locations, the way we’ve set it up, you can do everything yourself.
15:17
but you have me to help and you don’t get lost in the, you need a new logo, you need to meet the .com account. You don’t get lost in all the administration that it takes to set up a user group. Do it a couple of times. And if you love doing it a couple of times,
15:30
I will help you set up all the things for your own user group, but make sure that you like it first. So it was always meant as a springboard for newer Java user groups. So one of the things that we do to try to enable that is Belgium has provinces,
15:45
and every month we host in a different province. So last month… Last month was in Blam’s Brabant. This month will be in Antwerp. Next month might be in East Flanders or West Flanders. Maybe sometimes in the French-speaking part of Belgium. And we really made the Belgian jug Belgian again by making sure that it’s more like
16:06
a traveling circus. Because sometimes these national jugs, they park themselves in the capital city of the country. We explicitly do not want to do that because our goal is to make sure that at some point there will be enough mass to create a separate jug for a smaller area. That’s the idea.
16:25
Interesting. The, you know, the Oracle, the all India Oracle user group has something kind of similar where they have, you know, India is obviously slightly bigger than Belgium. But, you know, they have sort of this all India Oracle user group concept that it’s in like 20 different cities, right?
16:44
And over the years, they’ve all developed sort of their own, you know, personalities. And it’s mostly database and cloud and things like that. But interesting. Tell me why โ I’ve noticed and a lot of other people have noticed recently as well that the user groups and the conferences in Europe are very active.
17:04
And that’s not necessarily the case in other parts of the world, certainly after COVID with all the shutdowns and everything. Yeah. I’m wondering if you have any thoughts on that. Is there something unique about what’s going on in Europe? Or has it always been this way?
17:20
That’s actually an excellent, has it always been this way is an excellent question because I don’t have a good view on how it was in different countries. I have been to DeafNexus in Atlanta. So that’s like my only kind of reference when it comes to real international conferences. I’m not entirely sure if this is correct,
17:39
but in Belgium, at least, there is a thing where employers are forced to educate their employees. So you are forced to give your employees a certain budget. And what is an excellent way to make sure that your employees don’t lose a lot of working time and get a lot of good content,
17:58
you send them to a conference for a week.
18:00
Interesting.
18:01
So that’s, I think, what is a big part of it. But it’s also, especially if you look at the Netherlands, it’s also a cultural thing. It’s just getting together, sharing some knowledge, and then having fun. It’s almost like, you know, people have different hobbies. Some people go sporting, like football team.
18:20
Some people go to a musical band that they play in. And I think it’s a bit like that for programmers as well. But it’s about programming. You come together with a bunch of people and you share some values and a hobby that you want to talk about. And you just get together.
18:36
And I think also because Europe is quite more densely packed population wise. So it’s easier to organize something if everyone goes to a certain office to then get together. But I’m just grasping because I don’t really have a good reference to compare with different. With different cultures much outside of Europe.
18:57
Well, it’s interesting because there’s an active conference circuit, but there’s also the jugs are very active there as well. And so I’m just wondering, I tend to ask when I get a European on the phone, not that it’s a uniform place, obviously, many different countries, but I try to see if I can figure out why,
19:16
because I don’t have an answer either. All right, so you said earlier that you sort of had this decision to make with .NET and Java. Yeah. But go back a little further. Like when you were a kid, did you always want to get into software development?
19:31
Have you been hacking on code since you were a little kid, or was this a later decision?
19:35
Oh, not at all. This was a much later decision. The only thing that I remember coding-wise… was I used to be a big video game player and I played competitively. I played competitively America’s Army, which was like this American army recruitment tool slash free video game that you could play and Call of Duty.
19:57
And if you do competitions and you want to be a cool group of people that play together, you wanted to have a website. And that’s actually where I started sort of programming that’s building websites for my group of people, a clan, they call it. and then play video games together.
20:12
So I’ve made awful, awful, like, fire banner websites with all the ugliest anime. Those are the best ones, though. Those are the best ones. I’m sorry, I shouldn’t call them ugly. It’s more like very retro, like fire banner, laser things, and crazy, crazy movies.
20:30
It was incredible that you were able to move something on a screen back then.
20:33
Exactly, exactly. And the thing… When young kids are learning this stuff now, the tools are so advanced, they have no concept of how much fun it was to do the stupidest little thing years ago.
20:44
yeah exactly i think now that you mention it the the thing that was a little bit like programming but it wasn’t programming at all there was this video game called the incredible machine where you basically some kind of ball fell and then you had
20:57
to put trampolines and stuff it’s like a physical machine that you had to create sort of program by putting the things in the right places oh okay And I think that’s sort of where the algorithmic thinking came, like, okay, so if I place this here, then the ball goes there.
21:12
And you could sort of program it like that. But I think the websites were the first real thing. And what really made me transition is I made a small detour. So I graduated high school, and I was convinced that all my teachers were, how shall I say this politically correct, subpar students. And I could do better.
21:31
So I actually went and got my teacher’s degree for high school. So I’m a licensed high school teacher in Belgium for economics, law, bookkeeping, and IT. But IT in that case meant, of course, Word, Excel, and PowerPoint, not anything programming. But in the last couple of lessons that I had, we did discuss JavaScript.
21:57
And surprisingly, I fell in love with programming kind of there. Programming in JavaScript, also creating some scripts in, what was it? Adobe Flash. So Adobe Flash to create Flash games. And that’s where I learned a little bit of programming. And when I graduated my teacher’s degree, I was 21 years old.
22:14
And I told my mom at the time, I’m too young to go stand in front of a classroom and tell kids what the world is like. Because that’s what you do as a teacher. You have to tell them, this is what the world is like. These are the things you need to learn.
22:26
And I told myself, I’m 21. I know nothing about the world. I need to go explore some more. So I jumped to a second bachelor degree being IT. And that’s where I really learned Java.net and all the good stuff. Did some international projects, even went on Erasmus exchange.
22:43
So that’s student exchange from Belgium to Finland, nice and cold. And that’s where I also fell in love with international travel and communicating with other people and building a community.
22:54
It’s interesting, two bachelor’s degrees. That’s kind of rare. Usually it’s a bachelor’s and a master’s, so you follow up with a master’s. But you did two separate bachelor’s degrees. Yeah. And there’s not a lot of overlap between those two degrees.
23:09
Just a small, small piece of how to communicate with people. But I think also the teaching degree really helps a lot now that I want to speak at conferences. And I think it’s kind of inverse. I love teaching. And I think speaking at conferences is like the next step. Well, it’s a different step in a way.
23:29
It’s not teaching directly as in you can ask a lot of questions and a lot of interactivity, but you are teaching something. And my teacher’s degree actually allowed me to take complex things and wrap them in a nice package and deliver it in 50 minutes, which is very convenient because the time slots,
23:48
so the lesson duration in Belgium is 50 minutes. And when I heard that most conference slots are like 45, 50 minutes, I was like, Oh, I know perfectly how long it is. I can just look at a piece of paper and go, yeah, that’s 45 minutes.
24:03
I don’t have to work on timing that much because I’ve done so many 50 minute lessons that I know quite instinctively. This is how long, how much content I can put in that amount of time, which kind of throws me off because on Friday I need to give a conference talk that’s 30 minutes. Too short.
24:20
And then it worked against me.
24:23
Well, this is interesting, though. So you must have some feelings about how software is taught now. In other words, you have some experience as an adult, but you also have teaching experience. I mean, I know when I took programming classes years ago, it was archaic.
24:40
And now with a lot of advanced tools, there’s, you know, there’s so much more you can do. However, the interface is the teacher, high school or college. So do you have any thoughts about how software is taught now versus years ago?
24:55
Yeah, and I’ll preface this by saying that at my previous company, I was actually given the opportunity to teach at a university for one semester. So I actually was able to put this into practice. It was very practical. What I like to do now is get the students hands on as quickly as possible.
25:15
But I’m also a big believer that we shouldn’t be teaching kids too much at the same time. And with kids, I mean, I’m sorry, I still view students as like my kids in a way. It’s a very familial thing. It’s not meant as a negative like these damn kids. It’s meant as a nice thing.
25:33
But I’ve actually spoken at conferences about this. And that’s the concept that there’s a lot of, do you know cognitive load theory per chance? Like the idea that there’s only so much at the same time that you can have in your head. Well, I try to build gently when I’m making my lesson plan.
25:52
I try to first give a broad overview of this is approximately what we’re going to do, a bit vague. And then we go in depth into small slices that only introduce little small new pieces one at a time. And then once that all is done, I make a bigger exercise that kind of integrates everything again.
26:09
And I really like what is happening and has happened in Java with JShell in the past, make it easy to write small pieces of Java without having to introduce people to a full-blown editor and so on. And I really like, I know there’s some contention in the Java community about this,
26:25
but I really like the new way to start Java programs with a simplified main method that you don’t need to have a class, you don’t need to have the public static things. Because whenever I try to explain things, the start of Java, when you start teaching Java and you give them that public static void main block,
26:45
I’ve had students, not all of them, but I had some students completely go, what is this? What is all these things that I don’t know what’s happening? And then you basically, until recently, only have one option. As a teacher say, ignore what’s in there and only read what’s between the brackets.
27:04
Don’t care about the static void main yet. But I had some students that basically said, no, no, no, no, I’m going to look it up online because I need to know what public means. I need to know what static means. And they go…
27:15
Absolutely. You’re correct. Because some people, myself included, cannot move on, cannot function. We do seize up if there’s stuff there that isn’t explained or we don’t have a grasp of because we feel like other people know it. And so it’s a blockage. It’s a huge, huge blockage. So that’s really interesting. In many subjects,
27:40
you’ll sit there and the teacher will say, here’s the material we’re going to learn and this is what I want to focus on here, A, B, C, and don’t worry about X, Y, and Z. But it’s right there. It has to be influenced in some way.
27:53
Yeah, I think there we’ve made some remarkable strides to make it easier, this on-ramp. And I think that’s going to be very important if we are going to try to introduce Java, introduce, it’s already there, but reintroduce or revalue Java in all these universities again.
28:12
Because a lot of universities have moved on to Python or different programming languages. One, because the curriculum was a bit too much. So they tried to, you know, they’re teaching AI now and to sort of condense the amount of programming languages that students need to know.
28:26
We’re going to drop Java because they’re already learning Python for other stuff like machine learning. So they can learn REST APIs and such with Python as well. And I think they’re making it easier to learn Java. It can only be a good thing.
28:39
So let’s stick with Java for a second here. You mentioned a little bit earlier on the release model and following projects contributing in that way and being able to have access to the technology in smaller bytes over a series of time. What else about Java makes it unique or special or something that you love to do in
29:00
terms of the technology itself?
29:02
Well, recently with all these LLMs and Gen AI, I love how easy I can integrate those things while still sticking to my main programming language. Because a lot of people told me, oh, you can’t do AI in Java. You can totally do AI in Java. Don’t worry about that.
29:21
And that’s one of the things that I love most, that it keeps evolving, keeps with the times. When we were moving to microservices, you had Quark is coming up and Spring Boot and all these frameworks that make it really easy to build single runnable jars or Docker containers or whatever.
29:37
Just the fact that Java is still running with all these new technologies. And if I look at what’s coming up with Project Panama and Leiden and all that good stuff, I just get so excited. And also the, I have to mention it, GraalVM, being able to compile to native and just have command line tools that run Java,
29:56
that was unthinkable a couple of years ago. And just enabling Java as like the, it sounds a bit unrespectable, but really right ones run anywhere. Like before we had the JVM, but there were still limitations because you had to install a JVM. But now it’s with all these new things, it’s really anywhere. Yeah.
30:16
So that’s what I like.
30:18
It’s an amazing evolution. I mean, I oftentimes, you know, 30 years now, it’s 30 years this year and a couple of months, I guess, and 30 years of continuous development, you know, and also the community, 30 years of continuous development in the community. And it seems like it’s just, it’s everywhere as a marketing slogan, you know,
30:37
Java is everywhere, that kind of thing. So what do you think? I mean, is there, what do you tell, you know, like at the conferences and the hallway sessions, you know, when you, especially around when you get around young people. I’ve been to a few conferences in recent years where I was around,
30:56
like I was at this conference in Vietnam, Voss Asia, and there were 5,000 students there. They were all 22, 23, you know, children. They were children, right? And compared to me. And so, and I was talking to them about, you know, what they’re learning. And I told them that, you know,
31:12
one of the most important things you can do at this age is to build your network. The technology in class, but it’s really great if you can build your network by contributing to user groups or starting user groups. And then if you can find a project either in class or outside of class that you can contribute to,
31:31
start learning the concept of contributing something. So that’s just an example of conversations that I would have at a conference with experts. young people. What about you? Tell me about some hallway conversations that you have, particularly with young people. I’m most interested in them, but really it can be anybody.
31:49
Yeah. So ever since I became a Java champion, I get the question more and more, how did you become a Java champion?
31:54
Oh, specifically that one, huh?
31:56
Yeah, specifically that one. But I sidestep it and I almost always go to build your network because that’s the most important one. It’s basically how I got my new job. One of the CTOs saw me speaking at a conference, liked it, and said, hey, if you ever want to be a developer relations guy,
32:14
eventually I’m going to need one. So once the time comes, I’ll call you. And a couple of months ago, he called. So that’s basically how I did things. Building a network, it works in very weird ways. Even if you’re not planning to leave your company, knowing someone who works on something is very interesting. So for example,
32:34
a couple of years ago, I had a problem with a certain software, which I will not name specific by name, but I knew the developer that was part of the team. So I just posted a message to the developer like, hey, I can’t get this stuff to work.
32:49
I know there’s official channels, but I’m really in a pickle. Can you help me? And because he knew me, he helped out. So it can work in really weird kind of ways. So getting involved with the community, especially, yeah, of course, I toot the bee jug horn all the time.
33:06
So I keep telling people, come speak at a bee jug, even if it’s Even if you think you have nothing to share, share your experience. Your experience is unique. You don’t have to be a super expert to start contributing in any way. Even if you just print out a poster and put it up in your office,
33:22
luring people towards Bijak, all good. But getting people to know you is very important. The second sort of conversation that I’m involved with, because most of my topics that I’ve spoken about at conferences have not been technical, but more career-oriented. And my most successful one, if I can say that,
33:42
the one that got accepted at the most conferences and I got to do the most, It was actually about learning how to learn. So advice to developers, how do you learn something? And that is what I got the most questions about. And very personal questions like, people called me too stupid to learn this.
34:00
Well, how should I react? To which the answer is, you ignore that and you take things step by step. But the learning part will always be a big part of what I do. I didn’t pursue my teaching thing at high schools, but I still am a teacher by heart.
34:15
It sounds like it. I think what you say, I mean, it hits me for sure. I also do a presentation on building community and contributing to communities. And so I touch on the concept of learning as well, because I struggled when I was young to learn. Many times I was told, you just can’t do this.
34:34
Oh, that used to used to drive me nuts, you know, because it’s obvious I can’t do it. OK, I’m failing in this particular class, whatever it is. And I don’t need to be told that. I mean, you know, thanks a lot. That’s not helping me very much. And I once had a kernel developer tell me that,
34:50
you know, I got some bad advice when I was young. So that, you know, because you’re smart enough, you can do these things, you know, that really made me feel better, you know, handled like the technical things, the advanced algebra and calculus and things like this and differential equations and things that I really, really struggled with.
35:07
So that actually means a lot. So I think it’s valuable for you to be combining these two disciplines so you can talk about these things. Because a lot of people, you know, we’re afraid to say, you know, we’re afraid to say that we struggle learning with some of these things. And it’s valuable for you to say that.
35:25
I think that’s why the talk was so impactful. I actually had a few people crying almost. You know how people line up after a talk, like you end your talk with, are there any questions? Nobody raises his hand. And as soon as you close your laptop, people come to you and ask questions.
35:41
I had people basically almost crying and thanking me, like, thank you so much for, because it’s a vulnerable story, because I say where I failed and where I think I could have acted differently and give a lot of advice. And The main message is you’re not stupid.
35:55
You’re probably making the small mistake of trying to learn too much at once. So take smaller steps and you will get there. It may take you longer than someone else. Don’t care about that. Just focus on yourself. And just sending that message, I had people come up to me like, oh,
36:09
thank you so much because I’ve been stuck trying to learn five programming languages at the same time. And I said, yeah, if you’re overwhelmed, maybe choose one. just choose one learn that and if you it also has to do with how much is going on
36:24
in your life right when my son was born i love my son but he takes a lot of my time yeah time i spend gladly there’s no second doubt that i would spend any time with my son i love that kid to death but i cannot lie i cannot learn as fast as i used to yeah
36:43
I used to spend entire evenings building cool hobby projects. And I like doing stuff and then exploring and seeing what explodes, basically. But now that I have my son, I’m like, yeah, my learning ambitions are a bit lower now. And that’s perfectly fine. And even if it’s not something positive like having a kid,
37:04
I also had a burnout a couple of years ago. During my burnout, it was basically, number one focus is get better. No learning. Just take time to recover and get better.
37:14
Well, I’ve gone through both of those experiences, so I know exactly what you’re talking about. The burnout, the health issues and having a kid and everything.
37:24
But burnout is such a nasty thing, man. Seriously. And I think if you spend too much time on social media or you look up too much to other people, because in my head, I was looking at Java Champions and thinking, oh, they do all those cool things.
37:41
But in my head, I forget that it’s like 50 different people. And in my head, it’s like, I want to do all of that. But it’s 50 different people doing all those things.
37:48
Well, you mentioned social media. It’s like the distractions are a big deal. And many times people just don’t get how expensive switching is. You know, the switching cost. It’s basically half an hour when you switch tasks. That’s a long time for you to be able to reset and get into the next task.
38:06
If you’re constantly switching all day long, especially on social media, you’re not getting anything of value done. And you can really feel seriously burned out like that.
38:16
Yeah. And if you’re not careful, because a lot of people boast on social media, like, hey, I did this cool thing. I did this cool thing. And then you’re like, oh, I’m not good enough to do that cool thing. Yeah. Just stay away from it. Try to build your own path,
38:30
even though it might feel tempting to go like, yeah, but I want to be that person. No, you don’t. You want to be yourself, stick true to yourself, do the fun things that you like doing, and things will come. Build your network, make sure people know you for who you are, not some fake AI avatar or whatever.
38:48
What’s happening now?
38:49
Well, it’s interesting you say that, know you for who you are because everyone is unique. And what people don’t realize, and even myself, that the combination of your unique history, Matt, plus the particular skills, plus the company that you work for, et cetera, is a unique package by definition. Yeah. You have an interesting mix.
39:08
You’re mixing two disciplines, education and software development. I’ve spoken to people in the Java community who went through a biology degree as an undergraduate, and they have a master’s degree in business, let’s say, or software development or something. And they are mixing two different sciences, two different disciplines, but that makes them very unique. And everybody’s unique.
39:33
Yeah. I love it when those people bring those mixed experiences. Mixed sounds wrong. Mixed experiences sound like positive or negative. Those different histories of themselves, when they bring it together in a conference talk, it’s really entertaining. For example, I remember seeing, as you mentioned biology, I remember seeing Grace Jansa, who I believe has a biology degree.
39:55
And she was mixing it with some sort of deep microservice thing. And I don’t remember exactly what she was talking about, but I remember being really inspired, like, oh, these things come nicely together. There was another talk that I saw, who has a psychology degree, and she had this really funny talk about,
40:16
what does your code say about you? Are you a psychopath or are you a normal person, depending on how you code things? That was super entertaining and it was grounded in science. And I also noticed that my own conference talks are the most successful when I bring these different facets of myself to the stage.
40:33
My newest talk is about dealing with change and it talks about becoming a father because it’s the biggest thing that happened in my life, but also tying it back to The biggest change that’s happening now, AI, is changing a lot. People are afraid of their jobs sometimes. How do we deal with change in general?
40:50
And I think bringing different facets and different aspects of yourself on stage and sharing that with people makes it way more easy to emphasize with your content.
40:59
So in the hallways, are people really seriously, I mean, I know they’re excited with AI, but are they really seriously concerned? Or is that just over-exaggeration in the media?
41:09
I’ve had some conversations, and I won’t say where or when, but I’ve had some conversations with some colleagues, and some people are concerned, but it’s mostly for different reasons. Some are concerned because, I’ll speak for myself, I’m a little bit concerned, but Because in the past, I’ve made programming too much of my personality.
41:31
As in, I used to call myself a coder, probably right after I call myself a husband to my wife. So it’s such a big part of my identity. And once your identity becomes under threat, suddenly there’s something that can do what I thought made me special. Interesting. Then that creates a bit of…
41:52
There’s also the economical part, of course. Are we going to lose our jobs? Yes or no. Some people are worried just financially about that. But I’ve come to, for me, I’ve come sort of to the conclusion that it doesn’t matter. I mean, no matter what you think it’s going to happen,
42:07
And so you better prepare yourself the best you can. Take time to… I’m also very… Since I had the burnout, I’m very sensitive about how I feel and how I react to things, like on a psychological level. And I try to process my emotions and my feelings whenever I feel my heart rate
42:23
going up because I saw that AI can do something that I… I used to be uniquely empowered to do. Then I do breathing exercises. I meditate and I try to check like, what am I feeling inside? Is this like serious stress or is this just something else? Or didn’t I sleep well?
42:40
And take some time to process these feelings because just, I’m a bit more skeptical on people waving it away. Like, yeah, but it’s just going to happen. Just accept it. I don’t believe in the just accept it. Some people need more time to process what is happening at the moment with AI.
42:55
And I think we need to be respectful for that as well, especially when every conference last year was saying, you’re all going to lose your jobs and AI is going to dominate. Maybe we should think a bit about how that impacts certain people in the room, because some people might actually be worried.
43:12
I think there are a lot of people that worry, but I also think a lot of it’s exaggerated too. And so it’s probably somewhere in the middle. I hate that expression, but I can’t imagine that everyone’s going to lose their jobs within the next two to
43:27
three years because I don’t see these tools as actually having that ability to do that. However, it is going to change life. But it’s not just changing life of programmers. It’s changing life for everybody. But that’s the story of technology. I mean, you can go back 5,000 years. I used to work in the construction business,
43:47
so I know the old way of developers, construction, goes back many thousands of years. And those technologies just throughout history have changed our lives for the better. We have clean water. Exactly.
44:04
I think a lot of claims are exaggerated. Both the positive ones of AGI is here and we’re all going to be replaced tomorrow. And also the people saying it’s never going to come and don’t worry about it. I think both cases are sort of exaggerated. When it comes to your vibe of we’ve already been here before, right?
44:23
I actually had a story in my case. Something that actually happened to me that prompted me to make my new talk about AI and change is a couple of years ago. Well, when I started my career, so I always think it’s a couple of years ago, but it’s been a decade by now.
44:37
So when I started my very first project, there was this senior engineer and I had submitted a piece of code, pull request. I sent him a message, hey, could you review my pull request? But he was sitting right next to me, but asynchronous communication, you know, because I didn’t want to take him out of the zone.
44:52
And suddenly he jumped out of his seat and almost yelled, these damn kids with their code completion, they don’t know how to code anymore. Yeah. And I’m like, huh, what? Code completion? That’s normal, right? And I was like, huh? Fast forward, I was doing code reviews for a school. So every year, my previous company,
45:11
we went to a university, they did a project and we did the code reviews to make sure that their code is up to spec. And I saw things in their code that I was like, no, this is all wrong. This is bad. And suddenly a thought passed my mind thinking these damn kids, which are damn LLMs,
45:26
they don’t know how to code anymore. And the moment I thought that, I was instantly portaled back to that old engineer. And I thought, oh my God, I’m that old engineer now. I’m the one that’s change resistant. And that really triggered me to think like, Oh, yeah. You know what? We didn’t just have code completion.
45:42
People thought that code completion would probably take away a few jobs because we would be X times more efficient. Now it’s this. And is it going to be the same scale or the same thing? No, because as they say, history never repeats, but it rhymes. So we’ll see. We’ll see.
45:57
Interesting. Well, yeah, we will see. It’s everywhere. And it’s fun for now. So…
46:05
Yeah, it is. We can stay employed. We’ll stay employed. No problem.
46:13
So is there anything else you want to leave us with? This has been a great conversation. Did I forget to bring up an interesting topic that you want to riff on?
46:22
No, I really just want to highlight that if you think about hosting your own Java user group, just start doing it. My key advice would be ask. You have no idea how many people will say yes. I’ve been, for the past two and a half years,
46:37
been amazed by the amount of goodwill that I’ve gotten from famous people in our Java industry. When you ask them, hey, do you want to come over? A lot of people say yes. And I’ve been incredibly surprised about that. Venkat, come at our meetup, our small meetup, taking a big detour just to come to us.
46:58
I’ve had a bunch of amazing speakers. So if you are afraid to host something, you can find the BJC partnership guidelines online. Everything’s open source. So please copy paste if that could work for you. But just try it. And if you already have a user group in the area, please go and contribute.
47:17
Even if you just go check it out, what it is. It’s so much fun to just hang out with people and be able to really make a change. Because I know that people at our jug have gotten jobs, have gotten brand new opportunities, have become pretty big conference speakers themselves just by coming to our jug and
47:33
participating and So yeah, build your network and participate. I think that’s the best I can send you off with.
47:41
Beautiful. I like it. I’ll take it. I’ll learn from it. I actually use it because I have a presentation where I talk about things that you guys have said. So I like that. So I’m going to steal that from you and I’ll attribute. So thanks a lot.
47:54
It was great talking to you and hopefully see you at an event soon. Same to you. See you, Jim. Cheers.