# 👨💻 Jorge Castillo

You'll find all my tech posts here.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Diving into Mosaic for Jetpack Compose

DevFeed: [Diving into Mosaic for Jetpack Compose](<https://devfeed.tech/articles/diving-into-mosaic-for-jetpack-compose-27466.md>)

Original publisher: [Read original article](<https://jorgecastilloprz.github.io/diving-into-mosaic>)

Author: Jorge Castillo

Published: 2022-04-26T12:00:00Z

Content type: tutorial

Language: en

Sources: [👨💻 Jorge Castillo](<https://devfeed.tech/sources/jorge-castillo.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [client library](<https://devfeed.tech/topics/client-library.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [ui](<https://devfeed.tech/topics/ui.md>)

Tags: [client-library](<https://devfeed.tech/tags/client-library.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [compose](<https://devfeed.tech/tags/compose.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [library](<https://devfeed.tech/tags/library.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

This article explains how Mosaic, a console UI library, uses the Jetpack Compose compiler and runtime. It covers composables, state and recomposition, and the nodes and applier implementation used to build, measure, lay out, and render console UI.

### Source excerpt

Overview on how to create a client library for the Compose compiler and runtime.

## Composed modifiers in Jetpack Compose

DevFeed: [Composed modifiers in Jetpack Compose](<https://devfeed.tech/articles/composed-modifiers-in-jetpack-compose-27464.md>)

Original publisher: [Read original article](<https://jorgecastilloprz.github.io/composed-modifiers-in-jetpack-compose>)

Author: Jorge Castillo

Published: 2022-04-04T10:00:00Z

Content type: tutorial

Language: en

Sources: [👨💻 Jorge Castillo](<https://devfeed.tech/sources/jorge-castillo.md>)

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [ui](<https://devfeed.tech/topics/ui.md>), [context](<https://devfeed.tech/topics/context.md>), [factory function](<https://devfeed.tech/topics/factory-function.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [compose](<https://devfeed.tech/tags/compose.md>), [compose-ui](<https://devfeed.tech/tags/compose-ui.md>), [context](<https://devfeed.tech/tags/context.md>), [extension-function](<https://devfeed.tech/tags/extension-function.md>), [factory-function](<https://devfeed.tech/tags/factory-function.md>), [jetpack](<https://devfeed.tech/tags/jetpack.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [modifiers](<https://devfeed.tech/tags/modifiers.md>), [state](<https://devfeed.tech/tags/state.md>), [stateful](<https://devfeed.tech/tags/stateful.md>), [stateless](<https://devfeed.tech/tags/stateless.md>)

### AI overview

This tutorial explains the difference between standard and composed modifiers in Jetpack Compose. Standard modifiers use extension functions and are stateless, while composed modifiers support state and access to composition context by creating them within a Composition.

### Source excerpt

Learn about composed modifiers and compare those to standard ones.

## Custom Layouts, measuring policies, and BoxWithConstraints in Jetpack Compose

DevFeed: [Custom Layouts, measuring policies, and BoxWithConstraints in Jetpack Compose](<https://devfeed.tech/articles/custom-layouts-measuring-policies-and-boxwithconstraints-in-jetpack-compose-27469.md>)

Original publisher: [Read original article](<https://jorgecastilloprz.github.io/jetpack-compose-withconstraints>)

Author: Jorge Castillo

Published: 2022-04-03T14:00:00Z

Content type: tutorial

Language: en

Sources: [👨💻 Jorge Castillo](<https://devfeed.tech/sources/jorge-castillo.md>)

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Compose](<https://devfeed.tech/topics/compose.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [compose](<https://devfeed.tech/tags/compose.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>)

### AI overview

This post covers measuring children according to incoming constraints and deferring initial composition for children in Jetpack Compose. It has been moved to the Effective Android newsletter.

### Source excerpt

Measure children according to incoming constraints, and how to defer initial composition for children.

## A letter to my younger self

DevFeed: [A letter to my younger self](<https://devfeed.tech/articles/a-letter-to-my-younger-self-27462.md>)

Original publisher: [Read original article](<https://jorgecastilloprz.github.io/a-letter-to-my-younger-self>)

Author: Jorge Castillo

Published: 2021-03-06T10:00:00Z

Content type: opinion

Language: en

Sources: [👨💻 Jorge Castillo](<https://devfeed.tech/sources/jorge-castillo.md>)

Topics: [Learning](<https://devfeed.tech/topics/learning.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Data Science](<https://devfeed.tech/topics/data-science.md>)

Tags: [advice](<https://devfeed.tech/tags/advice.md>), [career](<https://devfeed.tech/tags/career.md>), [communication](<https://devfeed.tech/tags/communication.md>), [developer](<https://devfeed.tech/tags/developer.md>), [developers](<https://devfeed.tech/tags/developers.md>), [hobby](<https://devfeed.tech/tags/hobby.md>), [learning](<https://devfeed.tech/tags/learning.md>), [personal](<https://devfeed.tech/tags/personal.md>), [programming](<https://devfeed.tech/tags/programming.md>), [side-projects](<https://devfeed.tech/tags/side-projects.md>), [soft-skills](<https://devfeed.tech/tags/soft-skills.md>), [team](<https://devfeed.tech/tags/team.md>)

### AI overview

A personal reflection offering advice to developers early in their careers. It covers curiosity, humility, accepting feedback, choosing team battles carefully, reading technical books, pursuing enjoyable side projects, maintaining hobbies outside programming, managing competition and failure, finding mentors, and practicing empathy and communication.

### Source excerpt

Just some advice I would give to my younger self today.

## Sealed interfaces in Kotlin

DevFeed: [Sealed interfaces in Kotlin](<https://devfeed.tech/articles/sealed-interfaces-in-kotlin-27470.md>)

Original publisher: [Read original article](<https://jorgecastilloprz.github.io/sealed-interfaces-kotlin>)

Author: Jorge Castillo

Published: 2021-03-06T10:00:00Z

Content type: tutorial

Language: en

Sources: [👨💻 Jorge Castillo](<https://devfeed.tech/sources/jorge-castillo.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [interfaces](<https://devfeed.tech/topics/interfaces.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Library](<https://devfeed.tech/topics/library.md>), [enum](<https://devfeed.tech/topics/enum.md>)

Tags: [enum](<https://devfeed.tech/tags/enum.md>), [interface](<https://devfeed.tech/tags/interface.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-compiler](<https://devfeed.tech/tags/kotlin-compiler.md>), [sealed](<https://devfeed.tech/tags/sealed.md>), [sealed-class](<https://devfeed.tech/tags/sealed-class.md>)

### AI overview

An overview of experimental sealed interfaces planned for Kotlin 1.5. The article explains relaxed subclass-location restrictions, allowing implementations in different files within the same module, and discusses why sealed interfaces can cover cases that sealed classes cannot, including enums implementing interfaces and types belonging to multiple sealed hierarchies.

### Source excerpt

Short overview of the sealed interfaces coming up in Kotlin 1.5.

## Tracking side effects at compile time with suspend

DevFeed: [Tracking side effects at compile time with suspend](<https://devfeed.tech/articles/tracking-side-effects-at-compile-time-with-suspend-27471.md>)

Original publisher: [Read original article](<https://jorgecastilloprz.github.io/tracking-side-effects-with-suspend>)

Author: Jorge Castillo

Published: 2020-10-10T10:00:00Z

Content type: article

Language: en

Sources: [👨💻 Jorge Castillo](<https://devfeed.tech/sources/jorge-castillo.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Declarative programming](<https://devfeed.tech/topics/declarative-programming.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>)

Tags: [all-kotlin-posts-including-the-fp-ones](<https://devfeed.tech/tags/all-kotlin-posts-including-the-fp-ones.md>), [android](<https://devfeed.tech/tags/android.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [compose](<https://devfeed.tech/tags/compose.md>), [coroutine](<https://devfeed.tech/tags/coroutine.md>), [declarative](<https://devfeed.tech/tags/declarative.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [suspend](<https://devfeed.tech/tags/suspend.md>)

### AI overview

The article explains suspend as a Kotlin standard-library mechanism that makes effects visible to the compiler and restricts them to coroutine environments prepared to execute those effects. It relates this model to deferred execution in Kotlin Sequences and runtime interpretation and optimization in Jetpack Compose.

### Source excerpt

Thinking of suspend as a Kotlin stdlib mechanism for flagging and tracking effects at compile time.

## Kotlin Continuations

DevFeed: [Kotlin Continuations](<https://devfeed.tech/articles/kotlin-continuations-27465.md>)

Original publisher: [Read original article](<https://jorgecastilloprz.github.io/digging-into-kotlin-continuations>)

Author: Jorge Castillo

Published: 2020-09-03T11:00:00Z

Content type: tutorial

Language: en

Sources: [👨💻 Jorge Castillo](<https://devfeed.tech/sources/jorge-castillo.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>)

Tags: [asynchronous](<https://devfeed.tech/tags/asynchronous.md>), [callback](<https://devfeed.tech/tags/callback.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [continuation](<https://devfeed.tech/tags/continuation.md>), [coroutine](<https://devfeed.tech/tags/coroutine.md>), [exception](<https://devfeed.tech/tags/exception.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>), [suspend](<https://devfeed.tech/tags/suspend.md>)

### AI overview

This article explains Kotlin continuations as a form of control flow and describes how the Kotlin compiler transforms suspend functions into continuation-passing, callback-style code. It also covers continuation contracts, coroutine resumption, and when manually creating continuations may be useful.

### Source excerpt

Continuations represent the rest of a program. They are a form of control flow.