Profilbild von Daniel Baelz Senior Android Entwickler aus Karlsruhe

Daniel Bälz

verfügbar
Kontakt

Letztes Update: 07.10.2021

Senior Android Entwickler

Abschluss: M.Sc. Informatik
Stunden-/Tagessatz: anzeigen
Sprachkenntnisse: deutsch (Muttersprache) | englisch (gut)

Schlagworte

Android Android Architecture Kotlin Jetpack Jetpack Compose Kotlin Coroutines & Flow MVVM (Model View ViewModel) CI & CD Gradle App Architektur

Dateianlagen

Lebenslauf-Daniel-Bälz.pdf

Skills

Ich helfe Ihnen qualitativ hochwertige Android Apps zu entwickeln.

Seit meiner ersten Android App in 2011 bin ich begeisterter Android Entwickler. In meinen Projekten habe ich an mehreren, millionenfach installierten, Apps gearbeitet. Aus diesen Erfahrungen heraus lege ich ein besonderes Augenmerk auf die Entwicklung von wartbaren, modernen und hochqualitativen Apps mit einer klar definierten Architektur und umfangreichen Tests. Neben meiner beruflichen Tätigkeit teile ich mein Wissen auf Konferenzen, Meetups und in Artikeln.

Bei was kann ich Sie unterstützen?
Entwurf der App-Architektur, Entwicklung der App, automatisiertes Testing, CI/CD und Distribution der App, Wissensaufbau und erfolgreiches Arbeiten in agilen Teams


Erstellung der App-Architektur
Tiefgreifendes Wissen zu zeitgemäßen App-Architektur, ob nun für neue Projekte oder die Modernisierung einer bestehenden Anwendung. Hier setze ich auf MVVM und Clean Architecture mit Use Cases, Repository Pattern und Dependency Injection.

Entwicklung von Apps
In meinen bisherigen Projekten konnte ich ein breites Spektrum an Technologien und Bibliotheken einsetzen. Der von mir bevorzugte Tech Stack umfasst unter anderem Kotlin, Dependency Injection mit Koin, deklarative UI mit Jetpack Compose und Tests mit MockK und Espresso. Gleichwohl habe ich auch umfangreiche Erfahrungen mit weiteren Technologien und setze diese bei Bedarf ein.

Workflow, CI/CD und Distribution 
Ein erfolgreiches Projekt benötigt einen definierten Workflow, ein zuverlässiges Buildsystem und eine funktionierende CI/CD. In allen drei Bereichen habe ich tiefgehende Erfahrungen, welche ich im Projekt in Planung und Umsetzung einbringen kann.

Agile Methoden
Das arbeiten in agilen Teams ist für mich essentiell. Sowohl als Entwickler wie auch als Scrum Master habe ich in der Vergangenheit erfolgreich agile Methoden eingesetzt und das Team bei deren Umsetzung unterstützt. Hierzu gehört auch Mentoring/Coaching und der systematische Aufbau von Wissen/Skills der Entwickler.


Skills

Architektur
  • MVVM-Pattern mit Clean Architecture (Use Cases, Repository Pattern, Dependency Injection)
  • Modernisierung von Apps, z.B. Migration von MVC oder MVP zu MVVM
  • Modularisierung mittels Gradle Modulen und Bibliotheken
  • Geteilte Codebasis für Android, Android TV und Fire TV
  • Codesharing mit Kotlin Multiplatform Mobile

Entwicklung
  • Entwicklung in Kotlin und Java
  • Reactive Programming mit Coroutines, Flow und RxJava
  • Dependency Injection mit Koin, Dagger 2 und Hilt
  • Unit-Testing mit MockK, Spek und Mockito
  • Instrumentation-Tests mit Espresso und Kakao
  • UI-Erstellung mit Jetpack Compose
  • Jetpack Bibliotheken wie Room, LiveData, Data Binding und Navigation
  • Netzwerkkommunikation mit Retrofit, Gson und Moshi
  • Streaming Technologien wie ExoPlayer, Google Cast SDK/Chromecast, Amazon Fling
  • Amazon Ökosystem, z.B. Login With Amazon und In-App Purchase API
  • Reporting mit Google Analytics
  • A/B Testing mit Firebase

Workflow, CI/CD und Distribution
  • Diverse Workflows, z.B. Git Flow
  • Gradle Buildsystem mit Groovy und der Kotlin DSL
  • CI/CD mit GitLab CI, Jenkins und Bitbucket Pipelines
  • Monitoring mit Firebase, App Center, Sentry und Bugsnag
  • Distribution der App in Google Play und Amazon Appstore

Agile Methoden
  • Agiles Mindset als Entwickler
  • Mentoring und Coaching von Entwicklern
  • Professional Scrum Master I (PSM I)
  • Scrum Master in einem Projekt mit skalierten Scrum

Projekthistorie

11/2015 - 09/2021
Senior Android Entwickler
inovex GmbH (250-500 Mitarbeiter)
Sonstiges

inovex ist ein IT-Dienstleister, der mit und für seine Kunden hochwertige Softwarelösungen entwickelt. In meiner Zeit bei inovex habe ich Kunden bei der Konzeption ihrer Projekte beraten und diese als Entwickler umgesetzt (siehe Projekthistorie). Neben diesen Kundenprojekten gehörten zu meinen Tätigkeitsfeldern:

  • Externe und interne Wissensvermittlung über Vorträge und Artikel
  • Organisation des internen Wissensaufbaus als Innovation Circle Lead für den Bereich „Apps“
  • Mentoring von internen Kollegen und Entwicklern in Kundenprojekten
  • Betreuung mehrerer Abschlussarbeiten und von Studierenden

03/2019 - 05/2021
Senior Android Entwickler
Streaming-Plattform (über inovex GmbH) (1000-5000 Mitarbeiter)
Medien und Verlage
Weiterentwicklung der Android App einer führenden VoD/Streaming-Plattform in Deutschland. Ich war Teil eines bereits existierenden App Teams und hatte die initiale Aufgabe, die Codebasis zu überarbeiten, sodass diese auch für Fire TV und Android TV eingesetzt werden kann.
  • Evaluation und Planung wie die bestehende Codebasis auch für Fire TV und Android TV verwendet werden kann
  • Umsetzung dieser Planung und Erweiterung der App um nicht-funktionale Feature wie Fokussteuerung mittels einer Fernbedienung
  • Implementierung wichtiger Feature für das Amazon Ökosystem wie Amazon In-App Purchase und Login with Amazon
  • Weiterentwicklung der App unter Verwendung von Bibliotheken wie Koin, Retrofit, Gson, Moshi, Coroutines & Flow, ViewModel, Live Data, Room, Leanback, Google Play Services und vielen mehr
  • Konzeption eines umfassenden Refactoring um die auf MVC basierende Architektur zu modernisieren
  • Umsetzung der neuen MVVM-Architektur inklusive der Wissensvermittlung an das bestehende Team
  • Weiterentwicklung des Reportings zu Google Analytics und Adjust
  • Migration der CI/CD-Pipeline von Jenkins zu Gitlab CI
  • Etablierung eines einheitlichen Workflow mit Git Flow, eines Codingstandards basierend auf Clean Code und eines gemeinsamen Verständnisses in Bezug auf die Architektur und Codequalität
  • Erarbeitung eines Testkonzepts für das automatisierte Testen der Komponenten
  • Umsetzung des Testkonzepts unter Verwendung von JUnit, MockK, Espresso und Kakao
  • Überarbeitung der bereits nach Kotlin migrierten App um den Code idiomatischer und weniger fehleranfälligen zu machen
  • Umfangreiche Überarbeitung von Features und Bugfixes der Codebasis zur Erhöhung der Stabilität

11/2018 - 02/2019
Senior Android Entwickler
Hersteller von IoT-Geräten (über inovex GmbH) (5000-10.000 Mitarbeiter)
Industrie und Maschinenbau
Übernahme einer bestehenden Android-App für ein IoT-Gerät im Automotive Bereich. Das Gerät basiert auf dem Android Open Source Project und die App ist für die Aktualisierung des Android-Betriebssystems, aller installierten Apps und eines angeschlossenen Linux-Betriebssystems verantwortlich.
  • Weiterentwicklung der App unter Verwendung von Java und Bibliotheken wie Retrofit, Guava, Eclipse Californium
  • Analyse des bestehenden Codes und darauf aufbauend Erstellung eines Refactoring-Konzepts
  • Konzeption und Umsetzung einer überarbeiten App Architektur
  • Implementierung eines Monitoring mit Acra
  • Integration von gerätespezifischen Betriebssystem-APIs
  • Erstellung und Umsetzung eines automatisierten Testkonzepts für die Geräte- und App-Aktualisierung unter Einsatz von JUnit und Mockito

10/2018 - 11/2018
Scrum Master
Exaring AG/waipu.tv (über inovex GmbH) (50-250 Mitarbeiter)
Internet und Informationstechnologie
In Vertretung für den nominellen Scrum Master habe ich die Rolle des Scrum Masters des Backend Teams übernommen. Darüber hinaus habe ich den Agile Coach des Gesamtprojekts bei der Transformation des Unternehmens in eine agile Organisation unterstützt. Diese Erfahrung hat mir eine weitere Perspektive auf Agilität und die damit verbundenen Chancen und Herausforderungen gegeben.

01/2016 - 09/2018
Android Entwickler
Exaring AG/waipu.tv (über inovex GmbH) (50-250 Mitarbeiter)
Internet und Informationstechnologie
Im initial zwei Personen umfassenden Android Team habe ich die erste Konzeption mit ausgearbeitet, diese umgesetzt und die Entwicklung der App bis zum Livegang und darüber hinaus vorangetrieben.
  • Konzeption der Basisstruktur und Entwurf der MVP-Architektur der Android und Fire Tablet App
  • Erarbeitung des UI-Designs gemeinsam mit dem Product Owner und Designer
  • Initiale Implementierung mit Java und spätere Migration von Komponenten nach Kotlin
  • Entwicklung der App unter Verwendung von Bibliotheken wie Google Play Services, Dagger, Retrofit, RxJava, Glide
  • Umsetzung des Videostreaming auf dem Endgerät und Empfängergeräten mittels ExoPlayer, Google Cast SDK und Amazon Fling SDK
  • Konzeption und Implementierung des Reportings mit Google Analytics und Adjust
  • Erstellung von komplexen, individuellen UI-Komponenten
  • Integration in das Amazon Ökosystem: Login With Amazon, Amazon In-App Purchase und Amazon Fling SDK
  • Absprache von REST APIs mit dem Backend Team und anschließende Integration in die App
  • Erarbeitung eines Testkonzepts für manuelle und automatisiertes Testen
  • Erstellung von automatisierten Tests mit JUnit, Mockito, Powermock und Espresso
  • Aufbau der CI/CD-Pipeline mit Gitlab CI
  • Distribution und Monitoring über HockeyApp bzw. Crashlytics/Fabric
  • Führung von technischen Interviews für den Kunden

11/2015 - 11/2016
Android Entwickler
Mobilfunkanbieter (über inovex GmbH) (250-500 Mitarbeiter)
Telekommunikation
Übernahme und Weiterentwicklung einer bestehenden Self-Service Android App mit dem Ziel diese zu modernisieren, technische Schuld abzubauen und neue Feature schneller und zuverlässiger zu liefern.
  • Analyse der aktuellen App und Erarbeitung eines Modernisierungskonzepts
  • Umfangreichen Refactoring und Erstellung von automatisierten Tests
  • Implementierung neuer Feature und einer verbesserten UX
  • Verbesserung der CI/CD, unter anderem Multi-Flavor Builds
  • Verwendete Technologien: Java, Retrofit, Picasso

09/2014 - 12/2014
Junior Android Entwickler
Internationaler Baumaschinenhändler (über inovex GmbH) (250-500 Mitarbeiter)
Industrie und Maschinenbau
Als Junior Android Entwickler war ich im Rahmen meiner Werkstudententätigkeit Teil eines Teams, das eine Android-App für einen Baumaschinenhändler entwickelt hat. Die App erlaubt es Informationen zu den Baumaschinen zu betrachten, nach Gebrauchtgeräte zu suchen und Ansprechpartner zu kontaktieren. Meine Aufgaben umfasst dabei unter anderem:
  • Beteiligung am Architekturentwurf mit Unterstützung eines Senior Entwicklers
  • Eigenständige Umsetzung von Features wie die Suche der Gebrauchtgeräte
  • Entwicklung von automatisierten Unit- und Instrumentation-Tests
  • Bugfixing nach Veröffentlichung der App
  • Bereitstellung der App über eine CI/CD-Pipeline mit Jenkins

Zeitliche und räumliche Verfügbarkeit

Arbeitsort
Remote bevorzugt. Mehrjährige Erfahrung in Remotearbeit vorhanden
Vorort in der Region Karlsruhe möglich

Verfügbarkeit
5 Tage/Woche ab Oktober 2021

Kontaktformular

Kontaktinformationen