A Katalogue of Code Katas recorded in a Code Kata

Photo by Thao Le Hoang on Unsplash

What is a Code Kata?

A hands-on programming exercise which helps hone your skills through practice.

Many of us learn best by doing. We build confidence and expertise through continual practice. We also learn by teaching. A Code Kata may help you build proficiency by implementing algorithms in various languages to solve specific problems. A Code Kata may also help you practice leveraging the APIs provided in a library, like Eclipse Collections or Java Streams. Sharing code katas you develop with a community of developers will help you learn even more.

The first set of…

Using Java and Kotlin with Eclipse Collections to solve the Donut Kata

Photo by Ali Tarhini on Unsplash

The Donut Kata

To celebrate the 10 year anniversary of the Kotlin programming language, I thought I would share the solutions to the Donut Code Kata using both Java 16 and Kotlin 1.5.0 with Eclipse Collections 11.0.0.M2. The purpose of the Donut Kata is to help familiarize developers with lesser-known methods in the Eclipse Collections API. Eclipse Collections is a Java library, so it works well in both Java and Kotlin.

The Donut Kata Domain

The domain of the Donut Kata is a Donut Shop. You make donuts, take orders for donuts, and deliver donuts…

Learning a little Python using the Eclipse Collections Pet Kata

Eclipse Collections Pet Kata on GitHub (left) : Python implementation of Person class from Pet Kata

A time to learn Python

I’ve programmed in more than twenty programming languages over the past four decades. I’ve coded in Java for 20+ years, and am the creator of a Java collections framework called Eclipse Collections. I have never tried to learn Python before. That is, until now.

Why learn Python?

I am a Java Champion, and regularly teach and advocate for the Java programming language. My learning Python might seem a bit odd to some. In fact, some of my friends started pinging me on Twitter after I posted several tweets about me solving the Pet…

Everything I know about software development in a single page of quotes.

Goat Fell, Isle of Arran — Scotland — Photo taken by Donald Raab in 2004


At the end of 2003, I accepted an opportunity to go on an extended business trip with my family to England. We moved to London in January of 2004, and returned back to the states at the end of the same year. Before I left, I decided I wanted to distill everything I knew about software development down to a set of memorable quotes. I used to read a lot of books. Most of the books I read were technical, but some were about leadership and project management…

Out of hundreds of possibilities, these are some of my favorite methods available on the Eclipse Collections API.

My favorite methods in Eclipse Collections

The Eclipse Collections API

Eclipse Collections has a very feature rich API. If you ever wished a Java Collection could do something more “collection-like”, Eclipse Collections probably has a method that does it. The following blog has a mind-map of the methods available on the Eclipse Collections API.

Visualizing the Results

You can try and debug the results above in your mind, but I thought it would be more helpful if I just showed you the results inline using IntelliJ.

A poem about limiting yourself.

Reaching for the sky and staying in the same place with the same group — Armstrong Redwoods State Natural Reserve — Photo taken by Donald Raab


This is a poem I wrote in 1988 that was published in my high school’s art and literary magazine. I hope you enjoy the poem, and my selection of pictures to go with it.

The Clique

Watch out little fly,
Don’t get caught,
You’re in danger, run away quick!
Don’t you understand,
Spider’s web means spider,
Spider means death.
Oh well, if you must follow every other fly’s mistake,
Learn for yourself.
You’re about to join an exclusive group,
And once you’re in the web,
You kill off all other possibilities.
To put it simply,
You’re stuck.

-Donald Raab

Smalltalk helped me become the software engineer that I am today.

Working on the Deck of Cards Kata in a modern Smalltalk IDE (Pharo 8.0)

Say it, then Do it

I first learned IBM VisualAge Smalltalk in 1994. I took part in a five week Object-Oriented Immersion class with Smalltalk that IBM offered as part of its Object Technology University program. I fell in love with the Smalltalk language and IDE almost immediately, and spent countless hours in the evenings over the five weeks experimenting with VisualAge Smalltalk in the lab. I have never encountered a more immersive developer experience to this day. I stopped programming professionally in Smalltalk around March 2000.

Twenty plus years later, I am still…

A poem about poker and marriage

Playing cards I bought on a trip I took to Toronto


My grandmother taught me and my siblings how to play poker and other card games when we were growing up. We’d play lots of different kinds of card games with her and my mom. Her favorite poker game was “Follow the Queen”. I miss my grandmother. She lived into her 90’s, and I have many wonderful memories of her growing up. She lived long enough to see me get married and have two children of my own. I’ve been happily married now for over 25 years. My parents have been happily married for over…

Consistency, clarity, and convenience of API driven by symmetry

A window to San Francisco Bay

A dedication to API Symmetry

We have driven the evolution of the API in Eclipse Collections by responding to and meeting the needs of real use cases encountered in applications in Financial Services and other industries served by developers working in the open source community. We use symmetry to guide the design and implementation of Eclipse Collections. Our collective experience has shown us that symmetry is a good guide to improving the design of our API.

Mutable Converter Methods

We have had primarily mutable converter methods in Eclipse Collections since 1.0 of the product.

A poem about politics written in 1989

FDR Memorial, Washington, D.C.


I wrote this poem in 1989 and it was published in my high school art and literary magazine. This is probably the only poem I have written about politics. The major events in 1989 would begin with the inauguration of George H. W. Bush in January as the 41st U.S. president, and end with the fall of the Berlin Wall, premier of The Simpsons on FOX and attempt to overthrow Manuel Noriega.

A Brush-Cut World

Someone’s head, caught in the mirror,
Twisting and turning.
Fierce comb putting all into place,
Strays hoarded and fixed.
But strays always fall out of…

Donald Raab

Java Champion. Creator of the Eclipse Collections OSS Java library (http://www.eclipse.org/collections/). Inspired by Smalltalk. Opinions are my own.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store