Velibor Cakarevic verfügbar

Velibor Cakarevic

Embedded Software Entwickler

Profilbild von Velibor Cakarevic Embedded Software Entwickler aus GrafingbMuenchen
  • 85567 Grafing b. München Freelancer in
  • Abschluss: Dipl. Ing. Elektrotechnik
  • Stunden-/Tagessatz: nicht angegeben
  • Sprachkenntnisse: deutsch (gut) | englisch (verhandlungssicher) | schwedisch (Muttersprache) | serbisch (verhandlungssicher)
  • Letztes Update: 16.03.2020

Diese Anzeige ist nur für angemeldete Nutzer möglich.


Diese Anzeige ist nur für angemeldete Nutzer möglich.

Firmware development, Embedded, C, C++, iOS development, Objective C
Software porting, Android Porting to HW platforms, ARM, AVR, Arduino, Raspberry Pi, STM
OO Design, Sw Architecture
Git, svn
Linux, Windows, Mac
Visual Studio, XCode, Eclipse, Smartcard
Communication Protocols, ISO14443
09/2015 - 04/2018

Industry Sector:
Semiconductor industry

Firmware Engineer

Developing and optimizing firmware code for smartcard processor project using C and
Assembler language.
Investigation of ISO14443 specifications and working with development of communication
library and device drivers for peripheral interface.
Investigation of hardware specification and developing firmware e.g. using processor registers,
implementing ISR, sending/reading data to/from peripherals, etc.
Optimizing code size and execution speed.
Debugging firmware code using disassembly, listing and map files, register values, checking
stack and memory segments.
Using Cadence SimVision - time measurement and debugging (e.g. checking register values).
Developing smartcard reader library for testcase development using C#.
Smartcard processor

Eclipse, svn, C, Assembler, NUnit, C#, Cadence SimVision, Jenkins, Doxygen
01/2012 - 09/2015

Industry Sector:
Mobile Security

Linux Embedded Developer 


Developed security-applications (Trusted Applications) which run on microkernel in ARM
TrustZone in Android OS. The security-applications were developed in C/C++. The Android
application and the security-applications communicate through shared memory and interrupts
triggering context switch. A shared memory region “bridged” Android applications and Trusted
Applications. This memory was handled by the MMU. Direct memory access to the TEE was
protected by a controller (TrustZone Address Space Controller).
Implemented low-level C and glue layer in the Android OS (JAVA, JNI). The Android NDK
tool was used to build the C code and generate shared library. The shared library was loaded by
the Android application at startup enabling the Android application (JAVA code) to use
underlying C functions.
Ported Android OS to Arndale HW platform. The hardware platform was received bare and the
task was to port the Android source code and make running.
The work also included giving workshops and teaching the customers how to develop Trusted
Applications as well as explaining the Eco system of the Security Architecture (production stage,
authentication keys, device bindings, backend servers etc.). The customers were from different
regions of the world and the work was in an international environment.
Built source-code of a QEMU version, which emulated ARM TEE, using gcc. The existing code
had to be modified to enable the emulator to run. The Secure Operating system was booted up
and run in QEMU as well as Trusted Applications which were executed in the same
Mobicore (Secure Operating System)

Ubuntu, Windows 8, Android, C, C#,C++, JAVA, SQL, git, JBoss, SVN, Eclipse, Bash

09/2011 - 11/2011

Industry Sector:
Consulting, Telecoms

Software Architect and Developer


Prestudy of how to develop accessory for iPhone. The work was to estimate how long it would take to do the work, how much it would cost and estimate what type of skills that was needed. 
Design and Architecture - encapusalting software modules and how much from the customer that could be reused etc.
Integration work was included in the study.

Concept of a "web-camera" with 360 degree view as iPhone accessory (never realized).

Mac OS X, C, Objective-C, Xcode, SVN
09/2010 - 09/2011

Industry Sector:
Fingerprint recognition, Image processing

Software Architect, Designer and Developer


Worked as architect, software designer and developer of firmware for accessory, SDK / Toolkit
and application for iPhone. The programming language used for iPhone application and toolkit
was Objective C and the programming language for accessory firmware was C. The firmware
was communicating with secure elements on a smartcard and a fingerprint scanner. POSIX API
was used creating threads and semaphores.
In the concept/starting phase Velibor was the only software engineer/developer in the project and
was working closely with a hardware engineer in order to choose a suitable micro-controller for
the accessory, not to consume to much power but to be powerful enough to process scanning and
stitching of the fingerprint as well as communicating with Authentication co-processor and with
the iPhone. Xcode was used for developing iOS software while CrossWorks was used for
developing firmware for the micro-controller (STM-32).
The work also included introducing the developers (new developers joined the project) to
Objective C and teaching them how to develop SW for iPhone.


Tactivo - Fingerprint scanner as iPhone accessory.

Mac OS X, C, Objective-C, Xcode, SVN, Crossworks
05/2010 - 09/2010: Courseware, Android porting guide

Industry Sector:
IT Education

Development, Education


Development of courseware in how to port Android to hardware platform and a guideline was written in how to download and compile the Android kernel code. 


Mac OS X, C, Objective-C, Xcode
01/2009 - 04/2010: 

Industry Sector:

Software Architect, Designer and Developer


Analysis and design of a concept including NFC module integrated within an armband for cruise
ships and Hotel industry. Two patent applications were filed (however not approved). The
requirements were based on feedback from Hotel Managers.
Integration of Google Android to TI OMAP platform. The work consisted of downloading the
Android source code (using git) as well as linux driver source code, cross compiling the kernel
and the Android source code. Modifications to the Kernel code and Linux drivers had
repetitively to be performed, as the work progressed. U-boot on the platform was set up to
communicate with the work-machine over OpenSSH. U-boot was used to flash the compiled
Android images on the board.
Developing device drivers (over i2c) for 3D Axis module and RFID reader in order to add an
RFID API for Android (which at that time did not support NFC). The Android NDK was used to
generate JNI layer so that the JAVA code could communication with C code. The Android
application loaded the generated (by NDK) shared library at startup.
Developed Linux and Android course packages in cooperation with Fujitsu-Sweden.
Object recognition demonstration application using OpenCV library was developed for Linux.

Android SDK, C, Eclipse, git, Linux, U-boot, OpenCV
06/2006 - 01/2009: Project Title...

Industry Sector:
Telecoms, Mobile platforms

Software Architect, Designer and Developer


Design and architectural work of application interfaces and components for the IP Multimedia
Subsystem (IMS). The components which were defined as Ericsson Interface Description
Language (EIDL) files, were compiled by internal (Ericsson) compiler which generated
middleware code for IMS. The project was managed using SCRUM where weekly work-
packages were defined.
Performed system design of Application Lifecycle Management for OPA (open platform
application) integrated with Limo and Android environment. The task was to choose the best
suitable software framework for ST-Ericsson platforms. The team consisted of eight persons that
theoretically and practically analyzed the problems and used creativity to find a solution. The
work consisted also of hands-on tasks such as high jacking the HAL layer, which was using OSE
RTOS to use real-time functionality in Linux. New functionality was implemented as well.
Analyzed open source software and developed Linux applications and ported open source code
to ARM processor architecture as well as analyzing Linux OS concept and porting EMP code
(running on OSE) to Linux OS.
Experience in porting Linux Source code as well as Android to ST-Ericsson Hardware
Performing automated tests of functionality using Android tool (Monkey Tests).
Design and development of an internal compiler that generated C code from EIDL files. The
EIDL files contained interface descriptions. The compiler was parsed the EIDL files and generated C files. The compiler-code was implemented using C++.

Mobile platforms

C, C++, Linux, Scratchbox, Busybox, GDB, GTK+, D-Bus, Qemu, Win32, Eclipse
Projects Earlier
The list below is in reverse chronological order, most recent first:
* Architect and technical advisor for NEC. Helping NEC solve technical issues and participating at meetings with Ericsson on the behalf of NEC. Reporting to Tokyo. (EMP platform)
* Software architect. Architectural research on integration of Settings and Provisioning service and application of Teleca mobile suit Obigo? on Open Platform from Ericsson (Doors, Obigo, EMP Core Applications).
* Technical expert at sales meetings. Explaining how to integrate Teleca software modules into Panasonic software framework as well as explaining the Instant Messaging and Presence modules (Obigo? Framework, IMPS).
* Porting Obigo? Suite from PC simulator to ARM target (Toshiba 3G handsets) and start it up on the target (Sophia Systems debugger, embedded C, Enterprise Architect)
* Software architecture, development and integration of IMPS (Instant Messaging and Presence), MMS and Unified Message box clients for Toshiba 3G handsets, partly at costumer site in Tokyo (Obigo?, IMPS, TCP/IP and HTTP protocol analysis)
* Software development, bug fix and customization of MMS for Toshiba 3G handsets (Obigo, C, MMS, TCP/IP and HTTP protocol analysis)
* Software development, bug fix and customization of Unified Message Box for Toshiba 3G handsets (Clearcase, C, MMS and SMS simulator)
* Development of Video telephony client (Lauterbach, 3G-H324M, C)
* Development of streaming protocols (Lauterbach, RTSP, RTP, C)
* Development of SIP protocol (SIP, Lauterbach, ClearCase, Trace 32, C)