Java Meetup – Advanced Debugging Techniques for Java Apps (Ciklum, 2023)
- Project type Tech presentation
- Period June 2023
- Presentation slides URL
Within the vibrant realm of Java development, the power of knowledge sharing and collective growth cannot be underestimated. As a firm believer in the value of experience and expertise, I am thrilled to have had the opportunity to delve into the intricate world of advanced debugging techniques. Drawing upon my nearly 11 years of experience as a Java developer, I have embraced the role of a facilitator, encouraging fellow developers to explore debugging with confidence and curiosity. So, I am delighted to share insights from my journey, specifically focusing on an exciting project where I collaborated with 2 of the top 5 largest airlines globally.
At the heart of effective Java application development lies the ability to navigate the intricacies of debugging. Throughout my presentation, I was driven by a passion for demystifying advanced debugging concepts. By fostering a deep understanding of manipulating an application's inner state, harnessing HotSwap functionality, and even leveraging breakpoint bombs, I aimed to encourage developers to unlock new realms of code analysis and optimization.
To truly appreciate the power of debugging, one must also grasp the theoretical underpinnings that drive its efficacy. I guided fellow developers through the Java Platform Debugger Architecture (JPDA), emphasizing its significance and how it forms the backbone of successful debugging endeavours. Furthermore, I delved into the intricate relationship between references and the Java Virtual Machine (JVM), empowering developers with a solid foundation to navigate complex debugging scenarios.
During the presentation, I led live demonstrations, bringing essential debugging techniques to life. Together, we explored setting breakpoints and expression evaluation. By showcasing the suspension of breakpoints, as well as introducing logging on the flight, I aimed to equip developers with practical tools to troubleshoot their code effectively. We also ventured into debugging multithreading applications and explored intentions and breakpoint filters to tailor our debugging focus. The session concluded with an exploration of various breakpoint types, ranging from line and method breakpoints to field, exception, and lambda breakpoints.
Acknowledging the diverse needs of the Java developer community, I also delved into advanced debugging scenarios that are architectural dependent, by exploring remote debugging techniques, harnessing the power of SSH tunnels, and postmortem debugging. Moreover, I guided attendees through the practical application of popular tools like IntelliJ, JConsole, and Java profiling - which can improve our productivity greatly.
It was an excellent opportunity to participate in such an event! Besides my lecture, there were also great materials on subjects like News in Java 20, Elasticsearch, troubleshooting techniques, static code analysis, Java Virtual Threads and Design Patterns.
My teaching activity
Teaching others is one of the passions of my life. During my professional life I experienced all types of teaching I could:
- graduation diploma coordinator (check specific details here: ETTI)
- trainer in a corporate environment (check specific details here: Orange | CN Group)
- trainer in a private software academy (Software Development Academy)
- summer school trainer (TC software summer school)
- trainer in students’ organizations (check specific details here: LSE | MobilPRO | CareerTeam)