Discoverairhacks.fm podcast with adam bien
airhacks.fm podcast with adam bien
Claim Ownership

airhacks.fm podcast with adam bien

Author: Adam Bien

Subscribed: 191Played: 9,706
Share

Description

Java, Serverless, Clouds, Architecture and Web conversations with Adam Bien
388 Episodes
Reverse
An airhacks.fm conversation with Stuart Marks (@stuartmarks) about: the history of the Teletype Model 33 and punched paper tape, Telex service and long-distance communication costs, the connection between TTY and the teletype company name, 110 baud modems and 10 characters per second transmission, Wang Laboratories field offices connected via Telex, the evolution from Java Enumeration to Iterator to Iterable, Vector.elements() and the absence of an Enumerable interface, the introduction of Iterator and Iterable in JDK 1.2 and 1.5 respectively, the legacy collections Vector and Hashtable and their method-level synchronization overhead, Java 8 lambdas and streams as the major language feature, default methods enabling compatible interface evolution, the long-standing problem of not being able to add methods to published interfaces, Brian Goetz as the main designer of the Spliterator concept, Eclipse Collections and Rich Iterable as an alternative to streams, the GS Collections to Eclipse Collections history, C# LINQ as a competing influence that pressured Java to add streams, the design decision to separate lazy stream operations from eager collection operations, intermediate vs terminal operations in stream pipelines, why streams cannot be consumed twice and the buffering problem with forking streams, primitive specializations of streams (IntStream, LongStream, DoubleStream) and the original compromise of Java primitives vs objects, Spliterator characteristics, the subsized optimization that avoids intermediate storage and merge steps for array-based collections, how Spliterator splitting works for parallel execution and the fork/join pool, Amdahl's law and minimizing single-threaded setup for parallel streams, why Spliterator.trySplit mutates in place rather than returning two new spliterators, HashSet being sized but not subsized due to bucket distribution, ArrayList vs LinkedList performance considerations for streams, streams from non-collection sources like BufferedReader.lines() and String.lines(), infinite streams with Stream.generate(), the limitations of streams for reactive or socket-based processing, the for-each approach as an alternative to to-list for live data sources, the upcoming topics of fork/join pools and parallel stream configuration, the JavaOne conference Stuart Marks on twitter: @stuartmarks
Kaizen and Kaikaku

Kaizen and Kaikaku

2026-03-0901:11:42

An airhacks.fm conversation with Daniel Terhorst-North (@tastapod.com) about: first computer experience with the ZX81 and its 1K memory, the 1K chess game on ZX81, the ZX Spectrum with 16K and later 48K memory, the Amstrad 128K, typing in game listings from computer magazines, Dan's brother John hacking ZX spectrum games using a hardware freeze device and memory peeking/poking, cracking game encryption and copy protection on 8-bit tape cassette games, the arms race between game publishers and hackers, cracking the Star Wars game security before its release, ZX Spectrum fan sites and retro gaming communities, classic games including 3D Monster Maze and Manic Miner and Jet Set Willy, sprite graphics innovation on the Z80 chip, first internship at Domark publishing Empire Strikes Back on ZX Spectrum and Commodore 64, second internship at IBM Hursley Park working on CICS in PL/1 and Rexx, the contrast between casual game studio culture and IBM corporate culture in the 1980s, IBM's role as a founding partner of J2EE Enterprise Java, JMS wrapping MQ Series, the reliability of MQ Series compared to later messaging technologies, finding and reporting a concurrency bug in MQ Series with JUnit tests and IBM's rapid response with an emergency patch, IBM alphaWorks portal and experimental technologies, IBM Aglets mobile Java agent framework compared to modern A2A agent protocols, Jini and JavaSpaces from Sun Microsystems with leasing and self-healing, JXTA peer-to-peer technology, IBM Jikes Compiler performance compared to javac, IBM's own JVM, JVM running on Palm Pilot around 1999, VisualAge for Java as a port of VisualAge for SmallTalk with its image-based architecture and no file system exposure, Java's coupling of class and package names to files and directories as a design weakness, the difficulty of refactoring without IDE support, Eclipse as the first IDE with proper refactoring, NetBeans IDE performance compared to Visual Studio Code, third internship writing X-ray machine control software in Turbo Pascal doing digital image processing, the pace of technological innovation slowing from kaikaku (abrupt change) to kaizen (continuous improvement), Douglas Adams quote about technology perception by age, DEC Alpha 64-bit Unix performance, commodity Linux hardware replacing exotic RISC machines, Apple M series chips rediscovering RISC Architecture and system-on-chip design, innovation fatigue and signal-to-noise ratio in modern tech, LLMs and the trillion-dollar bet on the wrong technology, electric cars as an example of ongoing innovation, Tailwind CSS shutting down due to AI-generated code replacing paid expertise, Stack Overflow in trouble due to AI summarization, open source innovation continuing with tools like Astral's uv replacing the python toolchain, cross-community collaboration between rust and Python and Ruby ecosystems, first graduate job at Crossfield (Fuji/DuPont joint venture) doing electronic pre-press and color transformation through 4D CMYK color cubes, writing a TIFF decoder from scratch in C, Raster Image Processor technology and its connection to Adobe, transition from C++ to Java feeling quirky, joining ThoughtWorks in 2002 for enterprise Java work Daniel Terhorst-North on twitter: @tastapod.com
An airhacks.fm conversation with Thorsten Hoeger (@hoegertn) about: first computer experience with an IBM 8086 and learning programming by modifying the QBasic Gorilla game, early programming journey from QBasic to Visual Basic and the discovery of event-driven programming, building a password security script for autoexec.bat as a childhood project, transition from Visual Basic to Java around 2005 starting with Java 1.4.2, working at a small bank in Stuttgart building a core banking system, experience with Eclipse RCP rich client platform and the overhead of plugin architecture in business software, migration from Swing to Eclipse RCP frontend with JBoss application server backend, building a custom Spring-based microservice framework called Dwallin (Icelandic for dwarf) before Spring Boot existed, using Apache CXF for REST and RPC over messaging with ActiveMQ, comparison of Java development trajectories between annotation-based and XML-heavy approaches, discussion of the infamous Java and XML O'Reilly book that popularized XML configuration, xdoclet as a precursor to Java annotations, contrasting approaches of JBoss-based thin WAR deployments versus Spring-based embedded server microservices, university experience learning Ada programming language and its strict compiler as excellent for learning programming, PL/SQL's Ada-based origins, brief experience with OSGi and strong criticism of its complexity and poor developer experience, comparison of OSGi with Java Platform Module System (JPMS), founding Taimos consulting company 10 years ago originally building BlackBerry enterprise software, pivoting to AWS migration consulting for regulated industries including banks and insurance companies, strong preference for serverless architecture with lambda Step Functions API Gateway and DynamoDB, criticism of running kubernetes on AWS versus using native services like ECS Fargate, the distinction between running "in the cloud" versus "on the cloud", detailed discussion of why GraalVM native images are unnecessary on AWS Lambda due to compliance overhead and memory allocation model, quarkus and SnapStart as solutions for Lambda cold start problems, Java's cost efficiency on Lambda due to fast execution times, involvement with AWS CDK since 2018-2019 including building L2 constructs for EC2 and AppSync, shift from code contributions to community organizing and prioritization work with the CDK team, launching CDK Terrain as successor to CDK for Terraform, nuanced discussion of open source economics when the project primarily benefits a paid cloud provider, using GitHub as a personal index and dashboard for reusable project templates, consulting perspective on contributing to open source for code reuse across multiple clients, teaser for a future deep-dive episode on CDK internals and promoting Java usage with CDK Thorsten Hoeger on twitter: @hoegertn
An airhacks.fm conversation with Kabir Khan (@kabirkhan) about: Discussion about the A2A (Agent-to-Agent) protocol initiated by Google and donated to the Linux Foundation, the A2A Java SDK reference implementation using quarkus, the Java SDK development accepted by Google, comparison of python and Java expressiveness and coding practices, the concept of an agent as a stateful process versus a tool as a stateless function call, the agent card as a JSON document advertising capabilities including supported protocols and descriptions and input/output modes and examples, the three wire protocols supported: JSON RPC and HTTP+JSON (REST) and grpc, the proto file becoming the single source of truth for the upcoming 1.0 spec, the facade/adapter pattern for the unified client across protocols, the agent executor interface with request context and event queue parameters, the distinction between simple message interactions and long-running multi-turn tasks, tasks as Java Records containing conversation history with messages and artifacts, message parts including text parts and data parts and file parts, task lifecycle with task IDs and context IDs for stateful conversations, the event queue as internal plumbing for propagating task updates, the separation between spec package (wire protocol entities) and server package (implementation details), the task store as a CRUD interface with in-memory default and database-backed implementations in extras, replicated queue manager using microprofile reactive messaging with Kafka for kubernetes environments, building A2A agents without any LLM involvement for simple use cases like backup systems, the role of LLMs in creating prompts from task messages and context, the agentic loop and the challenge of deciding when an agent's work is complete, the relationship between MCP (Model Context Protocol) for tool access and A2A for agent-to-agent communication, the possibility of wrapping agent calls as MCP tools, memory management considerations with short-term and long-term memory and prompt size affecting LLM quality, the distinction between the bare reference implementation and Quarkus-specific enhancements like annotations and dependency injection, upcoming 1.0 release with standardized Java records for all API classes and improved JavaDoc, protocol extensions including the agent payment protocol and GUI snippet extensions using template engines, authentication support with OAuth2 tokens and API keys and bearer tokens, the authenticated agent card containing more information than the public agent card, authorization hooks being discussed for task-level access control, the API and SPI segregation suggestion for better clarity between spec and implementation Kabir Khan on twitter: @kabirkhan
An airhacks.fm conversation with Francesco Nigro (@forked_franz) about: break dancing and basketball including meeting Kobe Bryant in Italy during a dunk competition, using AI coding assistants like Claude Opus 4.5 and GitHub bots for infrastructure setup and CI/CD pipeline configuration, limitations of LLMs for novel performance-sensitive algorithmic work where training data is scarce, branchless IPv4 parsing optimization as a Christmas coding challenge, CPU branch misprediction costs when parsing variable-length IP address octets, converting branching logic into mathematical operations using bit tricks for better CPU pipeline utilization, LLMs excelling at generating enterprise code based on well-documented standards and conventions, providing minimal but precise documentation and annotations to improve LLM code generation quality, the Boundary Control Entity BCE architecture pattern and standards-based development, the core problem of thread handoff between event loops and ForkJoinPool worker threads in frameworks like quarkus Vert.x and Micronaut, mechanical sympathy implications of cross-core memory access when serialized data is allocated on one core and read by another, CPU cache coherency costs and last-level cache penalties when event loop and worker pool run on different cores, the custom virtual thread scheduler project (netty-virtual-thread-scheduler) enabling a single platform thread to handle both networking I/O and virtual thread execution, approximately 50% CPU savings demonstrated by Micronaut when using unified Netty-based scheduling, collaboration with Oracle Loom team including Victor Klang and Alan Bateman on minimal scheduler API design, the scheduler API consisting of just two methods onStart and onContinue plus virtual thread task attachments, work stealing algorithms and their complexity including heuristics similar to Linux CFS scheduler, the importance of being declarative about thread affinity rather than automatic magical binding to avoid issues with lazy class loading and background reaper threads, thread factory based approach for creating virtual threads bound to specific platform threads, stream-based run queues with graceful shutdown semantics that fall back to ForkJoinPool for progress guarantees, thread-local Scoped Values as a hybrid between thread locals and scoped values for efficient context propagation, performance problems with ThreadLocal including lazy ThreadLocalMap allocation overhead on virtual threads and scalability issues with ThreadLocal.remove() and soft reference queues, the impact on reactive programming where back pressure and stream composition still require higher-level abstractions beyond Basic Java concurrency primitives, structured concurrency limitations for back pressure scenarios compared to reactive libraries, deterministic testing possibilities enabled by custom schedulers where execution order can be controlled, the poller mechanism for handling blocking I/O in virtual threads in a non-blocking way, observability improvements possible through virtual thread task attachments for monitoring state changes, cloud cost implications of inefficient thread scheduling and unnecessary CPU wake-up cycles, the distinction between framework developers and application developers as different user personas with different abstraction needs Francesco Nigro on twitter: @forked_franz
An airhacks.fm conversation with Kabir Khan (@kabirkhan) about: first computer was a ZX Spectrum 48K with rubber keys, playing Bomb Jack as a memorable early game, growing up in Norway near Oslo with lots of outdoor activities including skiing and swimming in warm fjords, discovering multimedia kiosks at Tower Records in Piccadilly Circus as career inspiration, writing a Java applet dissertation visualizing Motorola 68000 CPU instruction processing with animations, early programming in Basic on the ZX spectrum including a hardcoded cookbook application, learning Pascal and the revelation of understanding what files actually are, first job writing an HTTP server in C++ on Windows NT using Winsock, implementing Real-Time Protocol streaming for multimedia content, working at a consultancy learning multiple programming languages including Active Server Pages ASP and Microsoft Transaction Server MTS, going freelance and building a Java-based exhibition industry booking system, using JBoss with EJB3 for the second version of the exhibition system, getting JBoss support and being impressed by their expertise, contributing to JBoss Mail and JBoss AOP as open source contributions, meeting Sacha Labourey at a JBoss partner event in Norway who advised focusing on AOP, joining JBoss in September 2004 when the company had only about 50 people, meeting Marc Fleury and having pizza at his house in Atlanta, the Red Hat acquisition of JBoss in 2006, leading the JBoss AOP project and standardizing interceptor chains, working on the JBoss microcontainer for JBoss 5 which was over-engineered and slow, joining the team that rethought the server architecture leading to Wildfly, working on WildFly core server management and domain management, the recent move of the runtimes division from Red Hat to IBM, current work on Agent-to-Agent (A2A) protocol, quarkus being the Java reference implementation for the A2A specification published by Google, Agent-to-Agent Protocol as a standardized protocol for agent-to-agent communication using JSON-RPC REST and grpc, agent cards as capability advertisements similar to business cards, benefits of smaller specialized agents over monolithic AI applications including better traceability smaller context windows and flexibility with different LLMs, comparison of agent architecture to microservices where smaller agents are preferable unlike traditional services where monoliths can be better, upcoming episode planned to deep-dive into A2A with Quarkus and opentelemetry for agent traceability Kabir Khan on twitter: @kabirkhan
An airhacks.fm conversation with Simon Ritter (@speakjava) about: first computer experiences with TRS-80 and mainframe ALGOL68 programming via punched cards in the 1970s UK, one-week turnaround times for program execution, writing battleship games on mainframes, bbc micro with color graphics and dual floppy drives, father's influence as a tech enthusiast with a PDP-8 in his chemistry lab, early fascination with robotics and controlling machines through programming, writing card games and Mandelbrot set fractal generators in Basic, transition from BASIC to C programming through sponsored university degree, working at Rocc Computers on Unix device drivers and kernel debugging, the teleputer, memory leak debugging requiring half-inch mag tape transfers and two-week investigation periods, AT&T Unix source code license access and kernel modifications, Unix System V Release 4 and Bell Labs heritage, Motorola 68000 processor's flat memory model versus Intel's near/far pointers, Novell acquisition of Unix from AT&T in 1993, Unixware development and time spent in Utah, SCO's acquisition of Unix IP and subsequent IP trolling, joining Sun Microsystems in 1996 as Solaris sales engineer, transition to Java evangelism in 1997, working under Reggie Hutcherson and Matt Thompson for nearly 10 years, building Lego Mindstorms blackjack-dealing robot with Java speech recognition and computer vision, using Sphinx for voice recognition and FreeTTS for speech synthesis, JMF webcam integration for card recognition, JavaOne 2004 robot demonstration, Glassfish application server evangelism and reference implementation benefits, Sun's technology focus versus business development challenges, CDE desktop environment nostalgia, Oracle acquisition of Sun in 2010, Jonathan Schwartz's acquisition announcement email, Oracle's successful stewardship of Java through openJDK, praise for Brian Goetz Mark Reinhold John Rose and Stuart Marks, six-month release cycle benefits, Project Amber Loom Panama and Valhalla developments, OpenSolaris discontinuation leading to docker adoption for server containerization, Oracle's 2015 pivot to cloud focus, career-defining conversation in Japan about cloud versus Java evangelism, layoff during vacation in September 2015, joining Azul Systems after three-and-a-half-hour interview with Gil Tene, ten years at Azul working on high-performance JVM Platform Prime garbage collection and CRaC technology, comparison of Azul culture to Sun Microsystems innovation environment, commercial Java distribution value propositions and runtime inventory features Simon Ritter on twitter: @speakjava
An airhacks.fm conversation with Holly Cummins (@holly_cummins) about: first computer experience with her dad's Kaypro CPM machine and ASCII platform games, learning Basic programming on an IBM PC clone to build a recipe management system, studying physics at university with a doctorate in quantum computing, self-teaching Java to create 3D visualizations of error correction on spheres during PhD research, joining IBM as a self-taught programmer without formal computer science education, working on Business Event Infrastructure (BDI) at IBM, brief unhappy experience porting JMS to .net with Linux and VNC, moving to IBM's JVM performance team working on garbage collection analysis, creating Health Center visualization tooling for J9 as an alternative to JDK Mission Control, innovative low-overhead always-on profiling by leveraging JIT compiler's existing method hotness data, transitioning to WebSphere Liberty team during its early development, Liberty's architectural advantage of OSGi-based modular core enabling small fast startup while maintaining application compatibility, working on Apache Aries enterprise OSGi project and writing a book about it, discussion of OSGi's strengths in protecting internal APIs versus complexity costs for application developers, the famous OSGi saying about making the impossible possible and the possible hard, microservices solving modularity problems through network barriers versus class loader barriers, five years as IBM consultant helping customers adopt cloud-native technologies, critique of cloud-native terminology becoming meaningless when everything required the native suffix, detailed analysis of 12-factor app principles and how most were already standard Java practices, stateless processes as the main paradigm shift from JavaServer Faces session-based applications, joining Red Hat's quarkus team three and a half years ago through Erin Schnabel's recommendation, working on Quarkiverse community aspects and ecosystem development, leading energy efficiency measurements confirming Quarkus's sustainability advantages, current role as cross-portfolio sustainability architect for Red Hat middleware, writing Pact contract testing extension for Quarkiverse to understand extension author experience, re-architecting Quarkus test framework class loading to enable deeper extension integration, recent work on Dev Services lazy initialization to prevent eager startup of multiple database instances across test profiles, fixing LGTM Dev Services port configuration bugs for multi-microservice observability setups, upcoming JPMS integration work by colleague David Lloyd requiring class loader simplification, the double win of saving money while also reducing environmental impact, comparison of sustainability benefits to accessibility benefits for power users, mystery solved about the blue-haired speaker at European Java User Groups years ago Holly Cummins on twitter: @holly_cummins
An airhacks.fm conversation with Christofer Dutz (christofer-dutz) about: first computer was a Commodore C64 from Hannover Messe, early programming in Basic, playing Wizards of War game on cassette tape, growing up in Melbourne Australia until age ten, visiting Ayers Rock and seeing prehistoric armored fish in puddles, learning C and C++ at Volkshochschule around 1992, memory management challenges with DOS gaming like X-Wing vs TIE Fighter and Wing Commander, starting Java at Technical University of Darmstadt in 1998 with version 1.0.7, appreciating Java's simplicity compared to C++ and no system crashes from memory errors, early involvement with Apache Cocoon for XML and XSL transformations, contributing to eXist-db XML database as committer number two, working with XML XSL and XSLT for data transformation, frustrations with YAML compared to XML, transition from Cocoon to Adobe Flex after Cocoon switched to Spring and Maven, becoming co-maintainer of Flex Mojos Maven plugins, Adobe donating Flex to Apache Software Foundation, attending ApacheCon in Sinsheim and connecting with Apache committers, committer and PMC member of 12 active Apache projects, firefighting role fixing Maven builds for stuck projects, retiring Apache Cocoon project, strong focus on industrial IoT projects, Apache IoTDB as best time series database, Apache StreamPipes for cloud IoT orchestration, Apache Camel and Apache NiFi involvement, founding Apache PLC4X in 2017 at codecentric, Apache PLC4X as JDBC-like interface for industrial equipment communication, spending 80-90 hours per week on PLC4X for nine years, challenges with industrial automation industry not understanding open source, anecdote about steel melting plant operator expecting free enterprise support, Germany being a difficult market for industrial automation consulting, founding ToddySoft company end of last year, building installable products and plugins for industrial solutions, ethical approach to open source by only selling products from projects he contributes to, real-time definitions varying from tens of milliseconds in cloud to nanoseconds in industrial systems, ToddySoft named after PLC4X mascot Toddy the palm civet (toddy cat), plans for future episode discussing IoTDB StreamPipes PLC4X and NiFi use cases Christofer Dutz on LinkedIn: christofer-dutz
An airhacks.fm conversation with Thomas Wuerthinger (@thomaswue) about: clarification of GraalVM release cadence changes and decoupling from openJDK releases, GraalVM focusing on LTS Java releases only (skipping non-LTS like Java 26), GraalVM as a multi-vendor polyglot project with community edition and third-party vendors like Red Hat BellSoft and microdoc, increased focus on python support due to AI popularity, GraalVM team alignment with Oracle Database organization, Oracle Multilingual Engine (MLE) for running JavaScript and Python in Oracle Database, MySQL MLE integration, native image support for stored procedures in Oracle Database, shipping lambda functions from client applications to database for temporary execution, treating Oracle Database as an operating system for running business logic, serverless workloads directly in Oracle Database, application snapshotting similar to CRaC but running in user space without kernel privileges, efficient scale-to-zero capabilities with native images, Oracle REST Data Services service generalization for serverless execution platform, database triggers for workflow systems and application wake-up, durable functions with transactional state storage in Oracle Database, comparison to AS400 architecture with transaction manager database and operating system in same memory, memory price increases making GraalVM native image more attractive, lower memory consumption benefits of native image beyond just startup time, CPU-based inference support with SIMD and Vector API, TornadoVM for GPU-based inference built on Graal compiler, WebAssembly compilation target for native images, edge function deployment with WebAssembly, Intel memory protection keys for sandboxed native image execution, native image layers for shared base libraries similar to docker layers, profile-guided optimizations for size reduction, upx binary compression for 3x size reduction, memory savings from eliminated class metadata and profiling data not garbage collector differences, 32-bit object headers in serial GC smaller than HotSpot, polyglot integration allowing Python and JavaScript embedding in Java applications, Micronaut framework compile-time annotation processing, quarkus framework best alignment with native image for smallest binaries, GraalVM roadmap focused on database synergies and serverless innovation Thomas Wuerthinger on twitter: @thomaswue
An airhacks.fm conversation with Alvaro Hernandez (@ahachete) about: discussion about LLMs generating Java code with BCE patterns and architectural rules, Java being 20-30% better for LLM code generation than python and typescript, embedding business knowledge in Java source code for LLM context, stackgres as a curated opinionated stack for running Postgres on kubernetes, Postgres requiring external tools for connection pooling and high availability and backup and monitoring, StackGres as a Helm package and Kubernetes operator, comparison with oxide hardware for on-premise cloud environments, experimenting with Incus for system containers and VMS, limitations of Ansible for infrastructure automation and code reuse, Kubernetes as an API-driven architecture abstracting compute and storage, Custom Resource Definitions (CRDs) for declarative Postgres cluster management, StackGres supporting sharding with automated multi-cluster deployment, 13 lines of YAML to create 60-node sharded clusters, three interfaces for StackGres including CRDs and web console and REST API, operator written in Java with quarkus unlike typical Go-based operators, Google study showing Java faster than Go, GraalVM native compilation for 80MB container images versus 400-500MB JVM images, fabric8 Kubernetes client for API communication, reconciliation cycle running every 10 seconds to maintain desired state, pod local controller as Quarkus sidecar for local Postgres operations, dynamic extension installation without rebuilding container images, grpc bi-directional communication between control plane and control nodes, inverse connection pattern where nodes initiate connections to control plane, comparison with Jini and JavaSpaces leasing concepts from Sun Microsystems, quarter million lines of Java code in the operator mostly POJOs predating records, PostgreSQL configuration validation with 300+ parameters, automated tuning applied by default in StackGres, potential for LLM-driven optimization with clone clusters for testing, Framework Computer laptop automation with Ubuntu auto-install and Ansible and Nix, five to ten minute full system reinstall including BIOS updates Alvaro Hernandez on twitter: @ahachete
An airhacks.fm conversation with Ales Justin (@alesj) about: Slovenian Christmas traditions, career journey from Bitcoin to Strimzi to quarkus development, Quarkus gRPC implementation using Google's legacy gRPC versus native Vert.x-based gRPC server, plans to make Vert.x gRPC the default in Quarkus with Vert.x 5, gRPC transcoding and gRPC-web browser support coming with new Vert.x version, OpenTelemetry integration in Quarkus with Bruno Baptista leading the effort, LGTM container image from Grafana containing Loki Grafana Tempo and Mimir for observability testing, Quarkus observability dev services providing out-of-the-box Grafana dashboards, custom Grafana dashboard configuration support in Quarkus applications, evolution from MicroProfile Metrics to micrometer to OpenTelemetry as the preferred standard, Protocol Buffers (protobuf) version migration challenges from proto 3 to proto 4 breaking Pulsar integration, WebAssembly-based protoc compiler replacing platform-specific binaries reducing dependency size from 100MB to 2MB, gRPC service development in Quarkus using GRPCService annotation and generated classes, gRPC client injection using GRPCClient annotation similar to REST client pattern, sharing protobuf definitions between projects using Git submodules for source code sharing, gRPC bidirectional streaming support in Quarkus, OpenTelemetry spans attributes and events for business and technical observability, gRPC interceptors for server and client telemetry instrumentation, VictoriaMetrics as Prometheus-compatible alternative with push-based metrics, OpenTelemetry logging support in Quarkus, OpenBlend Slovenia Java conference history from Java Blend to Oracle partnership, conference details with 400-450 attendees at Slovenian Adriatic coast in late May Ales Justin on twitter: @alesj
How PowerMock Happened

How PowerMock Happened

2025-12-2001:06:54

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
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
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
How to Kill a Fish

How to Kill a Fish

2025-11-2855:19

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
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
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
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
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
loading
Comments (1)

alex

An innocent question about someone's first computer suddenly turned into what is probably the funniest episode introduction on this channel :)

Apr 13th
Reply
loading