Resume and cover letter (Embedded Systems)

Покритикуйте пожалуйста резюме и cover letter.

[RIGHT]My name
Phone: +1 (xxx) xxx-xxxx
E-mail: my@mail.com

February 2, 2013[/RIGHT]
<First name Last name>
<Title>
<Company name>
<Address>

Dear Mr. <Last name>:

I have a diverse background in software development that can be used to meet your company’s immediate and long-term needs. With the unique perspective of an Embedded Systems Software Engineer, I am a versatile and analytical thinker with strong interpersonal skills. I also have extensive experience in working successfully with PC software development.

Throughout my career I have been known as a quick learner, self-starter, problem-solver, and a dedicated results-oriented worker with strong conceptual and design skills. I have demonstrated my ability to handle a variety of tasks effectively and deliver on deadlines. Although I work well independently, I am equally comfortable working as part of a team.

I have enclosed a copy of my resume for your perusal. I’m currently living in Russian Federation, but would like to move to the U.S. Thank you for your time and courtesy in reviewing this material and for your consideration of my qualifications for the open position. Please contact me at your earliest convenience so that I may share with you my background and enthusiasm for the position.

[RIGHT]Sincerely,

My name[/RIGHT]

Enclosure

My name

[RIGHT]Current location: Moscow, Russia (willing to relocate to any location within the U.S.)
Phone: +1 (xxx) xxx-xxxx
E-mail: my@mail.com
LinkedIn profile: http://lnkd.in/xxxxxx[/RIGHT]

Embedded Systems and PC Software Engineer

Summary
Experienced IT professional with expertise in software design and development for embedded systems and PC. Specialized skills in developing real-time, multitasking, high performance, low power microcontroller-based systems with or without RTOS, PC-microcontroller and multi-microcontroller systems communicating through USB, UART, I2C, and CAN interfaces, embedded systems with an RF interface. Expert knowledge of MS Windows operating systems. Experience working through the entire development cycle.

Skills
• Microcontrollers: Microchip PIC24, PIC18, and PIC16; STMicroelectronics STM32 (ARM Cortex-M3).
• Languages (MCU): C, Assembly.
• Languages (PC): C/C++ (.NET Framework, Win32 API, MFC), C#, Java.
• Development Environments: Microsoft Visual Studio, Microchip MPLAB IDE, IAR Embedded Workbench for ARM, Eclipse, Oracle NetBeans.
• Hands-on experience with peripherals: ADC, NAND Flash Memory, LED Indicator, OLED Display, Resistive Touch Panel for Touch Screen, RF Transmitter, RF Receiver, Charge Management Controller, Real-Time Clock, Digital Thermometer, Beeper, Vibrator.
• Hands-on experience with interfaces: USB, CAN, UART, I2C, RF.
• Additional experience programming for mobile phones using Java (Android SDK and J2ME).
• Familiar with web technologies: HTML, CSS, JavaScript, PHP, MySQL.

Experience
XYZ, Inc., Moscow, Russia
Software engineer in R&D Department, 2009 - Present
Responsible for software architecture and design, implementation, debugging, hardware testing, troubleshooting, redesign recommendations, and maintenance.
• Designed and developed MCU firmware for Hand-Held Units (HHU) that controls a car alarm. The HHU is based on PIC24 MCU and has OLED display, flash memory, touch screen or 5 buttons (depending on the model), beeper, vibrator, ASK radio transmitter and receiver, rechargeable li-ion battery and charge management controller. The firmware, including drivers for all of these hardware components, was written entirely by me from scratch. The HHU allows users to control the car alarm through over 40 graphic menus and to receive alerts and notifications by displaying animations, static pictures, and icons. The software supports multitasking for real-time tasks such as displaying animations with constant frame rate, receiving or transmitting radio signal, playing melodies, and handling user input by using ADC for touch panel and GPIO for buttons. The HHU and alarm’s main unit communicates with each other by a proprietary radio protocol, which uses Manchester code. Messages sent through the radio interface are encrypted; 64-bit individual keys are used for encryption. The firmware is optimized for very low power consumption, so the HHU can work on 560 mAh battery without recharging for several months. The software was written in C, no third-party RTOS was used.
• Designed and implemented software (for 3 of total 4 MCUs and PC) and designed part of schematics for a universal automatic test jig for car alarms. The test jig consists of 3 modules which can be used in different configurations. UART interface is used for communication between the modules, and USB interface - for communication between the main board and PC. The HID class is used for USB interface, therefore no driver installation is required for supported Windows OS’s (2000, XP, Vista, and 7). The PC software works in one of three modes: manual mode, automatic mode, and learn mode, it can also measure intervals between any signals from alarm’s main unit and HHU with 4 ms accuracy. Automatic mode can test a car alarm without human attendance, it uses predefined, manually written or created by “learn mode” testing algorithms. These algorithms are custom language scripts. Support for new car alarms can be added by creating new scripts, no modification of software or hardware is required. Software for PIC18 was written in C, for PIC16 - in Assembly, and in C++ using .NET Framework - for PC.
• Designed and developed software (for MCU and PC) for CAN bootloader. The bootloader is used for firmware updates on STM32F1 based devices connected to a CAN-bus. The software includes Windows application (written in C++ with .NET Framework) and STM32F1 MCU’s software (written in C). A USB-CAN bridge is used to connect PC to a CAN-bus. The bootloader can program any individual device (if the bootloader software is included in its firmware) connected to a CAN-bus. A specific device for reprogramming can be selected in the PC application from the list of devices found on a CAN-bus or specified manually. The software automatically performs verification of written firmware.
• Wrote software for a Hand-Held Unit (HHU) that controls the car alarm. The HHU is based on PIC12 MCU and has ASK radio transmitter and buttons. The software was written in Assembly.
• Designed and implemented PC software and MCU firmware for downloading pictures to OLED HHU’s flash memory. The program transfers pictures to HHU through a serial interface and creates a header file that is required for HHU’s projects to use the pictures. The software was written in C#.
• Developed MCU software for a test jig for OLED HHU. The test jig is used during HHUs production to check if all hardware components are working properly. The test jig is based on PIC18, the software was written in C, OSA RTOS was used.
• Maintained, enhanced, and added support for new car alarm models to PC applications for configuring and identifying alarms. Programs were written in C#.
• Developed two applications for Android smartphones and one - for phones with J2ME support. These three programs were written in Java and are used to control GSM/GPS modules. Commands are sent to the modules by SMS. Applications for Android analyze incoming SMS from the module and can perform action depending on the SMS content (for example, display map using Google Maps API with coordinates from SMS).
• Wrote PC software for testing interface between car alarms and modules connected to car’s CAN-bus. The software was written in C#.
• Developed MCU/PC software for determining battery capacity, including capacity vs. voltage characteristic. The MCU software was written in C and PC – in C++ using .NET Framework. USB interface (HID class) is used for the PC – MCU interface.

Education
M.S., Computer Science, 2009
Novosibirsk State Technical University, Novosibirsk, Russia

Employment Authorization
New H1B visa sponsorship required.