Software Engineering experience in embedded, automotive, wireless, industrial, telecommunications, smartphones, web, C/C++, Bluetooth, Qt/QML, C#, Linux, Android, open source, scripting.
Management experience: team leading, line management, interviewing and hiring, customer interfacing, invoices, contractors.
Senior Embedded Software Engineer
2017-07 - present
Development of embedded software on Renesas RH850, RL78 and NXP LPC1768 microcontrollers, TI CC2540/CC2650 wireless controllers.
Bluetooth Low Energy, CAN, LIN, keyless entry/passive entry.
Green Hills and IAR C compilers.
Develop a passive entry prototype with accurate and fast proximity detection of multiple users with Bluetooth LE.
Senior Software Engineer
2012-07 - 2017-06
Development of new features, bug fixes, customer support and testing for the Blue SDK Bluetooth stack - Classic Bluetooth and Bluetooth Low Energy. This stack was formerly known as iAnywhere.
Improvements and new feature development for protocols and profiles such as HID, PAN, SPP, SAP, AVRCP, VVMP.
Wrote an IPSP (6LowPAN IPv6 over Bluetooth LE / Internet Protocol Support Profile) implementation from scratch, one of the first currently in existence.
Attended IOP testing conferences (UPF) 4 times in Berlin, Barcelona and Atlanta. Did validation testing on multiple profiles and protocols. Used tools such as Frontline CPAS, PTS, Codenomicon Defensics.
Integrating virtualized operating systems for boards based on Freescale I.MX53 and I.MX6 SoCs.
Blue SDK Bluetooth stack and WiFi chip integration into an infotainment system based on virtualized Android.
Virtualized Linux and Android development for the automotive industry, customer training workshops, SW and HW supplier interfacing, developing infotainment system prototypes.
Teleca Germany GmbH
R&D Site Manager, Berlin
2011/07 - 2012/04
Starting Teleca's new Berlin office, hiring software engineers, line manager role, supervise multi-site projects, bid work, act as a customer interface, represent the company in technical events, approve invoices. Our team implemented projects with technologies such as NFC, in-door navigation (HTML5 mobile app), automotive, smart home/energy metering for Android, and location based services.
I was also the lead Qt expert and trainer in Teleca Germany.
Teleca Germany GmbH
2010/10 - 2011/06
Supported Teleca in preparing bids, competence development and contributed technical expertise in the areas of Qt and MeeGo.
Cybercom Group Oy, Finland
Senior Software Design Engineer
2001/05 - 2010/09
Implementing the Nokia N9 Gallery application using Qt, including unit testing, test driven development, debian packaging, git, continuous integration and test automation systems for 2.5 years
Earlier projects briefly:
- an Automotive Head Unit that interfaces with vehicle subsystems using CAN, CANopen, ethernet, serial and other buses and which runs on Linux with Qt Embedded on top of the frame buffer device. Robustness and boot-up time optimization. I designed the system architecture including the decision to use Qt, 1 year.
- an C#/.NET data collecting application on a touch-screen Windows based Tablet PC, 1 year.
- a remote diagnostics system for CAN devices (ship cargo handling equipment) using Linux and a C++ application with web, SMS and e-mail interfaces, 1 year
- network technology consulting (SCTP protocol for IP telephony signaling plane) for a TETRA network and handset equipment maker, 3 months.
- Nokia Networks GPRS/EDGE network element (BSC-SGSN) real-time software design, implementation in C language, test planning and testing. BSSGP/NS layer protocols, IP transport, 4 years.
Multimediatoimisto Kuulalaakeri, Finland
2000/02 - 2001/04
Designing and implementing intra-, extra- and internet applications
mainly with PHP and MySQL or Oracle. Some C++ and Perl development,
and Unix server maintenance. Real-time stock exchange information system in C.
1999/09 - 2000/03
Free-lance Web Application Developer (Perl)
1998/12 - 1999/06
Development of Nokia Telecommunications' database reporting using
the Business Objects tools. Rewriting and fixing legacy Oracle
reports for Y2K compliance using Perl.
Familiarity with Java and Python
Operating systems: Linux since 1993, Maemo, MeeGo, Android,
FreeBSD, OpenBSD, ChorusOS, PikeOS, ELinOS, Mac OS X, Windows 3.0 - 10
Freescale i.mx53, i.mx6q ARM boards, Raspberry Pi
Databases: MySQL, PostgreSQL, Oracle, Firebird, SQLite, Gnome.org tracker
Bluetooth Classic and Low Energy
Android Platform Wifi and Bluetooth frameworks, RIL telephony framework
TCP/IP networks and protocols, including SCTP
GPRS/EDGE core network protocols
CAN and CANopen protocols
Tools, libraries, frameworks:
Bluetooth Profile Tuning Suite (PTS), Codenomicon Bluetooth test suites, Frontline protocol analyzer (FTS) for Bluetooth
Android platform/native development
GNU tools (gcc, gdb, gcov, emacs, etc.)
git, ClearCase and Subversion version control systems
Qt, QML, Qt Quick, Qt embedded
Debian .deb packaging
Emulators: Qemu, bochs, pearpc
Scrumworks Pro, Bugzilla
ZEND Framework, NetBeans, Eclipse
Apache webserver and related modules
Visual Studio 2005, 2008
Traditional waterfall model
SalesForce, NetSuite, Dynamics AX
Embedded industrial applications
Managing Remote Teams
Two-day course about managing remote/virtual teams and remote communication
Organizer: Global Integration
Training the Trainer
Two-day course for technical trainers on how to be an effective trainer.
Advanced Qt training
Two-day course on advanced Qt topics.
Organizer: Reaktor Innovations
Two-day hands-on course on tdd principles and real-life usage.
Organizer: Teleware, prof. Hannu Kari
One-day advanced course on GPRS features and issues
Three-day course on GPRS signaling plane protocols
Advanced C for embedded systems
Two-day course focusing on advanced topics in programming
portable, optimized C code for embedded systems.
Three day Oracle SQL course.
C basic course
Organizer: Kotka Polytechnic
Basics of the C programming language