-
- Functional core, imperative shell
- Domain logic is pure
- Push side-effects to the edge of systems
-
- Your framework is not an architecture
- Create well defined boundaries
- Everything is a plugin to your architecture
-
Making Impossible States Impossible
- Instead of having cases where things shouldn't be possible, model your problem so that it actually is impossible.
- Can do this with Kotlin's sealed classes and Swift's enums
-
Rethinking the Developer Career Path
- What does it mean to be a senior developer?
-
- Easy does not mean simple. Easy is relative, simple is conceptually not complex.
- You can easily make a messy codebase. Strive for simplicity instead.
-
- Values are different than objects
- Programming benefits of working with values
-
- Solving the optionality problem without ADTs
- Plans for the next version of Clojure Spec
-
Android: A Developer's History
- Entertaining and interesting talk about Android over the years
-
Kotlin: A New Hope in a Java 6 Wasteland
- Intro to kotlin on Android before it was common
-
Reactive, Clean Architecture and Android Architecture Components
- Clean architecture with MVVM
-
Where the Reactive Rubber Meets the Road
- AndroidSchedulers.mainThread() calls post internally.
- Make your view -> presenter/viewmodel synchronous so there are no small windows of potential changes.
- Just post on the main thread from your model layer to your presentation layer
-
- First in depth talk about Jetpack Compose
- Reasons for the move to declarative UI
- Enemy of the State
- State is hard, try to minimize and avoid it
-
A Pragmatic Introduction to Category Theory
- Intro to category theory
-
- Intro to category theory and real world applications
-
Domain Modeling Made Functional
- Intro to modeling your domain in a type safe way
-
- Describe side effects as data, pushing them out to the edge of your system
-
- Intro to common functional programming patterns
-
Functioning as a Functionalist
- Introducing functional programming concepts to a team
- Functional core, Imperative shell
-
- Intro to handling different code paths in a functional way
-
- Intro to being more functional in Kotlin
-
Why Isn't Functional Programming the Norm?
- A perspective of the rise of OOP languages instead of Functional languages
-
Testing the Hard Stuff and Staying Sane
- John Hughes' experience with property based testing
-
- My talk about property based testing :)
-
Testing Stateful and Concurrent Systems Using test.check
- Property based testing in Clojure to test the system at a high level