Christian Ammann - Engineering and Research
German English

Curriculum Vitae

Professional ​Info​

I am a embedded software engineer and computer scientist. My expertise reaches from assembler for microcontrollers (e.g. Arduino or Atmel) up to model-driven development with Java or C++. In my spare time, I add new features to Hyperion, write games for retro gaming consoles (Atari VCS, Amiga, Game Boy) and try to solve IT security challenges. I am a team player, always interested in new business opportunities and accustomed to work in deadline-driven environments.

Finished Projects

  • Implementation of a test framework for an embedded system which controls lighting installations. It runs Linux and provides a REST interface. The interface is accessed by a smartphone app which allows users to dim lights, program a timer, etc.

    Tools and Technologies: Android, Java, REST, DALI-Bus, Linux, Espresso

  • Development of a smartphone app for a powerbank sharing system. A user with low power can rent and return a powerbank in restaurants, airports, etc. The smartphone app contains a map, a QR code scanner and payment functionality.

    Tools and Technologies: Android, Java, Cordova, Camera Autofocus

  • Building an infotainment system for a car which consists of several touch displays and allows the integration of a smartphone using wireless technology. During the project, a first stage boot loader and a Linux kernel driver were written. The kernel driver controls a display deserializer chip.

    Tools and Technologies: C++, ARM Assembler, Linux Kernel, Apple CarPlay, Android Auto, TCP, Renesas „System on Chip“

  • Implementation of a camera application with Java which adds graphical overlays in real-time to a H264 video stream. A patent was submitted to protect the technology.

    Tools and Technologies: Java, Android Studio, Git, OpenGL, Patents

  • Implementation of a RTMP library for Android. It allows Android-Apps to stream video/audio content to services like Twitch or Ustream. Therefore, an x86 Linux library had to be crosscompiled for Android ARM architecture.

    Tools and Technologies: C/C++, Git, GDB, Android Native Development Kit, RTMP, Wireshark

  • Design of an android-based, embedded camera system for cars which records the driving experience and allows an analysis for quality assurance. It reads data from an image sensor, processes the resulting video with a H264 encoder, stores the result in a SD card or streams via a network interface.

    Tools and Technologies: C/C++, OMAP4 Processor from Texas Instruments, GDB, Git, MS Visio, Android Studio, Linux Kernel, RTP Protocol, Wireshark

  • Implementation of an ultrasound-based system using Java which monitors workers and automatically detects failures in their assembly process.

    Tools and Technologies: Java, UML, Xtext, Finite State Machines, Google Web Toolkit, XML

  • Controlling a photovoltaic module with a raspberry pi. The system measures power consumtion and adjusts maximum power rating (Pmax). The core of this system is a modified C library.

    Tools and Technologies: Linux für Raspberry-Pi, SSH, Serial Interface, Yasdi

  • Implementation of a runtime packer which encrypts windows portable executables (PE). This approach protects binary files against reverse engineering. The runtime packer was developed with x86 assembler and contains a Windows PE loader and a AES decryption stub.

    Tools and Technologies: x86 Assembler, C/C++, Visual Studio. Win32 APIs, Windows System Programming

Work Experience

07/2013 - Now
Freelancer
Christian Ammann - Engineering and Research
Software Engineering
03/2013 - 06/2015
Software Developer
Fraunhofer Institute for Integrated Circuits IIS, Germany
Embedded Systems, Android Development, Smart Cameras based on OMAP4, Project Management, Trade Shows
10/2009 - 02/2013
Scientific Researcher
University of Applied Sciences Osnabrück, Germany
Implementation of Prototypes with Java, UML, Model-Driven Development, Conference Talks, Supervisor of Student Workers
06/2006 - 06/2009
Student Worker
University of Oldenburg, Germany
Design and Implementation of Algorithms with C++

Education

10/2009 - 04/2015
Doctorate (PhD)
University of Osnabrück
Final Degree: Doctorate in Natural Sciences
Final Grade: Very Good
10/2003 - 04/2009
Computer Science focussing on „Embedded Systems“
University of Oldenburg
Final Degree: Diploma in Computer Science
Final Grade: Good

Talks

C. Ammann, Hyperion: Implementation of a PE-Crypter, Berlinsides 2012

C. Ammann, Implementation of Runtime Packer and -Crypter, Backtrack-Day 2011

C. Ammann, 8-Bit Wonderland - Executing custom Code on the Nintendo Game Boy, PH-Neutral 2010

Publications

C. Ammann, Verknüpfung von formaler Verifikation und modellgetriebener Entwicklung, Dissertation, Erschienen in „FB 06 – E-Dissertationen“, 29.4.2015

C. Ammann, Verification of Web Applications with a Model Checker, 2012, 16th IASTED International Conference on Software Engineering and Applications

C. Ammann, Formal Verification of Web Applications, TAV 32 Workshop: Testen von geschäftskritischen und sicherheitskritischen Anwendungen, in Softwaretechnik-Trends, Band 32 Heft 1, 2011

C. Ammann, Verification of Behavioral Domain-Specific Languages with a Model Checker, 3rd International Asia Conference on Informatics in Control, Automation and Robotics (CAR 2011), Mechanical Engineering and Technology - Advances in Intelligent and Soft Computing, Vol. 125, ISBN 978-3-642-27328-5, 2011

C. Ammann, S. Kleuker und E. Pulvermüller, From Business Modeling to Verified Applications, In Workshop "Protokoll-basierte Modellierung von Geschäftsinteraktionen" at Informatik 2011, GI-Edition - Lecture Nodes in Informatics (LNI), ISBN 978-3-88579-286-4, 2011

C. Ammann, Verifikation von UML-Statecharts unter besonderer Berücksichtigung von Speicherverbrauch und Laufzeit des Model Checkers, in Softwaretechnik-Trends, Band 31 Heft 3, 2011

C. Ammann, Integration von Model-Driven Development und formaler Verifikation in den Softwareentwicklungsprozess - eine Fallstudie mit einem 3D-Tracking-System, in Softwaretechnik-Trends, Band 30 Heft 4, 2010

Downloads

Profile and Curriculum Vitae

Skills

  • Software Development
  • Microcontrollers
  • Embedded Systems
  • Linux
  • Smartphone Apps
  • Project Management
  • Reverse Engineering
  • Windows System Programming

Languages

  • Assembler
  • C/C++
  • Java
  • VHDL
  • UML