Author Image

Hi, I am Daniel

Daniel Bälz

Freelance Android Developer

I help my customers to create high-quality Android apps. I’ve been an enthusiastic Android developer since my first Android app in 2011. In my previous projects, I have worked on several large-scale apps that have been installed millions of times. Based on this experience, I pay special attention to the development of maintainable, modern and high-quality apps with a well-structured architecture and extensive tests.

As a passionate developer, I like to discuss technologies, agile methods and exchange ideas about software development. Therefore, I’m deeply involved in several developer communities, create content and co-organize the Mobile Development Karlsruhe meetup.

Content

Compose for Desktop
KKON 2021 September 2021

Declarative UIs are an aspiring topic on mobile platforms. For example “Jetpack Compose” for Android, SwitftUI for iOS or Flutter. However, this approach is also interesting for the desktop. In my talk, I’ll show how to build declarative UIs with “Compose for Desktop” from JetBrains.

Jetpack Compose
Mobile Development Karlsruhe August 2021

An introduction talk into declarative UIs and Jetpack Compose with a longer live coding part, subsequent Q&A session and discussion.

Android Dev Summit Recap
Mobile Development Karlsruhe December 2019

To kick-start the discussion about the Android Dev Summit, I’ve done a short recap, which included the most important topics.

Google I/O 2019 Recap
Mobile Development Karlsruhe May 2019

I’ve done a short summary talk as starter for a discussion about the Google I/O 2019.

Don't panic – Spring Boot 2 mit Kotlin
inovex Meetup Hamburg August 2019

In this talk, a co-worker and I explained the possibilities of Spring Boot 2 with Kotlin It consisted of an elaborate introduction into the Kotlin programming language.

Migrating to Gradle Kotlin DSL in 5 Simple Steps
inovex Blog June 2019

This blog post shows how to migrate Gradle scripts from Groovy to the Gradle Kotlin DSL in 5 simple steps.

Techtiefen: #16 Kotlin
Techtiefen Podcast May 2019

Together with Nico, the host of the podcast, I discussed the language features, usage scenarios and future of the Kotlin programming language.

Gradle Build Scripts with Kotlin
AndroidHeads Vienna April 2019

English speaking talk about the Gradle Kotlin DSL to create build scripts with Kotlin instead of Groovy.

Gradle Kotlin DSL for Android Devs
Mobile Development Karlsruhe April 2019

An introduction to the Gradle Kotlin DSL to write build scripts with Kotlin instead of Groovy. This talk was focused on build scripts typically used in Android apps.

Application.kt – Spring Boot 2 mit Kotlin
inovex Meetup Munich February 2019

Another talk together with a co-worker about the Spring Boot framework and Kotlin. With the help of a demo application we showed how great it’s to write Spring Boot services with Kotlin instead of Java.

Kotlin für Android-Entwickler
Karlsruher Entwicklertag 2018 June 2018

A “Kotlin for Android Developers” talk with an introduction into the programming language and how to use it in Android. The talk consisted of a live demo and a longer Q&A part.

Spring Boot 2 mit Kotlin
inovex Meetup Karlsruhe June 2018

Introduction into Spring Boot 2 and Kotlin together with a co-worker. I’ve provided the Kotlin knowledge and explained language concepts. Also, I’ve explained how to use them to write concise and well-structured code.

Android-Entwicklung mit Kotlin
What's happening? Podcast July 2018

In the podcast, we discussed why the Kotlin programming language is such a great fit for Android app development.

Kurzeinführung in Kotlin
Mobile Development Karlsruhe March 2019

Another short introduction talk into the Kotlin programming language with an example Android app.

Kotlin: Fun with Functions
Kotlin Karlsruhe User Group February 2018

A talk about functions in Kotlin mainly consisting of a live demo with examples for higher order functions, extension functions and function literals with receiver to build a DSL with Kotlin.

Kotlin für Android-Entwickler
GDG DevFest Karlsruhe 2017 Dezember 2017

Kotlin for Android developers talk in German that showed the potential of the programming language for Android. After a short introduction into the basic language features, the talk consisted of an interactive live demo and a longer Q&A part.

Moderne Android-App – Aber wie?
GDG DevFest Karlsruhe 2016 November 2016

The talk was all about the architecture and structure of a modern Android app. It showcased examples from the waipu.tv Android app and the learnings we had while developing it.

Adaptive Code Execution with Dart
inovex Blog February 2016

In my masters thesis I’ve researched the possibilities of adaptive execution of code on client and server. As part of my thesis, I’ve developed two libraries in Dart and released them as open source software. This blog post describes the libraries and their usage scenarios.

Quo vadis Dart?
GDG DevFest Karlsruhe 2015 November 2015

My talk explained the basic concepts of Dart, the pros and cons, usage scenarios and the future of the programming language.

Google Play Game Services
GDG DevFest Karlsruhe 2014 October 2014

In this introduction talk, I’ve explained the options for developers when using the Google Play Game Services in their Android apps.

Google Play Game Services
GridKA School 2014 September 2014

This workshop introduced into the Android app development in combination with Google App Engine. It consisted of an introduction into Android app development part and afterwards a practical task in which the participants developed an application.

Alles strömt: Chromecast und Google Cast
Javamagazin 4.2014

An update article about Chromecast and Google Cast SDK. It explains the used technology and shows application scenarios for the platform.

Chromecast und Google Cast
Mobile Technology 2.2014

When the Chromecast hardware was announced by Google in mid-2013, it received a lot of attention. This article gives an introduction into Chromecast, the Google Cast environment and the newly announced Cast SDK.

Miracast: Mehrere Bildschirme mit Jelly Bean
Javamagazin 7.2013

This article is about the streaming technology Miracast. It shows the usage scenarios, availability and potential of Miracast at the interaction with Android.

Projects

Streaming-Platform (NDA)
Senior Android Developer Mar 2019 - May 2021

I had the interesting experience to work on a large scale project for one of the leading VoD platforms in Germany. I’ve joined the existing App team with the task to get the code base of the Android mobile app ready for Fire TV and Android TV. This was achieved due to refactoring, improvement in the build system and the development of new UIs for the TV clients. Afterwards I developed several key features like Amazon In-App Purchase, Login with Amazon and many more.

Another important aspect of my work was the introduction of development practices, knowledge build up and knowledge transfer between the team members. Building on that, I was a major force in the systematic quality improvement of the app. Also, I played a key role in driving the app architecture forward and convinced the team to switch from MVC to MVVM. During the architecture change, I was able to support the team significantly on the knowledge and implementation level. As a team, we improved the code base to create a maintainable, automatically tested and stable product.

Manufacturer of IoT devices (NDA)
Senior Android Developer Nov 2018 - Feb 2019

In this project, I took over the code of an existing Android app for an IoT device. The device was based on the Android Open Source Project and the app was responsible for the update of the Android operating system, all installed apps and a connected Linux operating system.

Initially, I was brought into the project to finish some work on the “nearly done” app before the imminent product launch. After a first review, it became obvious that the existing code base didn’t meet the requirements and needed some major overhaul to be ready for launch. Therefore, I created a concept to fully re-develop the app. This concept was done in close cooperation with the product manager and included functional and non-functional features. Subsequently, I’ve refactored and implemented the required work based on the concept. At the end, the app provided the high reliability, stability and maintainability that is necessary for such a core component of an IoT device. To achieve this, the app builds up on a well-structured architecture, high code quality and an extensive test suit.

waipu.tv (Exaring AG)
Android Developer Jan 2016 - Sep 2018

waipu.tv is a German streaming service for linear TV and VoD. The service is usable on different platforms like the web, iOS and Android. I was part of the initial Android team that did the (design) concept, basic architecture and developed the Android app. For this greenfield project, the team implemented a wide range of features like EPG, live streams, recordings or interaction with Chromecast/Fire TV/Samsung Smart TVs. Also, the agile team was heavily involved in working out the necessary features and creating a consistent design.

The team paid special attention on the quality and stability of the app. Therefore, we used a flexible, neatly structured architecture with MVP and kept the code quality high. Open discussions, code reviews and a shared commitment for the quality of the product helped us to achieve this. In addition, we relied heavily on automated testing and a stable CI/CD pipeline with GitLab CI. As part of an excellently functioning agile team, I was very happy to have contributed a piece to the success of the product.

waipu.tv (Exaring AG)
Scrum Master Oct 2018 - Nov 2018

For a transitional period, I took over the Scrum Master role. I’ve worked with a backend team in all agile matters like the Scrum events. Furthermore, I’ve supported the Agile Coach in the project in the attempt to transform the company into an agile organization. This experience gave me another perspective on agility and the opportunities and challenges it brings.

Cellular Provider (NDA)
Android Developer Nov 2015 - Nov 2016

The customer entrusted me with the development of the existing self-service Android app. Our first project goal was to modernize the source code and to reduce the technical debt. After analyzing the code, I started a very extensive refactoring and the development of automated tests. Building on this, I expanded the more maintainable app with new and improved features.

Construction Machine Seller (NDA)
Junior Android Developer Sep 2014 - Dec 2014

As a working student, I was part of a team that developed an Android app for a construction machine selling and renting service. In this real world Android project I’ve gained lots of development experience. It covered all phases, starting with the first customer meeting, the development of the app, the public release and its subsequent maintenance.

Adaptify
Master Thesis Started August 2015

Adaptify is a library for adaptive decision-making with Dart. It was developed for my master thesis and published on the Dart pub.dev platform.

Code Mobility
Master Thesis Started August 2015

A library for code mobility (executing code on client or server) with Dart. The library was also developed for my master thesis and later on published on the Dart pub.dev.

inovex GmbH
Junior Android Developer Sep 2013 - Mar 2015

In my time as a working student, I worked on several internal Android apps. For example, an App that was used at conference booths and a prototyping app for tech evaluation of new libraries and frameworks. Overall, I did a lot of CI/CD support for internal and customer projects. This included the improvement of build scripts and migrating the CI system from Hudson to Jenkins.

Personal Projects

Stellar Presentation
Open Source Project Started August 2021

Stellar Presentation is a presentation application for the desktop developed with Compose for Desktop. The app has features like full-screen mode and keyboard controls. Also, it supports different presentations and provides slide templates for new presentations. I’m using Stellar Presentation as showcase and presentation app for my talks about Compose.

Jetpack Compose Puzzler
Open Source Project Started August 2021

Puzzlers have a long history in learning and understanding technology. This repository contains an Android app with Jetpack Compose puzzlers that I’ve posted on Twitter. It also links to solutions/explanations for the puzzlers.

Compose Desktop Demo
Open Source Project Started June 2021

To get deeper into Compose for Desktop, I’ve created an extensive demo app that contains Compose and desktop specific APIs. The demo app is my playground and starting point to test some features of Compose. I’ve open sourced it to give fellow developers a concise collection of the features and as a starting point to see what’s possible with Compose for Desktop.

adbons
Open Source Project Started May 2017

A wrapper for the “Android Debug Bridge” (adb) tool that’s provided by the Android SDK. The tool makes it easier to use adb on the command line and provides some useful helper functions that are missing in adb. It’s written in Python 3 and uses the “Click” cli framework.

Konclik
Open Source Project Started September 2018

The Kotlin/Native Command Line Interface Kit is a library that makes it possible to easily develop CLI applications with Kotlin/Native. It provides a simple yet useful Kotlin DSL to define the application and supports Kotlin Multiplatform.

Open Sense
Open Source Project Started September 2017

An Android app with widgets that visualize sensor data like temperature or pressure. The data is fetched from the openSenseMap project and the user can select the desired station and the data to display.

On-Off Tracker
Open Source Project Started July 2015

This small project started with a question of a friend of mine: Can you track how often I turn my screen on every day? The On-Off Tracker App does exactly that, it measures how often the screen has been switched on and off.

Unciv
Contributor

Unciv is an open source CIV V remake. I’ve contributed several improvements, did refactorings and bug fixes. Also, I’m active in the community and discuss the future development steps of the game.

Open Source
Contributor

For me, open source is an essential part as a developer. As consumer and as active contributor. Therefore, I’ve contributed to several open source projects in the past. Mainly in the topics Android and Gradle Kotlin DSL.

Skills

Google Cast SDK

The Google Cast SDK for Android accompanied me for some time. I wrote articles for magazines about it when the SDK was announced and advised projects about it. Also, I’ve put the knowledge into practice and used the SDK in two different video streaming projects.

Work Experience

1
Freelance Android Developer
I help my customers to create high-quality Android apps

October 2021 - Present, Karlsruhe or Remote

I’ve been an enthusiastic Android developer since my first Android app in 2011. In my previous projects, I have worked on several large-scale apps that have been installed millions of times. Based on this experience, I pay special attention to the development of maintainable, modern and high-quality apps with a well-structured architecture and extensive tests.

Responsibilities:
  • Design of the app architecture
  • Development of the app
  • Automated testing
  • CI/CD and distribution of the app
  • Knowledge building and successful collaboration in agile teams

inovex GmbH

April 2013 - September 2021, Karlsruhe

inovex is an IT service provider that develops high-quality software solutions with and for their customers

Senior Android Developer

November 2015 - September 2021

  • Conception, architecture and development of several Android apps for customers. See professional projects for details.
  • Innovation Circle Lead for Apps (Android, iOS and Cross-Platform)
  • Supervision of several bachelor and master theses. Mentoring of working students and junior developers
  • Gave talks on multiple conferences/meetups and wrote articles
Master thesis

April 2015 - September 2015

  • Topic: Adaptive code execution in a monoglot, distributed runtime environment
Working student

September 2013 - March 2015

  • Development of multiple Android Apps for customers and internal usage. See professional projects for details.
Bachelor thesis

April 2013 - July 2013

  • Topic: Miracast on Android
2

3
Working student
cluetec GmbH

September 2011 - February 2013, Karlsruhe

cluetec provides mobile survey and data collection with its mQuest software solution

Responsibilities:
  • Migration of all mQuest projects from the build system Apache Ant to Apache Maven
  • Development, bug fixing and documentation of the mQuest backend system (Java EE)
  • Further development of the existing Android app

Education

M.Sc. in Computer Science
B.Sc. in Computer Science