Java Threads Reimagined: A Reflection on JConf Toronto 2023 and the Dawn of a New Era of Concurrency

JConf Toronto, held on May 3rd, 2023, was a memorable gathering of Java enthusiasts and experts from both the local and global communities. The event took place at the Chestnut Conference Center, Toronto, featuring a wide variety of in-depth sessions, interactive Q&As, and two insightful keynote presentations. Notable keynote speakers included Venkat Subramaniam and Neal Ford. Venkat’s keynote, titled “Know …

Read More »

Foojay Developer Certification: Measure Skills!

Learn the why and how of a group of enthusiastic people implementing a new sort of developer certification that objectively measures dev skills. We also invite you to join our initiative if you’re interested via #certification on the Foojay slack. There’s a lot of debate about what defines a ‘good’ developer. Of course, there are different dimensions to start with. …

Read More »

Decoding Success: An Industry Expert’s Guide to Thriving in Software Development and Security

In today’s fast-paced tech world, understanding the intricacies of software development and product management is key to success. In this enlightening discussion, we speak with Erik Costlow, a Senior Director of Product Management at Azul, who shares valuable insights from his journey of transitioning from engineering to product management, current industry trends, challenges in software development, and advice for new …

Read More »

State of Java Survey

Do you ever wonder what OpenJDK distributions and what Java versions your peers are using? What Java versions? Java-based infrastructures and languages? How many are running Java applications in public clouds?  Azul is gathering all that data from a survey of Java users, running until 6:30pm CT on June 15, 2023. If you want to participate, the survey takes about …

Read More »

Announcing the Digma Beta: First Runtime Linter for Java Code

Call for Developers We are looking for senior Java developers to participate in the beta program of a new free runtime linter that provides Continuous code Feedback.Digma is a Jetbrains IDE plugin that analyzes your code in runtime, improving coding practices and confidence when working on complex Java code. The plugin runs locally and doesn’t require sharing data. We have …

Read More »

Foojay Podcast #23: Java Profiling and Performance

How do you get the maximum performance out of your Java application? And how to use profiling to find the bottlenecks? Let’s learn all about it in this podcast, with Heinz Kabutz, Marcus Lagergren, Chris Newland, and Frank Delporte! Java profiling is a crucial technique for measuring and improving the performance of applications. It helps identify bottlenecks, memory leaks, and …

Read More »

FinOps: Tim O’Brien at Walmart

FinOps and Cloud Cost Management, what’s it all about and how does it impact us as developers and others who are close to the code? In this series on Foojay.io, you’re introduced to FinOps practitioners around the world, focused on how they have gradually found themselves, their technology and their organization in the FinOps space. Tim O’Brien is Senior Director …

Read More »

Mastering the Art of Controlling the JIT: Unlocking Reproducible Profiler Tests

In my last blog post, I hinted Using Async-Profiler and Jattach Programmatically with AP-Loader, that I’m currently working on a test library for writing better profiling API tests. The library is still work-in-progress, but it already allows you to write profiling API tests in plain Java: private int innerASGCT2() { new Tracer().runASGCT().assertTrue( Frame.hasMethod(0, “innerASGCT2”, “()I”), Frame.hasMethod(1, “testRunASGCT2”)); return 0; } …

Read More »

Rolling Binary Trees: A Guide to Common Design Patterns in Java

Introduction Binary trees are fundamental data structures, ubiquitous in computer science and software engineering. We use them to represent hierarchical data and implement more complex data structures, such as search trees, syntax trees, cryptographic hash trees, space partitioning trees, heaps, and so on. Common binary tree operations include insertion, deletion, traversal, searching, and rotation. A relatively uncommon and unexplored operation …

Read More »

Enriching Kafka Applications with Contextual Data

Developing high-performance large-stream processing applications is a challenging task. Choosing the right tool(s) is crucial to get the job done; as developers, we tend to focus on performance, simplicity, and cost. However, the cost becomes relatively high if we end up with two or more tools to do the same task. Simply put, you need to multiply development time, deployment …

Read More »