airhacks.fm podcast with adam bien

Adam Bien
undefined
Dec 20, 2025 • 1h 7min

How PowerMock Happened

An airhacks.fm conversation with Johan Haleby (@johanhaleby) about: first computer experience with Commodore C64 and typing Basic programs from instruction manuals, early gaming experiences and interest in understanding load commands, transition to Amiga 500 Plus for demo scene scripting and composition, moving to PC era with 486 SX25 and four megabytes of RAM, learning Turbo Pascal and creating 2D Super Mario-inspired games, experimenting with inline assembler in Pascal and reading "The Art of Assembly Programming", reverse engineering games using Win32 disassembler to bypass license checks, studying computer science at Blekinge and Lund University in Sweden, first job at JayWay consultancy firm working on IKEA project in 2005, early adoption of Spring framework and automated testing practices, comparison of old-style EJB with heavy XML configuration versus Spring's lightweight approach, the evolution from XML-based configuration to annotation-based Java EE 5 and 6, creating PowerMock with colleague Jan Kronqvist to mock static methods and final classes, using asm and JavaAssist for bytecode manipulation instead of AspectJ, implementing custom class loaders where each JUnit method executed in different class loader, deep clone module for cloning object graphs between class loaders, tight coupling challenges between PowerMock and Mockito/EasyMock/JUnit versions, transition from EasyMock's record-replay pattern to Mockito's when-then approach, modern preference for avoiding mocks and testing against real cloud environments, optimizing for fast CI/CD pipelines rather than local simulation, structuring code to separate infrastructure concerns from pure business logic, using Java Records as pure data carriers versus adding behavior to records, Clojure-inspired philosophy of decoupling state from behavior and identity, Rich Hickey's "Simple Made Easy" talk and definitions of simple versus easy, multi-methods in functional languages as alternative to polymorphism, domain modeling example with network devices and fiber channel connections, benefits of object-oriented polymorphism for transparent persistence and simple code, avoiding religious adherence to patterns in favor of pragmatic solutions, Maven's stability and opinionated approach versus Gradle's flexibility, reducing external dependencies and Maven plugins in favor of CI/CD automation, the NPM ecosystem's over-modularization compared to Java's more reasonable approach, decline of OSGi hype and return to simpler monolithic architectures, Johan's current work on Occurrent Event Sourcing library and cloud events Johan Haleby on twitter: @johanhaleby
undefined
Dec 14, 2025 • 1h 16min

From Energy Sector to Cape Dwarf

An airhacks.fm conversation with Ales Justin (@alesj) about: Early computing experiences with spectrum 48ZX and game development in Yugoslavia, progression from Basic to Pascal to C/C++ and eventually Java, mathematics education and its application to programming, working on energy consumption analysis applications for Slovenian companies, transitioning from a big IT company to a startup focusing on energy sector software, implementing Spring deployer for JBoss and contributing to open source, joining JBoss/Red Hat after impressing Bill Burke and Mark Fleury with Spring-JBoss integration, working on JBoss microcontainer with Adrian Brock and emphasis on precise testing, development of CapeDwarf as a JBoss implementation of Google App Engine APIs, collaboration with Google on TCK (Technology Compatibility Kit) development, solving concurrency bugs for a billion-dollar kitten app company using Cape Dwarf clustering, transition to cloud technologies with kubernetes and openshift integration, brief departure to work on cryptocurrency exchange using Spring Boot and Kafka, experiencing and solving Kafka / Strimzi issues on Google Cloud Platform, returning to Red Hat to work on Strimzi and eventually quarkus, focus on runtime systems and reactive programming with grpc and observability, importance of open source contribution and community engagement, evolution from monolithic application servers to cloud-native microservices architecture Ales Justin on twitter: @alesj
undefined
Dec 10, 2025 • 59min

Building Software for Chemistry Labs with Java

An airhacks.fm conversation with Stanislav Bashkyrtsev (@sbashkirtsev) about: scientific software for chemists and drug discovery, peaksel flagship software for analyzing mass spectrometer data, parsing binary instrument formats up to gigabytes in size, mass spectrometry measuring molecular weights using electric fields and detectors, daltons as mass units, isotope patterns for molecule identification, storing experimental data in PostgreSQL with potential big data challenges, S3 storage solutions, drug discovery process from hit identification to molecule modifications, molecular libraries and combinatorial chemistry, enumeration of molecular structures in computers, synthesis reactions mixing reactants with solvents and various conditions, liquid handlers and laboratory automation challenges, return on investment issues in early drug discovery automation, lab of the future concepts, Molbrett product combining excalidraw with chemical structure drawing capabilities, SMILES format for representing molecular structures as strings, graph-based molecular formats storing atom connections and bond types, 2D vs 3D molecular visualization preferences, Meve centralized event system for tracking molecular experiments across different software systems, ETL processes for data integration, Crystalline software for documenting protein crystallography experiments, protein structure determination using X-ray crystallography, Synchrotron facilities for high-energy X-ray generation, crystal growing conditions and documentation, fishing crystals with microscope and lasso wands, liquid nitrogen cooling for crystal preservation, Java backend, JavaScript frontend, minimal dependencies approach, six-person team structure, sponsorship business model for open source scientific software development, free updates for sponsors, subscription model for non-sponsors, checkout: https://elsci.io Stanislav Bashkyrtsev on twitter: @sbashkirtsev
undefined
Nov 28, 2025 • 55min

How to Kill a Fish

An airhacks.fm conversation with Ondrej Mihalyi (@OndroMih) about: OmniFish company founding with former Payara employees, Arjan Tijms as Jakarta EE Security lead and Jakarta EE 10 coordinator, David Matejczyk as Glassfish project lead and main contributor, OmniFish as the main maintainer and driver of GlassFish development, GlassFish optimization and bug fixes, embedded GlassFish improvements for command-line execution, comparison with Payara Micro, Slovak and Czech Christmas traditions including cemetery visits on Christmas Eve, traditional Christmas cookies like medovník (honey cookies) and perník, carp preparation for Christmas dinner with potato salad variations, fish scales tradition for wealth, Jakarta EE stability and backward compatibility over 15 years, migration from Java EE to Jakarta EE namespace changes, comparison between Jakarta EE and Spring regarding XML configuration history, Convention over Configuration in Java EE 5 and 6, WebSphere and WebLogic legacy issues, GlassFish as reference implementation advantages, runtime vs application server distinction, JSON-P usage for serverless lambda events, MicroProfile Health clean room implementation, Piranha experimental framework with new Servlet container implementation, AI and LLMs excellent knowledge of Jakarta EE specifications, no hallucinations when generating Jakarta EE code, separation of runtime and application deployment Ondrej Mihalyi on twitter: @OndroMih
undefined
Nov 23, 2025 • 58min

From C# to Java Data Satanist

An airhacks.fm conversation with Stanislav Bashkyrtsev (@sbashkirtsev) about: Early programming journey starting with Pascal in school and C# self-study in 2005, transition from C# to Java through local programming courses in 2007, first experiences with Java 6 and EJB2/EJB3, working with Delphi for lawyers' desktop software before finding Java opportunities, first Java project for Madison Square Garden and New York Knicks website, career progression through entertainment and banking sectors including work with Barclays Capital and UBS, transition to CI/CD engineering in 2012 with heavy Jenkins usage and source code patching, challenges of implementing trunk-based development practices, automated QA engineering experiences with selenium testing, problems with separate QA and development teams affecting code testability, self-study of biology and chemistry leading to scientific software development, founding elsci company focused on high-performance enterprise software for chemists and biotech companies, disconnect between software developers and scientists' needs in scientific software, advantages of quarkus framework for serverless deployments on AWS, Quarkus build-time deployment optimization versus traditional application servers, comparison with Spring Boot auto-configuration complexity, migration experiences from Java EE to Quarkus maintaining standards compliance, virtual threads support in modern Quarkus, preference for Java 7 simplicity over modern Java streams, importance of end-to-end testing over unit testing pyramid, challenges of running a software company versus being an independent consultant, Helsinki Java User Group presentation on operating system thread mechanics Stanislav Bashkyrtsev on twitter: @sbashkirtsev
undefined
Nov 16, 2025 • 56min

From Turbo Pascal to Java Advent

An airhacks.fm conversation with Olimpiu Pop (@olimpiupop) about: Romanian developer's journey from 486 computers to Transylvania Java User Group, early programming with Turbo Pascal at age 9-10, playing games like Jazz Jackrabbit and Prince of Persia, influence of Star Trek and science fiction on career choice, mathematics olympiads participation, computer science high school education, learning C and FoxPro, Java vs .net ecosystem in Romania during 2000s, Microsoft's university infiltration strategy, first Java exposure with version 1.4, Siemens internship on telecommunications servers, neighborhood network building projects, working without home internet until 2005-2006, nearshoring company experience, EJB and Spring framework with XML configuration, master's studies at Johannes Kepler University Linz 2008-2011, working with fabasoft on observability systems, .NET development for two years with C#, attributes vs annotations comparison, Java ME micro edition development, implementing DTOs and service architectures, agile methodology adoption, iterative development practices, data gravity concept from Ruby on Rails, working for Uniqa with WebMethods, brueckner Group spin-off developing industrial software, DevOps implementation with Jenkins and Git, choosing between Mercurial and Git version control, Broadridge financial technology work, stock exchange monitoring systems, low-latency Java implementations, Mechanical Sympathy and Disruptor pattern, taking over Java User Group from Gabi Pop, managing Java Advent Calendar for 15 years, WordPress to Java migration plans using quarkus-roq, transition from coding to management roles, challenging microservices adoption, modular monolith advocacy, Java verbosity improvements and scripting capabilities, young developers returning to Java, typescript developers discovering Java patterns, Romanian tech scene evolution, Cluj coffee culture and steampunk bars Olimpiu Pop on twitter: @olimpiupop
undefined
Nov 13, 2025 • 1h 10min

Developer and Build Tools on AWS

An airhacks.fm conversation with Gabriel Pop (@vwggolf3) about: transition from individual contributor to engineering management since 2011, managing developer tools and AWS code suite services, discussion of AWS CodeCommit entering maintenance mode but maintaining performance and security standards, benefits of AWS CodeBuild as a serverless build service, using CodeBuild for running JARs and automated testing, proper channels for submitting AWS feature requests through documentation and github repos, CodeArtifact as artifact repository for Java JARs and other packages, using S3 for serverless lambda deployment artifacts, multi-account architecture patterns for build systems, CodeDeploy flexibility for various deployment scenarios including ECS rolling updates, lifecycle hooks in CodeDeploy for Lambda deployments, Code Connections for secure third-party repository integration without storing secrets, CodePipeline as orchestrator for CI/CD workflows, CodePipeline V2 features with tag-based triggers for release automation, event-driven architecture using Amazon EventBridge with CodeBuild and CodePipeline events, comparison with GitHub Actions and Jenkins integrations, philosophy of using AWS-native services for consistency and security, Step Functions as alternative orchestration tool, importance of automation and infrastructure as code with CDK, challenges of prioritization and trade-offs in AWS service development, AWS region expansion and service availability, end-to-end testing strategies with Java interfaces and MicroProfile, security best practices with least privilege and dedicated build accounts, developer experience improvements and console UI updates, community engagement through AWS Hero program and user groups Gabriel Pop on twitter: @vwggolf3
undefined
Nov 4, 2025 • 1h 6min

Lighter AWS Lambda Power Tools For Java

An airhacks.fm conversation with Philipp Page (@PagePhilipp) about: Discussion about refactoring AWS Lambda Power Tools to remove AspectJ dependency and introduce functional interfaces, comparison between AspectJ and lombok for code generation, benefits of offloading work to build time for AWS Lambda performance, using quarkus build-time optimizations with Jandex and gizmo utilities, replacing slf4j with Java System Logger to reduce dependencies, implementing log buffering feature that flushes debug logs only on errors for proactive debugging, thread safety considerations in multi-threaded AWS Lambda executions, using Embedded Metrics Format (EMF) for CloudWatch metrics without prometheus, caching Parameter Store values to avoid throttling limits, structured logging benefits for nested JSON queries in CloudWatch Insights, detecting cold starts without reflection using class initialization tricks, future support for Java 25 and modern Java features like Scoped Values, Maven and Gradle plugin development for annotation processing, custom serializers for Kafka and Avro messages, potential java.util.json support for lightweight JSON parsing, middleware chain pattern implementation for Power Tools utilities, differences between reactive and proactive debugging approaches, cost optimization through EMF metrics instead of Prometheus scraping, BCE (Boundary Control Entity) architecture pattern for business metrics, performance benefits of removing reflection from metrics utility, CDK integration considerations for generated classes, request stream handlers as reflection-free alternatives Philipp Page on twitter: @PagePhilipp
undefined
Oct 26, 2025 • 1h 4min

Babylon and java.util.json

Paul Sandoz, a Java platform engineer at OpenJDK, discusses the exciting evolution of Java, touching on energy efficiency and performance improvements. He dives into Project Babylon and its integration with Vector API, enabling advanced AI capabilities on the JVM. Listeners will learn about TornadoVM's GPU optimizations, Python's enterprise challenges, and the introduction of a minimal JSON API for OpenJDK. Paul shares insights on pattern matching and the benefits of a lightweight API, making Java a more competitive option for enterprise and embedded systems.
undefined
Oct 22, 2025 • 0sec

From Cloud Networking to Powertools for AWS Lambda (Java)

In this engaging chat, Philipp Page, a software engineer and Java tech lead for AWS Lambda Powertools, shares his fascinating journey from gaming to cloud networking. He discusses hosting Minecraft servers at 13, learning about SQL injection, and the nuances of transitioning from PHP to Java. Philipp dives into his work at AWS, enhancing serverless frameworks with observability tools, and the intricacies of implementing efficient caching. His insights on over-abstraction and custom frameworks provide a relatable backdrop for developers navigating their own tech journeys.

The AI-powered Podcast Player

Save insights by tapping your headphones, chat with episodes, discover the best highlights - and more!
App store bannerPlay store banner
Get the app