Senior Android Engineer @ZalandoTech, editor @ProAndroidDev, occasional conference speaker.
Spoiling the Dark plot with Kotlin
May 01, 2021
Intro As promised in my last post, it’s time to use our family tree DSL to spoil the plot of Netflix’s Dark series! 😈
To quickly recap, we have a small but functional (my puns are always intended) DSL for building a family tree in Kotlin:
The Dark family trees in code The family trees are of course the focus of the series as they are revealed to us piecemeal; episode by episode, season by season.
Building a Family Tree DSL with Jetpack Compose syntax
Mar 21, 2021
Originally published on ProAndroidDev
Why build a DSL? Ever since first getting into Kotlin, I’ve known it has a few things that makes building domain-specific languages (DSLs) easier. I’ve read the mind-expanding type-safe builders guide for building a DSL for HTML, but until recently I hadn’t found a good use case for building a DSL of my own.
My team at Zalando maintains server-driven UI libraries for Android & iOS that power completely dynamic screens such as home, brand homes, collections, and various landing pages in the Zalando fashion store apps.
Flexbox Layout Behavior in Jetpack Compose
Mar 16, 2021
Originally published on the Zalando Engineering Blog
Introduction The CSS Flexible Box Layout specification (AKA flexbox) is a useful abstraction for describing layouts in a platform agnostic way. For this reason, it is widely used on the web and even on mobile. Readers familiar with ConstraintLayout can think of flexbox as conceptually similar to the Flow virtual layout it supports. This type of layout is ideal for grids or other groups of views with varying sizes.
Top Albums of 2020
Dec 22, 2020
This year was full of unexpected surprises, disappointments, and more for everyone, but music was here to comfort us throughout. Here’s my list of favorite albums for the year:
Hum - Inlet Anyone who’s talked music with me long enough has heard me express my adoration for Hum. They were the first/one of the first bands I’ve seen live. Their particular brand of space rock/shoegaze/whatever-you-want-to-call-it has always been one of my favorites.
Jetpack Benchmark on Firebase Test Lab
Mar 06, 2020
As previously outlined in my talk at Mobius Conference in Saint Petersburg last year, our team at Zalando is building a server-driven UI platform we call AppCraft. AppCraft allows us to add or update screens in our app with only server changes instead of the normal app release constrained way of doing things.
On the client side, we are building every screen the same way: fetch layout & data from the server, parse it, and render it.
Top Albums of 2019
Dec 23, 2019
Time files and it turns out it’s been several years since I last shared my favorite albums of the year. Despite the lack of posts, I still keep a list every year and decided it’s time once again to highlight some of the albums I’ve enjoyed most:
Oh Sees - Face Stabber Any year that includes an Oh Sees release will find it in my top albums list, so here it is.
AppCraft: Faster Than a Speeding Release Train
Dec 22, 2019
It was a pleasure speaking at Mobius Conference in Saint Petersburg this past May. I never got around to finishing the transcript of the talk I intended to write, but you can find the slides on Speaker Deck and the video on YouTube: Introducing Biografy
Dec 24, 2017
What is Biografy? Biografy is a lifelogging app that automatically builds a timeline of each day. The Events view logs events from various apps including music, podcasts, videos, calls and chats. Each event includes rich detail such as the time, activity (stationary, walking, biking, etc.), and location/place. The Motion view lists car/transit trips, bike rides, runs, and walks. With the Map view, you can see where you were when each event occurred and gain insights like where you spend your time based on the clusters of pins.
React Native: Is It Worth It?
Nov 27, 2017
Intro When new technologies start gaining momentum in the Android community, the pragmatic (or lazy) among us eventually have to ask ourselves, “Is it worth it?” After the initial arrival and departure of the hype train, some of these become trusted tools we use in almost every app. Think RxJava and Dagger.
Things I've Learned Since Moving to Berlin
Sep 23, 2017
I’ve lived in Berlin for a bit more than six months now. Here’s a list of some of the things I’ve learned:
It is possible to survive a summer without air conditioning. It’s also possible to go all summer without a mosquito bite. I don’t miss having a car. Public transit is great here so I typically only need one to haul things like furniture. And I can rent one on demand pretty easily with apps like DriveNow.