Jordan Hansen

I have been developing on and off since I was 10. I started developing full time since I graduated from the University of Utah. I started evaluating Kotlin as a viable language since version 0.6 and have been using it as my primary language since version 0.8. I was part of an influential team that brought Kotlin to my entire organization. I love playing table top games with my family.

Reviewed articles

Item 16: Properties should represent state, not behavior

What should be defined as a behavior, and what should rather be a function.

Item 12: An operator’s meaning should be consistent with its function name

When is it fine to override operators, and when it is not.

Marcin Moskała
Marcin Moskała

Item 11: Design for readability

Do we really want out applications concise, or do we rather want them readable?

Marcin Moskała
Marcin Moskała

Item 7: Prefer a nullable or Result result type when the lack of a result is possible

Why should we prefer to avoid throwing exceptions and using types to our advantage.

Marcin Moskała
Marcin Moskała

Item 5: Specify your expectations for arguments and state

How do we specify requirements and expectations in Kotlin.

Marcin Moskała
Marcin Moskała

Item 3: Eliminate platform types as soon as possible

Why platform types are so dangerous, and how should we deal with them.

Item 1: Limit mutability

Why it is so important to limit mutability, and how Kotlin supports it.

Effective Kotlin Item 34: Consider a primary constructor with named optional arguments

Why telescoping-constructor pattern and the classic builder pattern are considered outdated in Kotlin.

Effective Kotlin Item 33: Consider factory functions instead of secondary constructors

What factory functions are and why they are so important patterns for object creation.

Effective Kotlin Item 36: Prefer composition over inheritance

Years of OOP made us overuse inheritance. Instead, we should more often use a composition that is safer and more explicit. More often, but not always...