Fast and ergonomic annotation processors for Kotlin

KSP (Kotlin Symbol Processor) is a new API from Google for writing Kotlin compiler plugins. Using KSP we can write annotation processors to reduce boilerplate, solve cross-cutting concerns, and move checks from runtime to compile-time.

While we already have annotation processors in Kotlin through kapt, the new KSP API provides…

Crunching knowledge

In part 1 we learned the need for a model. But how do we arrive at a model?

To tackle the complexity at the heart of software, we can’t just sit in a room by ourselves and write code. “Crunching knowledge” means talking to stakeholders and domain experts to distill…

The need for domain-driven design

We’ve come a long way since we wrote the entire logic for a feature inside a Fragment or Activity. But sometimes it’s hard to navigate the alternative approaches with their repositories, domain objects, DTOs, and use cases. What overarching purpose do they serve? …

When blameless post-mortems go wrong

I love the concept of blameless post-mortems, and the kind of meta-thinking that looks for fault in the system rather than the individual. That being said, I’ve sat through so-called “blameless” post-mortems in organizations that prided themselves on having the latest dev culture, and cringed, cringed, cringed. If no-one was…

What it is and why it matters.

You can call it “beautiful code” when the code also makes it look like the language was made for the problem.

Ward Cunningham

If you have a sound continuous integration practice, your pull requests will be automatically evaluated for test coverage and compliance with code conventions. But it’s your teammates…

David Rawson

Android

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