Kotlin
Posts filed under tag: Kotlin
Kotlin Value Objects Beat Primitives
Use value objects. Primitives leak implementation details, enable invalid states, and produce meaningless function signatures. A UserId is not an Int. A Money …The Repository That Doesn't Grow: Criteria over Finder Methods
The Repository That Doesn’t Grow: Criteria over Finder Methods SessionRepository in the Laptime Insights server is ~130 lines and exposes seven public …Building an ACC Dashboard with AI-Assisted Development
Building useful software is the best way to learn. Building useful software for a problem you actually have is even better. I race in Assetto Corsa …Self-Documenting APIs with OpenAPI and Swagger in Ktor
Side projects are a good place to do things properly. Not because the project demands it, but because you want the practice. My ACC dashboard project — …Remote-controlling a simulator with gRPC and Protobuf
Remote-controlling a simulator with gRPC and Protobuf I have an Assetto Corsa Competizione (ACC) simulator that replays recorded UDP traffic. It is a useful …Anatomy of a Search Endpoint: Filter, Sort, Paginate, HATEOAS
Anatomy of a Search Endpoint: Filter, Sort, Paginate, HATEOAS A walk through GET /api/1/sessions in the Laptime Insights server — from the Ktor route, down …Eliminate PR Noise with ktfmt
Few things are as frustrating during a code review as seeing a 50-line diff, only to realize that 45 of those lines are just re-ordered imports or adjusted …Creating and releasing an application
Creating and releasing an application I love sim racing, so I thought it would be an interesting exercise to create an application that makes use of Assetto …Sharing gradle configuration
Sharing gradle configuration between modules Source code for this project is available at https://github.com/prule/gradle-sample When setting up multimodule …Clean architecture - part 1
Clean architecture - part 1 After porting my template app over to Kotlin, I thought it was time to attempt rewriting from a layered architecture to a ports and …