Schlagworte
Skills
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
Modernisierung und Weiterentwicklung der bestehenden Android App der VoD/Streaming-Plattform. Dies mit dem Schwerpunkt auf die Aktualisierung der Architektur und die Verbesserung der Codequalität.
- Erstellung einer neuen Zielarchitektur mit dem bestehenden Android-Team
- Umsetzung der MVVM-Architektur und Clean Architecture
- Einführung und Wissensvermittlung zum deklarativen UI-Framework Jetpack Compose
- Entwicklung neuer Feature auf Grundlage der neuen Architektur
- Migration von Quelltext von Java nach Kotlin
- Optimierung der CI/CD-Pipeline und Distribution in Google Play und Amazon Appstore
Beratung und Entwicklung der Android App eines führenden, europäischen Neobrokers. Dabei Fokus auf die technische Erneuerung der UI und Verbesserung der UX.
- Beratung bei der Einführung des deklarativen UI-Frameworks Jetpack Compose
- Entwicklung einer Bibliothek von wiederverwendbaren UI-Komponenten in Zusammenarbeit mit dem Android-Team und Designern
- Performanceanalyse der mit Jetpack Compose erstellen UI
- Interoperabilität mit der bestehenden UI des Android View System
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
- 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
- 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
- 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
- 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
- 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
Reisebereitschaft
Remote bevorzugt. Mehrjährige Erfahrung in Remotearbeit vorhanden
Vorort in der Region Karlsruhe möglich
Verfügbarkeit
5 Tage/Woche ab August 2022