Open Source
I host my open-source projects on GitHub. Most publicly hosted projects result from scratching my own itch or projects with specific learning goals. This page lists the projects that I believe are worth mentioning 🙂
• Tumbleweed—Grok large Kotlin and Java classes
Role Creator
Languages Kotlin, JavaScript, HTML, CSS
Background Tumbleweed can help understand large Kotlin and Java classes by parsing the bytecode and creating a visualization. The tool aims to help developers understand the underlying domain by building a vocabulary from types and tokenized members. In addition to the vocabulary, it visualizes relationships between class members and the call graphs between functions.
Link https://github.com/redgreenio/tumbleweed
• Maestro—UI testing for mobile apps
Role Contributor
Language Kotlin
Background Maestro is an open-source UI testing tool from Mobile.dev. It is the easiest way to automate UI testing for your mobile apps. I contributed to the app in the following ways.
- Add support for setting location on iOS devices.
- Add support for taking screenshots.
- Migrate tests from JUnit 4 to JUnit 5.
- Refactor portions of the code and eliminate code smells such as long conditionals and primitive obsessions.
Link https://github.com/mobile-dev-inc/maestro
• Cardbox
Role Creator
Language Kotlin
Background jQAssistant is a fantastic tool that lets developers query and analyze the software structure of huge codebases. The amount of information one can query via the IDE is limited, but jQAssistant can go beyond these limitations. However, working with Android artifacts (APK/AAB/AAR) is not supported. Therefore, we capture the compiled .class
files and use them for analytics. Cardbox automates this process and creates JAR files for use with jQAssistant. Use cases include but are not limited to—planning technical debt, legacy code work, understanding software architecture, planning KMM migration, etc.,
Link https://github.com/redgreenio/cardbox
• ApprovalTests.Java—Assertions for legacy software
Role Contributor
Language Java
Background As I started working with larger clients, dealing with legacy code became inevitable. I was looking into tools and techniques that could make my life easier while working with these codebases. One day, I came across Emily Bache's tweet about approval testing and how it makes it so much easier to bring legacy codebases under test. Eventually, ApprovalTests became a part of my testing strategy when dealing with legacy code as well as building features.
I now mob program with Llewellyn Falco (creator) and Lars Eckart (maintainer) ever since the 10.3.0 release.
Link https://github.com/Approvals/ApprovalTests.Java
• ApprovalTests—IntelliJ Plugin
Role Creator
Language Kotlin
Background ApprovalTests have become a part of my testing strategy while designing new systems and working with legacy code. While using ApprovalTests without tooling, developers have to work with approved and received files manually. It is also helpful to have a visual indication to identify approval tests from other kinds of tests. This plugin solves both problems. However, this is only a start, and the end goal is to make working with ApprovalTests easier.
The plugin is still in development and has support for Kotlin. We will add Java support after the first public release.
Link https://github.com/Approvals/ApprovalTests.plugins.intellij
• Rune—CLI for conventional commits
Role Creator
Language JavaScript
Link https://github.com/redgreenio/rune-cli
• Fluid—A scaffolding tool like Yeoman
Role Creator
Language Kotlin
Link https://github.com/redgreenio/fluid
• Simple
Role Contributor
Language Kotlin
Link https://github.com/simpledotorg/simple-android
• Versioning TDD Kata
Role Creator
Language Kotlin, Java
Link https://github.com/ragunathjawahar/versioning-tdd-kata
• Keylines—Material grids for UI development
Role Creator
Language Java
Link https://github.com/ragunathjawahar/keylines
• Android Saripaar
Role Creator
Language Java
Link https://github.com/ragunathjawahar/android-saripaar
• One Way
Role Creator
Language Kotlin
Link https://github.com/ragunathjawahar/OneWay
• Liberate
Role Creator
Language Ruby
Link https://github.com/ragunathjawahar/liberate
• Adapter Kit
Role Creator
Language Java
Link https://github.com/ragunathjawahar/adapter-kit
• Bench Press
Role Creator
Language Kotlin