Resume
CONTACT INFORMATION
Nikolai Golovchenko
7375 Rollingdell Dr Apt 12
Cupertino, CA 95014
Phone: (408) 996-9043
E-mail:
resume@golovchenko.org
OBJECTIVE
A challenging hands-on software development position that will utilize
my expertise and provide opportunities for further career development.
SUMMARY
-
MS in System Engineering with 10+ years of industry experience;
-
Embedded software development using C, C++, and Assembly;
-
Code optimization for various constraints, such as: low power,
speed, and limited memory;
-
Real-time and multi-threaded environments;
-
Expertise in assembly language for 8-bit and 16-bit microcontrollers
(math routines, fixed and floating point number representation,
approximate computations);
-
Algorithm prototyping in MATLAB and C++;
-
Digital signal processing (DSP) using low cost microcontrollers;
-
Linear algebra techniques (interpolation, least squares fit, etc);
-
Development of PC-based software tools for simulation,
modeling, rapid algorithm prototyping, automated testing of
hardware and software, data analysis;
-
Experience with the full life cycle of a product - from a concept to mass production;
-
Co-author of five granted patents and several patent applications in the field of capacitive touch sensors:
7218124, 7479788, 7545289, 7548073, 7688080.
-
Specific tools and software environments:
-
Operating systems: Windows, Linux;
-
Compilers: MS Visual Studio C++, gcc, various embedded compilers;
-
Scripting languages: Makefile, bash;
-
Source version control and bug tracking: CVS, Bugzilla;
-
GUI toolkits: Win32, MFC, WTL, VCL, MATLAB;
-
Web related software: Apache web server, HTML, CGI;
-
CPUs: Intel x86, Microchip PIC, Ubicom SX, TI MSP430, Cypress PSoC, ARM Cortex;
-
Communication protocols: I2C, SPI, RS232, RS485, PS/2, USB, CAN-bus,
GPIB, Manchester, Ethernet;
-
Instruments: in-circuit debuggers, oscilloscopes, logic analyzers, function generators,
spectrum analyzers, environmental chambers, XY tables, etc.
WORK EXPERIENCE
Research in Motion, www.rim.com, November 2008 - now. Senior Firmware Engineer.
- Developed an internal multi-touch touchscreen solution:
- Highly efficient firmware, ported across all available controllers on the market;
- A suite of software tools for development, debug, and testing in all stages
of the mass production;
- One of the implementations is a single-chip 7" touchscreen based on Cypress TMA300
controller for Blackberry Playbook, unmatched in performance by other vendors
including Cypress' own solution and Atmel;
- Filed multiple patent applications.
Synaptics Inc, www.synaptics.com, August 2004 - October 2008. Senior Systems Design Engineer.
-
Architect and main developer of the firmware for OneTouch chips, the
configurable capacitive sensing chips.
Created a new code base to transfer development from assembly to C.
Created an innovative test infrastructure to validate the new C compiler
(in-house port of gcc), which involved writing a portable firmware for
two targets - PC and the chip.
Accelerated the development process by making it possible to develop
and exercise the firmware on a PC in real time. Demonstrated that the
code developed in C can be more efficient that the previous assembly code base.
-
Designed PC-based hardware characterization applications to take the OneTouch
chips to mass production. The applications included
communication, EMI, PSR, and environmental chamber tests.
-
Created system level modeling tools for the capacitive touch sensors.
The sensor model predicted
the response of a sensor to a finger. This model enabled a particularly
rapid prototyping framework of the whole system, including sensor design and
data processing algorithms. The development time was reduced from several weeks
spent on the PCB design, manufacturing and characterization to several minutes
of simulation. The model derivation involved automatic processing of multi-megabyte
data sets and design of a constrained least-squares fit algorithm.
Synaptics Inc, www.synaptics.com, July 2001 - July 2004. Firmware Engineer.
-
Completely redesigned the TouchPad algorithms, which resulted in markedly
improved position accuracy and noise immunity. Implemented the new algorithms
in the next generation TouchPad firmware, which became a new production
code base. The success was largely due to the creation of a real-time, PC based
algorithm prototyping framework and MATLAB tools for data analysis.
-
Developed a series of tools in C++ to automate various tasks including:
programming Flash microcontrollers, temperature oven tests, EMI and power
supply noise tests, PS/2 protocol compliance tester, firmware tuning,
XY table scanner, etc. The tool development required solving the problems
of interfacing to external measurement instruments, stepper motors,
accurate time control, design of a reusable object-oriented C++ library.
-
Improved the existing TouchScreen firmware to a production level, which
enabled a design win at Diebold.
-
Designed electrical circuits and firmware for a pointing stick product
using strain gauge resistive sensors. Successfully solved
multiple challenges, such as low cost, electro-magnetic noise immunity,
small signal measurement (10 microvolt resolution), drift compensation
algorithm, capacitive stick firmware integration, established competitors
(IBM TrackPoint and Alps Stickpointer). Related skills: analog circuit
design and PCB layout, Synaptics ASIC assembly language, signal processing
algorithms prototyping and testing in C++ and MATLAB.
Lane Systems LLC, www.lanesystems.com, March 2001 - June 2001.
Embedded System Consultant.
-
Consulted on BarBanker, the liquor monitoring system. Responsible for
design of an ultra low power tap sensor using an Analog Devices accelerometer,
with an RF data link. The tasks included
electrical circuit design, component selection, firmware design in
assembly and C language for an MSP430 microcontroller. Prototyped
a wireless communication protocol on the microcontroller and PC side.
James Newton's piclist.com Web Site, February 2000 - July, 2000.
Software Consultant.
-
Created web based code generators to produce highly optimized code in Microchip PIC
and Scenix SX assembly. Written in C++ as CGI applications:
EDUCATION
1995 - 2000. National Mining University of Ukraine.
System Engineer, Computerized Automated Control Systems.
Equivalent to a Master's degree in System Engineering.
1991 - 1995. Dnepropetrovsk College of Automatics and Telemechanics, Ukraine.
Electrical Technician, Numerical Controls and Robotic Complexes.
Equivalent to an Associate's degree in Electronics.
References available upon request