all speakers

Brian Norman

Brian Norman

Backend developer at Datasite

Author of the popular kotlin-power-assert compiler plugin (https://github.com/bnorm/kotlin-power-assert) and blog post on writing compiler plugins (https://blog.bnorm.dev/writing-your-second-compiler-plugin-part-1), Brian has been writing Kotlin for 7 years. While most of his professional experience has been writing backend Kotlin applications, he has dabbled in areas all across the Kotlin ecosystem including frontend, mobile, and embedded, and has a particular passion for Kotlin compiler plugins.

Declarative Test Setup

A good test should be fast, reliable, and concise. Unfortunately end-to-end API tests can often suffer in all 3 areas. Large amounts of test setup required by end-to-end API tests can make them slow, flaky, and verbose. But what’s the fix? At Datasite, we built a Kotlin DSL!

Instead of writing repetitive, imperative code to perform test environment setup, we designed a DSL which declaratively defines the environment components needed for end-to-end tests. This allows us to optimize when and how the setup is performed, improves standardization of the environment, and simplifies the code required for test setup.

Come learn how Datasite built this custom Kotlin DSL. Learn how we made it extensible, idempotent, and performant and how it helped us standardize end-to-end test configuration across dozens of backend services.

Talk by: Brian Norman

Elevated Gardening with the Kotlin Ecosystem

At-home hydroponics is becoming more popular and accessible. Off-the-shelf solutions and detailed instructions on custom setups are now prevalent online. As an engineer, hydroponics also provides an interesting platform for technological experimentation. With tasty results!

Using the extensive Kotlin ecosystem, I was able to build a system which monitors and maintains my hydroponic garden. Come see how Kotlin helped build all of the different pieces: everything from embedded programming on a Raspberry PI, Jetpack Compose on both Android and web, async Spring Boot using coroutines, and all the pieces in between.

Talk by: Brian Norman