08.05.2026 aktualisiert


Premiumkunde
100 % verfügbarWerner Dittmann
Albaching, Deutschland
Deutschland
Skills
C (Programmiersprache)JavaAndroidAndroid Application DevelopmentAndroid NDKAndroid StudioC++GradleJUnitSoftwareentwicklungSystemarchitekturKotlin
- Über 30 Jahre Fachwissen in IT Design und Entwicklung in internationalen Projekten mit Schwerpunkt auf Lösungs- und Systemarchitektur, IT- und Netzwerkintegration.
- Sehr gutes und breites Praxiswissen in der Softwareentwicklung, in verschiedenen Programmiersprachen wie C, C++, Java, Kotlin
- Seit etwa 10 Jahren mit Schwerpunkt auf Design, Entwicklung und Implementierung von Android Anwendungen, zum Beispiel Kommunikationsanwendungen (Audio, Video, Messaging) mit Verschlüsselung (in C und C++, Java und Kotlin), UI Implementierung. Verwendete Protokolle sind unter anderem SIP, RTP, XMPP, HTTP
- Langjähriges Know-How bei der Entwicklung sicherheitskritischer Software, (VoIP Verschlüsselung, SRTP, ZRTP, ThreeFish, Skein, etc)
- Verwendete Entwicklungssysteme für Android: Android Studio, Gradle, Android SDK, Android NDK (für C/C++ Anteile)
- Testmethodiken u.a Android Espresso, UI Automation, JUnit Tests, Instrumentation Tests, Google Test für C++ und C
Erfahrung
Berufserfahrungmehr als 10 Jahre
Freelancer seit2012
Sprachen
DeutschMutterspracheEnglischverhandlungssicher
Projekthistorie
Design, development, and refactoring of Android Media backend Services for USB und Radio which use Android's Media Provider and Android's Car broadcast Radio manager infrastructure. The backends use Android's Media session to communicate with Front-End media applications.
The backends implement the MediaBrowserService or MediaLibraryService roles of Android's Media architecture.
Both backend services use and implement a reactive design and make use of Kotlin flows to process the data in a parallel and asynchronous fashion. This greatly reduces transaction and response times of Front-End requests.
The whole project strictly follows the manufacturer's project development, test, and release processes with a very high focus on development quality and test/QA procedures.
The project uses the following tools and development environments:
- Android Studio, gradle, etc for Android Softwareentwicklung
- Koin dependency injection (DI)
- Git (Enterprise) software repositories
- Jira and Confluence for project management and documentation
- Gerrit and AOSP environment to support AOSP software development
This project was set up to develop a passenger entertainment system for the manufacturer's topline cars. The system consists of a large screen (8k by 2.5k), a specific hardware to drive the screen and to connect to the car's other systems. The project is implemented by an international team.
As a software architect and a software developer I'm responsible for software design, interfaces to other systems, and software implementation/refactoring across the whole system. This includes the full range of Android development:
- Android UI implementation (MVVM)
- Android service implementation (application level) to connect to other car systems
- Implementation of Hardware Abstraction Layer (HAL) modules and associated services (AOSP level) to provide lower layer connectivity
- Implementation of tests, test suites
The whole project strictly follows the manufacturer's project development, test, and release processes with a very high focus on development quality and test/QA procedures.
The project uses the following tools and development environments:
- Android Studio, gradle etc to develop Android software
- Git (Enterprise) as software repositories
- Jira and Confluence to support project managment and documentation
- Gerrit and AOSP tools to develop AOSP software
The existing software was implemented in the C language and runs on a proprietary hardware (payment terminal). The build process used standard makefiles, GNU autotools and the source management was using CVS.
The project was set up to to develop Android software to replace many of the existing C based software modules, to use newer development and build tools, and to connect to C modules which could not be replaced. Another part of the project was to use a newer hardware which was able to run an Android system.
The first step of the project replaced the build system: migrate makefiles, GNU autotools to gradle and cmake This first step was necessary to enable Android software development. Parallel to these actitivies the CVS software management system was migrated to to git and Google repo tool.
During the second project step the team developed the new Android software and started , implemented interfaces (JNI) to remaining C modules. This included new and/or enhanced UI design, adaptations to the new hardware and its features. Another important topic was to migrate the test suite of the software to provide the certification process.
Other tools were: Jira, Confluence to manage to project.
The project was set up to to develop Android software to replace many of the existing C based software modules, to use newer development and build tools, and to connect to C modules which could not be replaced. Another part of the project was to use a newer hardware which was able to run an Android system.
The first step of the project replaced the build system: migrate makefiles, GNU autotools to gradle and cmake This first step was necessary to enable Android software development. Parallel to these actitivies the CVS software management system was migrated to to git and Google repo tool.
During the second project step the team developed the new Android software and started , implemented interfaces (JNI) to remaining C modules. This included new and/or enhanced UI design, adaptations to the new hardware and its features. Another important topic was to migrate the test suite of the software to provide the certification process.
Other tools were: Jira, Confluence to manage to project.