Keyword|Description|Year|Assembler|C / C++|Visual Basic + ADO|Visual Basic .NET|SQL|MS Access|HTML and CSS|PHP|JavaScript|Java|Python|Ruby (on Rails)|Objective-C|Embedded Systems|Windows application|Web application|Database application|Dynamic dialogs|Reports / printouts|Software porting|Error analysis|Background services|Drivers|Imageprocessing|Multithreading|iPhone-App|Optimize performance
After sales service management|We created the client part of this management software. The software handles everything from time tracking via inventory control to invoice creation.
- Inventory management
- financial accounting|1996-1997|||||x|x|||||||||x||x|x|x||||||||x
Automatic test system|Expanding an operating system for Embedded Systems so that every user action and every output can be redirected to an automatic test system. This task is part of a project for automatically testing of system crossing applications (PC - Embedded Systems - host - system peripherals).
- The control scripts are written in Python.|2006-2008|x|x|||||||||x|||x||||||||x|x||x||
Operating system porting|A real-time operating system (RTOS) based on NUCLEUS has been ported to some ATMEL microcontroller families like AT91M, AT91RM and AT91SAM.
- access to external FLASH (several manufactures)
- access to external SRAM / SDRAM (memory mapping)
- advanced interrupt controller (AIC)
- primary boot with individual microcontroller initialization
- timer and real-time management
- several protocols / interfaces to external peripherals e.g. via Synchronous Serial Controller (SSC) incl. I²C, Universal Synchronous/Asynchronous Receiver Transmitters (USART) with DMA, Serial Peripheral Interfaces (SPI), Two-wire Interface (TWI)
- porting of the development environment and download-tools|2003-2009|x|x||||||||||||x||||||x||x|x||x||x
Chip card driver|Development of smart card drivers for Embedded Systems
- based on the IC card interfaces from Philips (TDA family) and ATMEL (AT83C26 family)
- integration into several real time and proprietary operating systems
- certification of T=0 and T=1 protocols according to EMV2000 (Europay, MasterCard, Visa), ISO 7816 and SICCT (base for german electronic health insurance card)
- support of several synchronous protocols
- development of the driver as a daemon so that other applications and peripheral communication can be used in parallel|2002-2008|x|x||||||||||||x||||||||x|x||x||x
Content management system|An individual content management system for part of a larger web presence
- administration of documents for a download area
- administration of articles for a protected member area
- administration of news articles
- administration of current events||||||x||x|x|x|||||||x|x||||||||||
Employee scheduling management|A program for managing the monthly schedule and calculating working hours using different multipliers
- schedules per employee and per working location
- automatically generation of sums per shift with the option of adjusting individual times for beginning and ending
- automatically separation of nighttime tariff, weekend and holiday hours
- individual settings for all time parameters, location-related service times as well as nightly, weekend or holyday timings|2009-2010||||x|x|x|||||||||x||x|x|x||||||||
Printer API|Control of a serial printer via a given proprietary API which is neither syntactical nor logical compatible to the native printer API
- automatically character set conversion
- adaption of several asynchronous sequences using background threads
- additional buffer management in low memory environment|2008||x||||||||||||x||||||x||x|||x||
Printer driver|Development of hardware drivers for thermal printing devices
- control of printing devices from Axiohm (THTE family) and Seiko Instruments Inc. (LTPZ 245 family) composed of step motor, thermal head and thermal resistor
- control via the internal peripheral systems and timers of the ATMEL AT91 microcontroller family
- integration into a real time operating system based on NUCLEUS
- development of the driver as a daemon so that other applications and peripheral communication can be used in parallel|2007- 2010||x||||||||||||x||||||||x|x||x||x
Error analysis: billing system for medical services|A billing system for medical services from another software developer showed occasionally wrong tax amounts
- analysis of the unknown system
- diagnosis of an error as a matter of principle in the data structure, which led to rounding errors while sums were calculated over different groups
- bugfix by reorganization of the data groups and revision of all involved modules|2007|||||x|x|||||||||x||x||x||x||||||
Error analysis: communication error to system peripherals|There where frequent communication errors between a single Embedded System and it’s peripheral. Our task was to test the used communication software for errors as a matter of principle.
The used standardized protocol uses several error corrections and did never generate similar failures on other systems.
The code analysis did not show any abnormalities. Then the application flow has been verified by run-time timing measurement.
This check proved that both the protocol internal error correction works proper and the expected application flow could only happen in the desired way.
(During the measurement we coincidently saw a sudden voltage changeover on the data lines which led back to a hardware error).|2008|x|x||||||||||||x|||||||x|x|x||||
Evaluation of research funds|Several evaluations / reports for a research administrative department
- parameterized reports
- evaluation across 10-20 data tables per report
- concatenation of the data tables via up to 6 columns, depending on user parameters|1996-1997|||||x|x|||||||||x||x||x||||||||x
Protected member areas|Several access protected areas within web presences
- automatically issuing of access authorization: user included in an existing pool of addresses are able to request a password by themselves. It will be generated and administrated from the system.
- manual issuing of access authorization: the user has to be created using our administration software which generates a password and mails it.
- several dedicated database accesses within the protected area (search, create, modify, depending on several user rights)||||||x||x|x|x|||||||x|x|x|||||||||
Web presence (PHP)|Individual web presence with flexible pages using HTML / CSS, JavaScript and PHP.
- multi-level menus
- protected areas
- partial editable by the customer himself (own Content Management System)
- extensive database accesses for website-user
- synchronization between internet database and in-house master data
- download area
- sitemap, legal notice, …||||||x||x|x|x|||||||x|x|x|||||||x||
Web presence (Ruby on Rails)|Enhancement and maintenance of an online gaming portal based on Ruby on Rails.|2009-2010|||||x||x||x|||x||||x||x|||x||||||x
Magnetic stripe cards reader|Development of a driver for magnetic stripe cards reader.
- reader hardware from several manufactures
- signal recording via ATMEL AT91 peripherals
- development of the driver as a daemon so that other applications and peripheral communication can be used in parallel
- verification and transformation of the data. If the Data of an ISO conform Stripe could be collected in one piece, it will be found. This is independent from direction and also if the card has been slammed into a hybrid reader and extracted immediately.|2005||x||||||||||||x||||||||x|x||x||x
Multiplayer lobby|Client of a multiplayer gaming portal as a complex part of a web presence.
- the whole user interface is built up with HTML / CSS and JavaScript
- the communication to the server is implemented in an external Flash-applet
- public and private chat
- dynamically updates in real time
- multiple parameterizations via database (content management)
- multilingual using Ruby on Rails translation file (YML)|2009-2010|||||||x||x|||x||||x||x|||||||||x
Multithreading interfaces|Several multithreading abstraction layers for communication modules.
Most of the communications protocols have to follow specific timings in the different OSI layers. At the same time no driver is allowed to block the complete system.
Multithreading APIs for several hardware components were developed, which handle the lowest communication controlled by IRQ and DMA / FIFO. These APIs can be used by higher protocol layers without hesitation.
- multithreading interface for an ISDN stack
- multithreading interface for an X25 Stack
- multithreading interface with ring buffer for communication via serial interfaces
- multithreading interface for several high level protocols with error correction
- complete multithreading driver for chip card reader
- complete multithreading driver for magnetic stripe reader
- complete multithreading driver for controlling of printing devices
- complete multithreading driver for I²C communication|2002-2010|x|x||||||||||||x||||||||x|x||x||x
Online PDF generation|Dedicated database contents will be summarized in a PDF file on the fly.|2010|||||x|||x||||||||x|x||x||||||||
Online player management|A framework for games based on SmartFoxServer 2X has been developed to bill different games via a common interface (external API).
- the framework resolves all multithreading problems, so that a game developer does just need to care for a sequential single thread program flow.
- the data flow has been optimized for volume and operating time.
- active games are served from thread pools, so that over 1000 multiplayer game instances are handled in parallel from a single server without performance loss.
- messages might be transmitted encrypted between clients and server automatically.
- all postings, aborts and back postings will be triggered by the framework and are independent from a particular game.
- the desired number of players for multiplayer games will be grouped before the game starts.
- single player will be arranged to game rounds time independently.|2009-2010||||||||||x||||||x||||||x|||x||x
Online testbots|Automatically test (ro)bots to simulate many online users simultaneously.
- based on the SFS_Java_Client_API
- high level API of the higher-level backend system
- The individual test sequences are written in Python (Jython). |2009-2010||||||||||x|x|||||x|||||||||x||x
PC <=> Embedded Systems|Development of several tools for communication between PCs and Embedded Systems.
- software update
- tracing
- control
- configuration
- several proprietary protocols via serial interface
- several proprietary protocols via USB
- several Microsoft Windows operating systems
- several Linux operating systems|2001-2010||x||||||||||||x|x|||x||||x|x||||
Project management system|Project management / project monitoring.
We have developed the client part of a project management system with supreme secure requirements.
- journalized capture of planning data
- journalized redirection of changes, incl. “countersign”
- several hierarchies of user rights and message recipients
- several parameterized reports about progress respectively actual state
- connection to a work-hour recording system
- several parameterized reports for comparison of actual state <=> planed state|1996-1997|||||x|x|||||||||x||x|x|x||||||||x
Project time management|Work-hour recording with correlation to project numbers.
- individual project favorites from a large amount of project numbers for each employee
- automatically daily / monthly sum information for actual and required value
- user definable hierarchic grouping of project numbers respectively dedicated project properties and employee groups
- several evaluation / reports over the defined groups|2006-2010|||||x|x|||||||||x||x|x|x||||||||
Fieldbus data management|Administration tool for the process data of a fieldbus system.
- editing in table form
- cascading check of dependencies during input
- colored highlighting of errors
- user definable views
- complex search functions|1998||x|||||||||||||x|||x|||||||||x
Processor cache|Analysis of an embedded microcontroller system for the usability of instruction- and data¬-caches. Activation of the caches and modification of the operating system so that all existing applications will execute stable afterwards.|2007|x|x||||||||||||x|||||||||||x||x
Synchronization between databases|The public area of a web presence uses a MySQL database with some summaries of the master data.
- The complete master data will only be administrated in a protected, in-house SQL-server data base.
- The update of the web database is done automatically time scheduled
- Change requests from customers on the web database will be converted by synchronization software into the more complex data structure of the master data and have to be confirmed manually.|||||x|x|||x|||||||x|x|x|||x||x|||||
UNIX protocol -> Windows|Porting of a communication program from UNIX to Windows.
- Unix demons -> Windows services
- Unix signals -> Windows events
- several simultaneous client applications (multiprocessing)
- named pipes and proprietary inter-process communication
- based on TCP/IP protocol|1999||x|||||||||||||x|||||x||x|||x||x
Customer specific business software|Several customer-specific programs for managing and billing of immaterial goods.
- customer management.
- master data management of the complex goods.
- user definable grouping of the goods for invoices.
- payouts to the owners of the goods.
- complex control module for user specific accounting rules.
- export to financial accounting.
- detailed reporting system.
- several import-/export- interfaces.
- lastly updated to MS SQL Server 2008 R2.
- customer loyalty maintenance, care and further development for over 12 years.|seit 1999|||x|x|x||||||||||x||x|x|x||||||||x
Medical image analyses|Several programs for automated 3D segmentation ('recognition') of anatomical regions within computertomographical images.
- respect of anatomy additional to the image data.
- normal (healthy) and morbidly mutated anatomy.
- on base of ITK, VTK and FLTK.
- cross-platform development on Windows and Linux by CMake.|2008-2011||x|||||||||||||x|||||||||x|x||x
Photo to video|An
iPhone App which creates a cameraflight-video from one or two pictures.
- from camera parameters and target marks, a 3D space is created.
- combining with different timing functions, a 4D space is spanned.
- by use of
OpenGL the frames are taken from this 4D space and stored as a video.
- different compressions within
H264.
- image analyses and
assimilation over time of brightness and saturation.
- recognition of matching objects (
LAB- colorspace) and appropriate early blending during the flight phase.
- email export, storage in photo library.
- complex user interface, incl.
multitouch-GestureRecognizer,
accelerometer.
-
|2011-2012||x|||||||||||x|||||x||||||x|x|x|x