VLAD VICTOR UNGUREANU

Embedded Device Programmer

Summary

I am an embedded systems programmer with a strong background of low-level programming and considerable experience in networks and protocols. I am passionate about developing and integrating new solutions that comply with end device specifications. I am keen to participate in the development of a long term project

Skills

Advanced knowledge

C - 3 years experience

C++ - 2 years experience

Linux - Everyday user

Intermediate / Basic Knowledge

Python - 1 year experience

Java - 1 year experience

SML - 1 year experience

Work Experience

Embedded Software Developer Intern

Texas Instruments

Jun 2014 - Aug 2014

I improved the work flow of automatically generating header files for a new ARM CortexM chip. I put up an Open Source development environment based on GNU ARM for Linux and Windows. Also developed a flash driver for OpenOCD in order to flash code on a CortexM chip. Wrote multiple test cases and did code profiling on accessing chip registers in 2 ways. I also developed a configuration tool in Qt that enables the user to set-up the security features of a specific target. All my work has been done in C, ARM Assembly and C++. The scripting part has been done in TCL.

Sept 2013 - Present

Club’s Vice-President at Jacobs University

Computer Science Club

Aug 2013 - Present

Presenting new students the concept of Internet of Things and engaging them into the Open Source community.

Google Summer of Code Student - BeagleBoard.org

May 2013 - Sept 2013

I developed an Android app that communicates with a BeagleBoneBlack, allowing it to boot over USB. Upon boot, the Android device pushes a micro-kernel, which emulates a serial device. This is used to download the filesystem and full kernel image. Next, I ported this from Android to Linux. Development was done in Java (Android SDK), along with some C (patches to Android kernel, libusb, Linux-port).

Embedded Developer at Electro Univers

Part-Time Job

Sept 2008 - Jun 2012

I developed a diagnosis and recovery system for IP surveillance cameras in a closed network. I implemented a polling HTTP server and a Windows application which monitors the overall status of the cameras, providing alerts and recovery options. The server was implemented in C, while the Windows application was done in C#.

Developer for FFmpeg / Libav

Google Code-IN 2010

Nov 2009 - Jan 2010

I worked on improving test coverage across FFmpeg/Libav codecs. My tests improved coverage from 20% to 60%. I also worked closely with codec maintainers to remove bugs related to playing corrupted files. All work was done in C.

Education

Jacobs University Bremen

2012 - Present

Bachelor of Science - Computer Science

Colegiul National "Roman-Voda"

2008 - 2012

Computer Science profile

Top student of the class

Projects

Mentor for BeagleBoard.org GSoC 2014

I took the GSoC challenge to the next level and applied as a mentor for BeagleBoard.org. The student I have mentored worked on a remote display over USB for the BeagleBone Black. I have helped him with the development of a USB Kernel driver, a framebuffer driver and an Android application. My tasks were to monitor the progress of the project, do code reviews and guide the student in finding the best solution to the problems that were encountered.

jWakeUpCall

As President of the Computer Science Club of Jacobs University Bremen I proposed a smart wake up call system that the students will use during the midterm and final periods. With interested members from the club we have designed the architecture of the system and are currently implementing it. The platform on which the system will run is an embedded Linux board made by BeagleBoard.org.

Mars Rover

I developed and implemented an AI language for a Mars Rover simulator. The language is interpreted on the client, which sends commands to the rover over the network, guiding it around obstacles. Programming was done in C++.

CLAM

I developed a system that aides an instructor with quiz administration. Quizzes and account information are stored on the server, while a client application (Windows/Linux) is used to login and perform actions. Students can take quizzes, view results, while instructors have more privileges. The grading is done automatically by the software. This project was done during the Introduction to Information Systems course and the implementation was done in Ruby.