Skills
- Ü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
Projekthistorie
As a software architect and a software developer I'm responsible for software design, interfaces to other systems, and software implementation 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
- etc
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 following main tools are in use:
- 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
On top of these tools several manufacturer specific tools are in use as well.
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.
Die entsprechenden Chat-Clients auf den jeweiligen Plattformen nutzen diese Bibliothek und implementieren das UI. Teil meiner Aufgabe ist die Unterstürtzung um Implementierung der Android Chat-Client. Die Entwicklung für Android erfolgt in Kotlin.
Die Entwicklung erfolgte in sehr enger Abstimmung mit dem Kunden und dem Fachpersonal.
Desweiteren wurde eine REST Schnittstelle zwischen der Android Anwendung und dem Server spezifiziert und in der Anwendung implementiert.
Uterstürtzung bei Inbetriebnahme der Gesamtlösung, Anwendung inklusive Serveranteil.
Der Kunde benötigt eine Rahmenapplikation, in die verschiedene weitere Funktionsmodule eingegliedert werden können. In einem ersten Schritte wurde ein Modul für Videolegitimation in die Rahmenapplikation integriert. In weiteren Schritte sollen weitere Module folgen.
Daneben die Unterstützung der Projektleitung bei Android-spezifischen Fragen, Deploymentkonzept, Bewertung der Softwarezulieferungen von Dritten, usw.
Die Anwendung implementiert verschlüsselte Audio- und Videoübertragung sowie Messaging mit Attachments (u.a. Audio, Video, Bild Attachements). Die Anwendung nutzt die übliche Android Architektur wie Activities, Fragments, Boradcastreceivers, und Services.
Besondere Schwerpunkte dieser Anwendung liegen auf den Bereichen Sicherheit der Anwendung (verschlüsselte Kommunikation), Sicherheit der Daten, einfache Bedienbarkeit (UI), sowie auf Energieeffizienz um die Laufzeit der mobilen Geräte nicht zu verkürzen.
Die Verschlüsselungsfunktionen sowie bestimmte Protokollfunktionen wurden in den Programmiersprachen C und C++ implementiert und über die entsprechenden Schnittstellen mit dem Android Java Code integriert. Hierbei wurde das Android NDK verwendet.
Die Nutzung von Android Diensten wie zum Beispiel Bluetooth, Power- management, Netzmanagment und Monitoring ist für diese Anwendung notwendig.
Ein wichtiger Teil des Projekts und der Implementierung ist die Integration der Anwendung mit den Backendsystemen SIP Server, Benutzerverwaltung (Provisioning), und Konfigurationssystemen. Die Integration mit Benutzer- verwaltung und den Konfigurationssystemen Integration erfolgt mit Webservices (REST, JSON)
In diesem Projekt bestand die Aufgabe darin eine bestehende Android- anwendung zu erweitern. Die Anwendung verwendet ein spezielles Framework, um Fahrzeugdaten zu erfassen und darzustellen, mit einem Backend-Server zu kommunizieren und Aufträge entgegenzunehmen.
Diese Anwendung wurde erweitert, um Bluetooth-Geräte zur Datenerfassung (Scanner, Fahrzeugdaten) zu unterstützen. Zusätzlich wurden noch eine Netzwerküberwachung sowie Schnittstellen für RFID Karten entwickelt.