Fachlicher Schwerpunkt dieses Freiberuflers

Embedded Software Engineer, Microcontrollers, C programming, bare-metal, real-time, RTOS, Python

verfügbar ab
02.12.2019
verfügbar zu
50 %
davon vor Ort
100 %
PLZ-Gebiet, Land

D0

D1

D2

D3

D4

D5

D6

D7

D8

D9

Österreich

Schweiz

Kontaktwunsch

Ich möchte bevorzugt für Projekte in diesen Einsatzorten kontaktiert werden.

Projekte

09/2015 - 11/2017

2 Jahre 3 Monate

Intel microcontrollers HAL (drivers) development

Rolle
Embedded Software Engineer
Kunde
Intel Ireland
Einsatzort
Dublin (remote contract from Munich)
Projektinhalte

Design and development of embedded C software for Intel Quark D2000 and C1000 microcontrollers. I implemented a number of features (DMA, SPI, bootloader, memory protection drivers) as wess as an automated performance testing framework.

Version control with git, gcc compiler, Gerrit code reviews and Python integration test scripts.

09/2014 - 03/2015

7 Monate

ARM Cortex M3 firmware for a medical equipment platform.

Rolle
Embedded software engineer
Kunde
Tyco GmbH
Einsatzort
München
Projektinhalte

Development of embedded C for an ARM Cortex M3 MCU (Atmel SAM3N). Industrial network protocols, firmware update and RS485 communication protocol implementation on a medical equipment platform. Building of an ARM GNU cross-compilation toolchain.

08/2013 - 04/2014

9 Monate

Embedded Linux SW engineer automotive equipment.

Kunde
Kölbl & Vogl GmbH
Einsatzort
Rohrdorf, Kreis Rosenheim, Oberbayern
Projektinhalte

Embedded Linux software on an ARM9 (PXA270) platform. Userspace USB drivers and Apple iAP protocol functionality. Linux kernel configuration. Building GNU toolchains.

04/2012 - 07/2013

1 Jahr 4 Monate

Embedded Linux SW engineer

Kunde
Heliocentris GmbH
Einsatzort
München
Projektinhalte

Embedded Linux software on an ARM11 iMX35 platform. Device drivers development and kernel porting. Building GNU toolchains. Bare-metal programming of an STM32F1 chip (ARM Cortex M3).

Projekthistorie

1997 - 1999 Real-time SW engineer, Motorola GSM products division, Swindon, UK.

  Designed and implemented embedded software for a GSM base station, running on a

  Motorola DSP56305.

  * Full life cycle development: requirements, design (using Teamwork), coding

 in C and assembler, unit testing and maintenance. Peer review following Fagan

 methodology. Version control with Clearcase. Process improvement activities,

 working towards SEI CMM level 4.


1999 - 2000 Systems Design engineer, Nokia Mobile Phones, Farnborough, UK.

  * Worked in the 3GPP systems and standardisation group.

  * Designed and implemented a WCDMA (UMTS) air interface network simulator with

 Matlab.

  * Responsible for system design of location services (LCS).

 
2000 - 2001 Real-time SW engineer (contractor), Ericsson, Nuremberg, Germany.

  * Full life-cycle development on the Texas Instruments TMS320C6203 DSP in a

 baseband processing board, part of an UMTS base station. Programming in C,

 using Texas Instruments Code Composer Studio and Enea OSE RTOS. Version

 control with Clearcase.

  * Designed and implemented UMTS features on layer one (downlink chip rate

 processing, measurements, resource handling, compressed mode and multicode).

  * Implemented a simulator of UMTS resources (allocation and channel consumption).

 
2002 – 2003 Real-time SW engineer (contractor), Sony NSCE, Brussels, Belgium.

  Designed and implemented real-time software for set-top boxes, programming in C++

  for a MIPS RISC processor and using Green Hills Multi debugger. Version control

  with Clearcase.

  * Serial and modem communication drivers, V.22bis, V.23 and PAVI (French Minitel)

 protocols.

  * Smartcard control driver.

  * Requirements and architecture design for a software package management system

 and an automatic firmware update system on an embedded Linux platform.

 
2003 – 2004 SW engineer (contractor), Siemens ICM, Kamp-Lintfort, Germany.

  Embedded software for a baseband chipset (Infineon Sgold2) that includes an

  ARM926 core and a Teak DSP, used in a platform of GSM mobile phones.

  Programming on C for an ARM926 processor and using the Lauterbach Trace32

  debugger. Working close to the hardware, using logic analysers for debugging and

  verification. Version control with Continuus (Telelogic).

  * Responsible for writing low level drivers on areas of multimedia (interface to

 a video processing chip) as well as USB and Bluetooth stack implementation.

  * RF low-level software, control of a Hitachi RF ASIC.

 
2005 – 2006 Embedded SW engineer (contractor), Agere Systems, Munich, Germany.

  Real-time software development for a GSM mobile phone platform, C programming,

  using Nucleus RTOS. Working close to the hardware, using logic analysers for

  debugging and verification. Version control with Clearcase.

  * Design and development of multimedia card (MMC) protocol software.

  * Development of an LCD display driver.

  * Integration of audio and video codecs.

 
2006 – 2007 SW engineer (contractor), NXP Semiconductors, Nuremberg, Germany.

  Working for the UMTS layer one development group. Programming on C for an ARM9

  processor. Version control with Clearcase.

  * Integration and debugging of UMTS L1 software.

  * Field test support activities, automation of tests through Windows C++ scripts.

 
2007 - 2010 SW engineer (contractor), MTU Aero Engines GmbH, Munich, Germany.

  Working on the design and development of safety critical (DO-178B) embedded real

  time software for an aircraft engine monitoring system.

  Programming in C for a Motorola MPC565 microcontroller, following MISRA C

  guidelines. Version control with Dimensions. Static analysis tools used: LDRA

  Testbed, PCLint.

  * Design and development of monitoring vibration software.

 Integration of software on monitoring and protection computers.

 Documentation and code reviews.

 

2011  SW engineer (freelance), Proxima Systems, Valladolid, Spain.

  I designed and implemented software for an industrial monitoring system running on

  an embedded Linux platform, consisting of a multi-threaded configuration handler

  that interfaces to an SQLite database. The system was implemented on an ARM926

  microcontroller, using C and the GNU cross-compiling tools. I also carried out

  performance analysis and optimization work.

 

2011  SW engineer (freelance), University of Granada, Spain. I designed

        and implemented an embedded linux system to be used on a remote telemetry unit,

        running on a PC104 industrial board. Kernel configuration, device driver for data

        acquisition, optimization and static analysis. I have used the GNU compilation

        tools.

 

2013  Firmware engineer. LED display programming using an STM32F4 chip

        (ARM Cortex M4).

 

Branchen


Telecommunications, Avionics, Set-top boxes, Energy, Telemetry, Automotive

Kompetenzen

Programmiersprachen
Assembler
ARM and a number of DSPs
C
more than 10 years of experience
C++
3 years of experience
MATLAB / Simulink
one project with Matlab
Python
currently learning

Sprachkenntnisse
Deutsch
intermediate level (B2)
Englisch
proficiency (C1/C2), both spoken and written
Französisch
fluent
Spanisch
mother tongue

Hardware
Digitale Signalprozessoren
Texas Instruments TMS320C6203, Motorola DSP56305, Analog Devices ADSP2101
Echtzeitsysteme
OSE, Nucleus, embedded linux, Beaglebone Black
embedded Systeme
embedded linux, bare metal
Mikrocontroller
ARM9, ARM11, ARM Cortex M3, ARM Cortex M4, NEC MIPS
Motorola
MPC565
Texas Instruments
TMS320C6203, MSP430

Datenkommunikation
TCP/IP
GSM and UMTS (FDD) physical layers, digital communications

Betriebssysteme
Echtzeitbetriebssysteme
Enea OSE, Nucleus, SPOX, uC/OS-II
Embedded Linux
RTOS (Real Time OS)
Enea OSE, Nucleus, SPOX, uC/OS-II

Produkte / Standards / Erfahrungen
Version control:    git, subversion, Clearcase

DSPs/CPUs:        Texas Instruments TMS320C6203, Motorola DSP56305, Analog Devices

ADSP2101, ARM9, ARM11, ARM Cortex M4, NEC MIPS, DSP32C

(floating point DSP), Motorola MPC565


RTOS:             Enea OSE, Nucleus, SPOX, uC/OS-II

Operating systems: UNIX (HP, Solaris), GNU/Linux, Windows (NT, 2000, XP)

Design methods: Structured design (Yourdon methodology), object oriented design

Tools:            Design – Cadre Teamwork, Microsoft Visio
                     Documentation - Interleaf, Framemaker, Microsoft Word
                     Debugger - Green Hills MULTI, Lauterbach Trace 32, gdb
                     Rational Rose RT (training course)
                     Requirements – Telelogic Doors
                     SDL - Telelogic Tau (tool evaluation)

Security:         Networking (TCP/IP, NAT, firewalls), encryption, VPN

Telecommunications: GSM and UMTS (FDD) physical layers, digital communications


Ausbildungshistorie

1989 - 1994 Licenciado (BSc) in Physics with Electronics. Seville University, Spain.

    Main courses taken: Circuit Theory, Solid State Physics, Electromagnetism,

Microelectronics (Bipolar and CMOS), Digital Logic, Communications Theory.

Computing courses: C programming, UNIX.


1996 - 1997 Master (MSc) DSP Applications in Telecommunication Systems (Distinction).

Lancaster University, UK.

Main courses taken: Modem Design, Synchronisation Techniques (lab work on

AT&T DSP32C), Networking and Multimedia Communications, Radio Propagation,

Error Control Techniques, Signal Processing in Personal and Mobile Radio

Systems.

    Main project for MDSI UK, Cambridge: Design and implementation (assembler)

of a mobile radio modem (physical and data link layers) on the Analog

Devices ADSP2101, including modulation, adaptive equalisation and

BCH error control coding algorithms.