Kirill Bubochkin

I am a mobile and web developer with over 10 years of experience. Currently, I’m specializing in mobile development (both native and cross-platform), but I was working as a frontend and backend developer as well, so I know the development process from each side.

I’m working as a Head of Mobile Development at Mews, so creating the architecture, code reviewing, mentoring, and integrating best practices is a part of my everyday job.

Currently, I’m mainly interested in Flutter. We have an application written in Flutter that is successfully running in production for more than a year.

If you need help with defining the right architecture for your mobile app (both from back-end and front-end sides) or looking for a mentor / code reviewer, feel free to contact me in LinkedIn or Twitter and let’s have a talk.

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 55: Consider Arrays with primitives for performance-critical processing

What is the difference between using collections and arrays of primitives?

Marcin Moskała
Marcin Moskała

Effective Kotlin Item 51: Prefer Sequence for big collections with more than one processing step

What the difference between list and sequence processing is, and when each should be preferred.

Effective Kotlin Item 50: Eliminate obsolete object references

How to help our garbage collector and avoid memory leaks.

Effective Kotlin Item 49: Consider using inline value classes

What value classes are, how to use and inline them.

Effective Kotlin Item 48: Use inline modifier for functions with parameters of functional types

How inline functions work and why they can be so important for the performance of our application.