Speaker

Amanda Hinchman-Dominguez

Amanda Hinchman-Dominguez

Android Developer | Kotlin GDE | co-author of "Programming Android with Kotlin: Achieving Structured Concurrency with Coroutines" | creator of Coding Kinetics

Chicago, Illinois, United States

Actions

Amanda Hinchman-Dominguez is a Kotlin GDE, co-author of "Programming Android with Kotlin" and Android Engineer. She specializes in the Kotlin compiler, Android, and intersectional topics. As an active participant in the Kotlin community, Amanda organizes the Chicago KUG, writes tech blogs, and contributes to a variety of OSS projects. In her spare time, she practices hot yoga and plays kickball.

Topics

  • metaprogramming
  • Kotlin
  • Android Development
  • Android Software Development
  • javafx
  • tornadofx
  • OpenSource
  • community

Keep insisting!

There's a formal process for sending proposals for the Kotlin language, and it's called KEEP (Kotlin Evolution and Enhancement Process).

During this year we've been making good use of it from the Arrow maintainers team, since we've filed the KEEP-87, where we propose support for compile time validation and dependency resolution. But no fear! we'll not talk about FP here, just about the complete pipeline we went through to get it done. We've learned a lot during the process, and would love to share our experience.

In this talk, you'll learn:
- What's the KEEP and why it's important.
- Why and how to file a new proposal for the language.
- The importance of having initial feedback before tackling the issue. (We got it from people in the Kotlin compiler team).
- How the Kotlin repository is organized and where you should look at to implement your proposal.
- Which pieces of code we needed to modify and how to achieve our goal (error loggers, argument generators ...etc.)
- How to iterate over it once the initial draft is presented by getting in the JetBrains feedback loop.
- Helping to maintain and evolve the language as a community effort.

Memory Leaks & Performance Considerations: A Cookbook

Out in the wild, Android faces real-life challenges that affect performance and battery life. For example, not everyone has unlimited data in their mobile plans, or reliable connectivity. The reality is that Android apps must compete with one another for limited resources.

From the newly published O'Reilly book "Programming Android with Kotlin: Achieving Structured Concurrency with Coroutines", this talk examines a range of memory leaks in concurrency clashing lifecycles, network data format, and more.

Performance considerations allow you to examine concerns that may impact your application’s ability to scale. If you can use any of these strategies as “low-hanging fruit” in your code base, it’s well worth going for the biggest win with the smallest amount of effort.

A Hitchhiker's Guide to Compose Compiler: Composers, Compiler Plugins, and Snapshots

If you are an Android Developer, chances are you are pretty excited about Jetpack Compose! But how does it work? In this talk, we will take you along the journey of a Composable function, from being written, going through the unknown lands of the Kotlin and Compose compilers to being executed and displaying UI!

From Composables all the way down into the compiler plugins, we expose the metaprogramming responsible for all the "magic". Whether your interest is Jetpack Compose, compilers, or code transformations, this talk takes an otherwise complicated topic and makes it digestible for everybody by diving into specific features offered by Compose.

By examining Compose's snapshot system, you'll follow the compiler phases down to intercepting code transformations with IR. By recognizing the patterns that make it hard for Compose to generate efficient code, and this can help us to recognize patterns to use for performance.

A Hitchhiker's Guide to Compose Compiler: Composers, Compiler Plugins, and Snapshots

If you are an Android Developer, chances are you are pretty excited about Jetpack Compose! But how does it work? In this talk, we will take you along the journey of a Composable function, from being written, going through the unknown lands of the Kotlin and Compose compilers to being executed and displaying UI!

From Composables all the way down into the compiler plugins, we expose the metaprogramming responsible for all the "magic". Whether your interest is Jetpack Compose, compilers, or code transformations, this talk takes an otherwise complicated topic and makes it digestible for everybody by diving into specific features offered by Compose.

By examining Compose's snapshot system, you'll follow the compiler phases down to intercepting code transformations with IR. By recognizing the patterns that make it hard for Compose to generate efficient code, and this can help us to recognize patterns to use for performance.

A Brief History of Memory Leaks

Memory and threading in is some of the most difficult and complicated topics in Android. This talk introduces what memory leaks are, and why they’re so hard to find. Taken from excerpts of the newly published O'Reilly book "Programming Android with Kotlin: Achieving Structured Concurrency with Coroutines", this talk take a light-hearted approach at some of the colorful developments Android has gone through the years.

From “Why did AsyncTask get deprecated?” to resource leaks in background threads, we look at memory leaks in Android as we’ve uncovered them through the years. To understand quirks of memory leaks in Android, join us for some historical context, a little empathy, and a kinder view of open-source development.

Kotlin and TornadoFX: The Next Frontier in Modern (Meta)Programming

With growing complexity in our software systems, technology companies now dedicate greater effort to design product infrastructure to ensure modularity, low-cost solutions, and scalability. Object Oriented Programming (OOP)'s tendency of designing object-models for domain solutions in addition to its merits in handling large data and reducing complexity makes its usage a natural choice in the industry. Despite universal usage, Java's limitations in language techniques fail to capture all domain design decisions in a cohesive manner. This issue describes aspects of relational domains, in which scattering and tangling between mapped sources and targets forces large-scale projects to sacrifice domains that guarantees quality software.
Kotlin's open-source community is active, its uses are ever-expanding, and its future is bright. This session intends to analyze a general definition of crosscutting and how it affects growing software, how Aspect-Oriented Programming (AOP) attempts to tackle crosscutting, shortcomings in Java’s current approaches in reflexive programming, and subsequently discuss my experiences with TornadoFX in solving day-to-day business inefficiencies through my first attempt at metaprogramming. Exploration through examples will provide insight in Kotlin’s approaches to metaprogramming intended to expose Kotln's predisposition to AOP. By harnessing the power of Kotlin, we can make strides in creating a foundation for rational framework for metaprogramming.

droidcon NYC 2022 Sessionize Event

September 2022 New York City, New York, United States

droidcon Berlin 2022 Sessionize Event

July 2022 Berlin, Germany

droidcon San Francisco 2022 Sessionize Event

June 2022 San Francisco, California, United States

droidcon Lisbon 2022 Sessionize Event

April 2022 Lisbon, Portugal

KotlinConf 2018 Sessionize Event

October 2018 Amsterdam, The Netherlands

Amanda Hinchman-Dominguez

Android Developer | Kotlin GDE | co-author of "Programming Android with Kotlin: Achieving Structured Concurrency with Coroutines" | creator of Coding Kinetics

Chicago, Illinois, United States

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top