User Experience on mobile might not be great yet, but I'm working on it.

Your first time on this page? Allow me to give some explanations.

Awesome JVM

A curated list of awesome loosely performance related JVM stuff. Inspired by awesome-python.

Here you can see meta information about this topic like the time we last updated this page, the original creator of the awesome list and a link to the original GitHub repository.

Last Update: Oct. 27, 2021, 12:03 p.m.

Thank you deephacks & contributors
View Topic on GitHub:
deephacks/awesome-jvm

Search for resources by name or description.
Simply type in what you are looking for and the results will be filtered on the fly.

Further filter the resources on this page by type (repository/other resource), number of stars on GitHub and time of last commit in months.

Bytecode

Jitescript - Java API for Bytecode

176
25
5y 29d
Apache-2.0

Used to develop tools for the production of Java .class files.

Runtime code generation library with support for Android.

Garbage collectors

Providing continuous, pauseless operation for Java applications.

GC policy available in the Java Virtual Machine for IBM WebSphere Application Server V8.

Completely passive GC implementation with bounded allocation limit, and lowest runtime performance overhead possible.

G1

The Garbage-First Garbage Collector.

Ultra-Low-Pause-Time Garbage Collector.

Book that addresses new challenges to garbage collection made by recent advances in hardware and software.

ZGC

Garbage collector optimized for low latency and very large heaps.

Load tools

A constant throughput, correct latency recording variant of wrk

2.91K
242
2y 34d
Apache-2.0

Asynchronous non-blocking scenario driven load testing tool for testing HTTP servers.

Languages

Frege is a Haskell for the JVM. It brings purely functional programing to the Java platform.

3.4K
139
1y 4m
n/a

GoJava - Java bindings for Go packages

180
12
3y 9m
Apache-2.0

JPHP - an implementation of PHP on Java VM

1.63K
163
1y 112d
Apache-2.0

Rembulan, an implementation of Lua 5.3 for the Java Virtual Machine

139
24
5y 3d
Apache-2.0

Object-oriented, strong and static programming language with an emphasis on immutability, created by Red Hat.

Dialect of Lisp created by Rich Hickey. Dynamically typed with emphasis on functional programming.

A JVM-based Erlang VM.

Eta

Pure, lazy, strongly typed functional programming language on the JVM.

A simple dynamic language that makes extensive usage of invokedynamic.

Optionally typed and dynamic language, with static-typing and static compilation capabilities.

General-purpose, concurrent, strongly typed, class-based object-oriented language.

Implementation of the Ruby language on the JVM.

Python for the Java Platform.

Extension of the Scheme language, which is in the Lisp family of programming languages.

Statically typed programming language for the JVM, Android and the browser.

Java-centric implementation of lua vm built to leverage standard Java features.

Lightweight high-performance JavaScript runtime in Java with a native JVM.

Supports OCaml language v4. Generates plain Java bytecode and have seamless integration with Java.

JVM-based interpreter for the R language for the statistical analysis

Strong and static programming language that combine object-oriented and functional programming ideas.

Flexible and expressive dialect of Java, which compiles into Java 5 source code.

Machine Learning

Statistical Machine Intelligence & Learning Engine

5.17K
1.02K
8m
n/a

Open-Source, Distributed, Deep Learning Library for the JVM.

H2O

Fast statistical, machine learning & math runtime.

Memory and concurrency

Reactive Programming for Android

7.31K
664
3y 8m
Apache-2.0

High Performance data structures and utility methods for Java

1.9K
285
8m
Apache-2.0

Bloofi: A java implementation of multidimensional Bloom filters

66
7
5y 7m
LGPL-3.0

A high performance caching library for Java

9.37K
965
8m
Apache-2.0

Chronicle Bytes has a similar purpose to Java NIO's ByteBuffer with many extensions

236
60
8m
n/a

Micro second messaging that stores everything to disk

2.25K
408
8m
Apache-2.0

Replicate your Key Value Store across your network, with consistency, persistance and performance.

2.13K
402
8m
Apache-2.0

Clojure's data structures modified for use outside of Clojure

218
31
8y 5d
n/a

binary serialization format

592
46
8m
n/a

High performance Java implementation of a Cuckoo filter - Apache Licensed

122
23
4y 5m
Apache-2.0

An advanced, but easy to use, platform for writing functional applications in Java 8.

1.18K
127
1y 9m
Apache-2.0

Eclipse Collections is a collections framework for Java with optimized data structures and a rich, functional and fluent API.

1.64K
391
8m
n/a

External-Memory Sorting in Java

197
86
1y 5d
n/a

Fault tolerance and resilience patterns for the JVM

3.35K
257
1y 26d
Apache-2.0
136
13
1y 7m
n/a

A Java library for quickly and efficiently parsing and writing UUIDs

112
8
8m
MIT

Geohash utitlies in java

336
76
1y 14d
Apache-2.0

GS Collections has been migrated to the Eclipse Foundation, re-branded as Eclipse Collections. https://www.eclipse.org/collections/

1.79K
282
5y 8m
Apache-2.0

Hollow is a java library and toolset for disseminating in-memory datasets from a single producer to many consumers for high performance read-only access.

961
159
8m
Apache-2.0

A fork of Cliff Click's High Scale Library. Improved with bug fixes and a real build system.

375
56
7y 5m
n/a

High Performance Primitive Collections for Java

750
117
8m
Apache-2.0
60
12
6y 5m
Apache-2.0

Java port of a concurrent trie hash map implementation from the Scala collections library

142
22
2y 68d
n/a

Java library for the HyperLogLog algorithm

274
63
7y 92d
Apache-2.0

A simple integer compression library in Java

424
51
2y 115d
Apache-2.0

Implementation of various string similarity and distance algorithms: Levenshtein, Jaro-winkler, n-Gram, Q-Gram, Jaccard index, Longest Common Subsequence edit distance, cosine similarity ...

2.25K
363
1y 5m
n/a

jOOλ - The Missing Parts in Java 8 jOOλ improves the JDK libraries in areas where the Expert Group's focus was elsewhere. It adds tuple support, function support, and a lot of additional functionality around sequential Streams. The JDK 8's main efforts (default methods, lambdas, and the Stream API) were focused around maintaining backwards compatibility and implementing a functional API for parallelism.

1.78K
150
1y 14d
Apache-2.0

Java Collections till the last breadcrumb of memory and performance

907
128
5y 119d
n/a

Port of LevelDB to Java

1.27K
334
1y 9m
Apache-2.0

A very memory-efficient trie (radix tree) implementation

44
6
9y 4m
n/a

LMDB for Java

196
22
4y 4m
Apache-2.0

Lightning Memory Database (LMDB) for Java: a low latency, transactional, sorted, embedded, key-value store

538
82
1y 3d
Apache-2.0

Library for creating In-memory circular buffers that use direct ByteBuffers to minimize GC overhead

130
14
1y 14d
n/a

LWJGL is a Java library that enables cross-platform access to popular native APIs useful in the development of graphics (OpenGL, Vulkan), audio (OpenAL), parallel computing (OpenCL, CUDA) and XR (OpenVR, LibOVR) applications.

3.07K
469
8m
BSD-3-Clause

Immutable key/value store with efficient space utilization and fast reads. They are ideal for the use-case of tables built by batch processes and shipped to multiple servers.

78
11
2y 4m
Apache-2.0

Java large off heap cache

575
100
12m
Apache-2.0

A modern I/O library for Android, Kotlin, and Java.

7.44K
1.05K
8m
Apache-2.0

The Java API for Onyx

5
4
4y 4m
EPL-1.0

A java.util.HashMap compatible map that won't stall puts or gets when resizing

143
19
7y 4m
Apache-2.0

A Persistent Java Collections Library

659
58
10m
MIT

Immutable in-memory R-tree and R*-tree implementations in Java with reactive api

857
179
1y 14d
Apache-2.0

RTree2D is a 2D immutable R-tree with STR (Sort-Tile-Recursive) packing for ultra-fast nearest and intersection queries

92
8
8m
Apache-2.0

A better compressed bitset in Java

2.1K
379
8m
Apache-2.0

Rolling hash functions in Java

66
13
5y 5m
n/a

RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.

44.28K
7.37K
8m
Apache-2.0

A gulp of low latency Java

251
28
1y 10m
n/a

Simple Binary Encoding (SBE) - High Performance Message Codec

2.35K
398
8m
Apache-2.0

Parallel boolean circuit evaluation

14
0
3y 0d
Apache-2.0

A fast object pool for the JVM

265
28
1y 4m
Apache-2.0

Stream summarizer and cardinality estimator.

2.19K
565
2y 62d
n/a

Fast integer compression in C using the StreamVByte codec

195
16
1y 9m
Apache-2.0

A Java implementation of Transducers

113
12
7y 15d
Apache-2.0

a fast, scalable, multi-language and extensible build system

15.28K
2.66K
1y 54d
Apache-2.0

gRPC and protocol buffers for Android, Kotlin, and Java.

3.42K
460
8m
Apache-2.0

Zero-allocation hashing for Java

556
98
11m
n/a

A high-performance cross-system data layer for columnar in-memory analytics.

Insanely fast data interchange format and capability-based RPC system.

Library of lightweight, self-contained mathematics and statistics components.

Efficient cross platform serialization library for C++, C#, Go, Java, JavaScript, PHP, and Python.

Concurrent data structures currently missing from the JDK.

Claims to be the fastest JSON parser ever (copy of DSL-JSON).

Collections backed by off-heap or on-disk storage.

mug

A small, zero-dep functional util library originating from Google.

Memory buffer pool implementation similar to jemalloc.

A layout-optimized Java data structure package.

Columnar storage format that uses the record shredding and assembly algorithm described in the Dremel paper.

Google's data interchange format.

Lightweight threads and actors for the JVM.

Standard for asynchronous stream processing with non-blocking back pressure.

Reactive data applications on the JVM for Java, Groovy, Clojure and other.

A Java software library of stochastic streaming algorithms.

High-performance implementation of the Future abstraction.

Functional Library for Java 8+.

Metaprogramming

A collection of source code generators for Java.

9.11K
1.06K
8m
Apache-2.0

Testing tools for javac and annotation processors

557
110
8m
Apache-2.0

Java 8 annotation processor and framework for deriving algebraic data types constructors, pattern-matching, folds, optics and typeclasses.

511
43
2y 10d
n/a

Catch common Java mistakes as compile-time errors

5.49K
605
8m
Apache-2.0

The Eta Programming Language, a dialect of Haskell on the JVM

2.46K
145
2y 104d
n/a

Write parsers for arbitrary text inputs, entirely in Java, with no preprocessing phase

63
9
5y 6m
Apache-2.0

Java 1-15 Parser and Abstract Syntax Tree for Java, including preview features to Java 13

3.57K
823
8m
n/a

A Java API for generating .java source files.

8.71K
1.12K
10m
Apache-2.0

Build parsers in Java

288
47
2y 9m
Apache-2.0

Elegant parsing in Java and Scala - lightweight, easy-to-use, powerful.

1.18K
151
8m
Apache-2.0

Obsolete repository. Moved to oracle/graal.

618
62
2y 10m
n/a

Compiler of Java bytecode to JavaScript

1.67K
189
8m
n/a

GraalVM: Run Programs Faster Anywhere

14.61K
1.11K
8m
n/a

Parser generator for reading, processing, executing, or translating structured text or binary files.

Dynamic data management framework and SQL parser plugin.

Compiler plug-ins that find bugs or verify their absence.

New experimental just-in-time compiler for Java that is integrated with the HotSpot virtual machine.

Generate simple, safe and consistent value objects.

Parser generator for use with Java.

A transpiler from Java to TypeScript/JavaScript.

MPS

Design and build extensible DSLs and editors.

Reduce the amount of boilerplate code that is commonly written for Java classes.

Framework for development of programming languages and DSLs.

Native

A JNI code generator based on the JNI generator used by the eclipse SWT project

132
57
10m
Apache-2.0

Compile Java byte-code to native CPU's.

351
35
8m
n/a

Java Bindings for V8

1.91K
287
1y 4m
n/a

The missing bridge between Java and native C++

3.4K
479
8m
n/a

Java Abstracted Foreign Function Layer

840
120
8m
n/a

Jssembly is a library that allows you to execute native assembly from Java.

116
12
4y 6m
MIT

Low-overhead, non-blocking I/O, external Process implementation for Java

515
71
1y 5m
Apache-2.0

Enriching the connections between the JVM and APIs used by C programmers.

Network

Efficient reliable UDP unicast, UDP multicast, and IPC message transport

5.39K
640
8m
Apache-2.0

Your go-to microservice framework for any situation, from the creator of Netty et al. You can build any type of microservice leveraging your favorite technologies, including gRPC, Thrift, Kotlin, Retrofit, Reactive Streams, Spring Boot and Dropwizard.

2.97K
579
8m
Apache-2.0

A High Performance Network ( TCP/IP ) Library

159
60
8m
Apache-2.0

Simulating shitty network connections so you can build better systems.

6.86K
307
1y 7m
Apache-2.0

GoReplay is an open-source tool for capturing and replaying live HTTP traffic into a test environment in order to continuously test your system with real data. It can be used to increase confidence in code deployments, configuration changes and infrastructure changes.

13.89K
1.38K
8m
n/a

jRT measures the response time of a java application to socket-based requests

44
11
6y 4m
n/a

Java API over Accelio

71
27
5y 47d
n/a

"I am fluent in over 6 million forms of communication!"

40
37
1y 10d
Apache-2.0

Chaos engineering tool for simulating real-world distributed system failures

753
32
2y 5m
MIT

Square’s meticulous HTTP client for the JVM, Android, and GraalVM.

39.46K
8.41K
8m
Apache-2.0

Unconventional I/O library for Java

462
73
11m
Apache-2.0

Proteus Java Client

42
3
2y 5m
Apache-2.0

Reactive stubs for gRPC

593
83
1y 33d
BSD-3-Clause

Tools for keeping your cloud operating in top form. Chaos Monkey is a resiliency tool that helps applications tolerate random instance failures.

7.74K
1.11K
3y 58d
Apache-2.0

A Java library for capturing, crafting, and sending packets.

849
257
1y 11m
n/a

A Linux packet crafting tool.

382
36
11m
GPL-2.0

TCP/IP packet demultiplexer. Download from:

1.22K
209
8m
GPL-3.0

Pcap editing and replay tools for *NIX and Windows - Users please download source from

736
207
1y 4m
n/a

A high performance, open source, general RPC framework that puts mobile and HTTP/2 first.

Async event-driven network library for high performance protocol servers & clients.

RSocket is a binary protocol for use on byte stream transports such as TCP, WebSockets, and Aeron.

Packet analyzer for network traffic capture.

Nix tools

BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more

11.18K
2.1K
8m
Apache-2.0

simple disk I/0 latency measuring tool

751
61
1y 93d
GPL-3.0

Performance monitoring and benchmarking suite

949
154
8m
GPL-3.0

Performance analysis tools based on Linux perf_events (aka perf) and ftrace

7.27K
1.26K
1y 9m
GPL-2.0

Logging of system and process activity for long-term analysis, highlighting overloaded system.

Visualization of profiled software, allowing the most frequent code-paths to be identified quickly and accurately.

Disassembles class files into code that reflects the java bytecode.

Launch a postmortem debugger to analyze the content of a core-dump from a crashed JVM.

Prints configuration information for a given process.

Prints stack traces of threads for a given Java process.

Monitors GC and compiler statistics in the JVM.

Reports the structure of the processor, number of cores, hyperthreads and cache size.

Control NUMA policy for processes or shared memory.

System-wide hardware performance monitoring with easy-to-use interface at low overhead.

Linux profiling with performance counters.

Capture system state and activity from a running Linux instance, then save, filter and analyze.

Performance monitoring tools for Linux.

Retrieve or set a processes’s CPU affinity.

Like top but also shows instructions per cycle (IPC).

Profilers

A Java agent that rewrites bytecode to instrument allocation sites

398
82
1y 1d
Apache-2.0

Java memory allocation profiler

199
37
4y 52d
n/a

Sampling CPU and HEAP profiler for Java featuring AsyncGetCallTrace + perf_events

3.71K
429
8m
Apache-2.0

BTrace - a safe, dynamic tracing tool for the Java platform

4.4K
815
8m
n/a

Turn -XX:+TraceBytecodes output into a FlameGraph compatible stack format

25
2
1y 81d
MIT

Fork of tagtraum industries' GCViewer. Tagtraum stopped development in 2008, I aim to improve support for Sun's / Oracle's java 1.6+ garbage collector logs (including G1 collector)

3.56K
848
9m
n/a

Performance visualisation tools

262
17
2y 8m
Apache-2.0

Tools for tracking down memory / JVM problems & generating predictable-as-possible VM behaviour

40
6
5y 11m
GPL-2.0

Utilities for HDR Histogram logs manipulation

26
4
3y 24d
n/a

production heap profiling for the JVM. compatible with google-perftools.

385
23
5y 6m
n/a

A sampling JVM profiler without the safepoint sample bias

1.14K
134
2y 6m
n/a

Java Agent for Memory Measurements

568
104
11m
Apache-2.0

Memory consumption estimator for Java

124
24
3y 7m
n/a

Get Method Sampling from Java Flight Recorder Dump and convert to FlameGraph compatible format.

229
56
2y 19d
Apache-2.0

Tool for creating reports from Java Flight Recorder dumps

42
8
3y 6m
Apache-2.0

Log analyser / visualiser for Java HotSpot JIT compiler. Inspect inlining decisions, hot methods, bytecode, and assembly. View results in the JavaFX user interface.

2.32K
314
9m
n/a

JITWatch plugin for IntelliJ IDEA

158
13
5y 84d
Apache-2.0

GUI for comparing JMH results

69
4
5y 39d
Apache-2.0

Java monitoring for the command-line, profiler included

1.05K
224
5y 8d
GPL-2.0

JVM Profiler Sending Metrics to Kafka, Console Output or Custom Reporter

1.46K
288
1y 0d
n/a

A memory leak detection library for Android.

25.8K
3.73K
8m
Apache-2.0

An application metrics facade for the most popular monitoring tools. Think SLF4J, but for metrics.

2.77K
642
8m
Apache-2.0

A java agent to generate method mappings to use with the linux perf tool

1.33K
233
3y 6d
GPL-2.0

PerfJ is a wrapper of linux perf for java programs.

354
55
6y 24d
GPL-2.0

OOM diagnostics for Java.

20
5
9y 14d
n/a

Sends stacktrace-level performance data from a JVM process to Riemann.

288
19
6y 10m
EPL-1.0

Simple JVM Profiler Using StatsD and Other Metrics Backends

328
91
2y 4m
MIT

Small set of tools for JVM troublshooting, monitoring and profiling.

2.85K
458
10m
Apache-2.0

Best-of-breed OpenTracing utilities, instrumentations and extensions

159
43
8m
MIT

Zipkin is a distributed tracing system

14.05K
2.67K
9m
Apache-2.0

tracing, monitoring and testing tool for Java

Record your entire java program. Replay on any machine.

Machine learning guided Garbage collection log analysis tool. Auto-detect problems in the JVM GC logs and recommend solutions to it.

A Histogram that supports recording and analyzing sampled data value counts.

A Metrics Reservoir implementation backed by HdrHistogram.

Tool for collecting diagnostic and profiling data about a running Java application with almost no performance overhead.

Experimental harness and tests to aid the research in the correctness of concurrency support in the JVM, class libraries, and hardware.

jHiccup is an open source tool designed to measure the pauses and stalls associated with an application’s underlying Java runtime platform.

jmh

Micro benchmarks written in Java and other languages targetting the JVM.

JOL

Analyze actual object layout schemes, footprint, and references in JVMs.

Helps resolve performance bottlenecks, pin down memory leaks and understand threading issues.

Provide a native API to inspect the state and to control the execution of applications running in the JVM.

MAT

Java heap analyzer that help find memory leaks and reduce memory consumption.

Measure the behavior of critical components in production environment.

osquery is an instrumentation framework that expose the operating system as a high-performance relational database.

Low-Level Hardware Monitoring and Management for Java.

A vendor-neutral open standard for distributed tracing.

Tells you when and why code breaks in production.

Fully featured, easy to use, low overhead profiler.

Runtimes

Dead-Simple Packaging and Deployment for JVM Apps

1.14K
91
4y 9m
EPL-1.0

Fast JVM launching without the hassle of persistent JVMs.

1.5K
75
3y 11m
EPL-1.0

Java unlimited redefinition of classes at runtime.

1.6K
371
8m
GPL-2.0

Terminate the JVM when resources are exhausted

132
35
1y 5m
Apache-2.0

The shell for the Java Platform.

Nailgun is a client, protocol, and server for running Java programs from the command line without incurring the JVM startup overhead.

Virtual Machines

[INACTIVE] Avian is a lightweight virtual machine and class library designed to provide a useful subset of Java's features, suitable for building self-contained applications.

1.19K
165
1y 0d
n/a

Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo.

2.57K
545
8m
n/a

A Java to iOS Objective-C translation tool and runtime.

5.75K
852
8m
Apache-2.0

A toy JVM written in Go

3.21K
436
1y 10m
MIT

Write once run anywhere native mobile apps using with Java 8 or Kotlin. Supports iOS (iPhone/iPad), Android, Windows (UWP) & others

984
265
8m
GPL-2.0

Ahead of time compiler for JVM bytecode targetting iOS, Mac OSX and Linux

627
106
8m
n/a

Android runtime (ART) is the managed runtime used by applications and some system services on Android.

Modification of Java HotSwap VM with unlimited support for reloading classes at runtime.

HotSpot virtual machine maintained and distributed by Oracle Corporation.

The only JVM that eliminates Java garbage collection pauses for large heap sizes.

The only certified multi-platform build of OpenJDK: Free, 100% open source Java.

Documentation

Examples and hands-on labs for Linux tracing tools workshops

910
239
1y 4m
MIT

Class materials for a distributed systems lecture series

7.51K
584
10m
n/a

Linux bcc/BPF using tcplife by Brendan Gregg

mini-post series where every post goes deep for only a single topic by Aleksey Shipilёv.

Threads impact the performance of each other while modifying independent variables sharing the same cache line. Martin Thompson.

Starting point for discussions of and information concerning the Java Memory Model.

Unofficial guide to implementing the new Java Memory Model (JMM) specified by JSR-133.

HotSpot Virtual Machine Garbage Collection Tuning Guide.

Where is my safepoint? Nitsan Wakart.

Design decisions, experience and constraints explained in high performance messaging systems.

Digest of the top 10 performance related mistakes Martin Thompson has seen in production.

The Utilization Saturation and Errors (USE) Method is a methodology for analyzing the performance of any system. Brendan Gregg.

For expert programmers familiar with Java concurrency, but unfamiliar with the memory order modes available in JDK 9 provided by VarHandles.

Measure instructions per cycle (IPC) for CPU utilization. Brendan Gregg.

Communities

Technical discussion about the development of the HotSpot bytecode compilers.

Technical discussion about the development of the HotSpot garbage collectors.

Discussing how to code sympathetically to and measure the underlying stack/platform so good performance can be extracted.

For expert Java developers who want to push their systems to the next level

Venue for discussing the latest research and developments in the area of managed language execution.

Media

The GC edition. Shenandoah, ZGC, Zing, Fibers, Falcon etc.

Aleksey Shipilëv slightly-deeper-than-usual Shenandoah talk from Virtual Machine Meetup 2017.

People

Developing Oracle/Open JDK/Hotspot and other Java-related technologies.

Lead Language Designer of Kotlin @ JetBrains.

Java Language Architect at Oracle.

Facebook, Netflix, Apple engineering.

Cloud performance, kernel engineer, speaker, author.

Working with OpenJDK stuff @ Oracle.

Creator of the HotSpot Server Compiler.

Senior research scientist in the Scalable Synchronization Research Group within Oracle.

RxJava committer that blogs about advanced RxJava.

Author of the Java memory model.

Author of 250+ Java Specialists' Newsletters.

Square, Google, open source hacker.

Founder & CTO of Lightbend.

Blogger. Author of JOOQ.

Java language team alumnus.

Chief Architect, Java Platform Group, Oracle.

Pasty faced performance gangster.

Working in high performance and distributed computing for nearly 20 years.

Where is my safepoint? Nitsan Wakart.

Forever undisputed SLOC Scala compiler dev.

Hacking on the HotSpot JVM at Oracle.

Innovative developer of high performance Java systems for competitive advantage.

Performance Analyst, developer, blogger.

Parallel Universe. Leading Fibers and Continuations for the JVM.

Java Champion. Occasional blogger and speaker. Best known for Joda projects and JSR-310.

Ex-CTO, Ex-NASA researcher, network geek, messaging middleware designer.

Project Reactor Lead @Pivotal.

Doctor Deprecator. Java/JDK/OpenJDK developer

hacking HotSpot JVM @ Oracle.

Deputy CTO at Typesafe Inc.