Resume of Andrey Farafonov

Objective

Position of software and electronics engineer in the domain of real-time embedded microprocessor systems.

Experience

I have more than 20 implemented large projects, and development experience in the following realms:

Electronics:

  • industrial automation and measuring systems (workflow automation, CNC system and electric drives, temperature, vacuum and motion measurement);
  • security systems: alarms, access control (Proximity card, iButton), video monitoring, GPS monitoring, monitoring and control with using of wire and cell telephone networks (modems, DTMF and voice codecs, GSM/GPRS modules);
  • development of digital, analog and mixed electronic devices, including the full development cycle from design and circuit calculations to laying out of printed circuit boards (PCAD) and design of housings and other elements of construction (AutoCAD, SolidWorks). Prototype production, including PCB production, soldering and adjusting, using measurement instrumentation (oscilloscopes, multi-meters, signal analyzers, etc.).

Micro-controller programming:

  • multitasking, strict real time;
  • mathematical algorithms (multi-axe interpolation, servo;drives, discrete PID control);
  • network protocols (Modbus, MicroLAN, CAN, TCP/IP);
  • custom interfaces (modems, GSM/GPRS and GPS modules);
  • visual and voice user interface;
  • connection to PC (COM, USB, LPT);
  • microprocessor platforms: x51, AVR, ARM7, Cortex M;
  • programming languages ASM, C/C++;
  • development environments: ImageCraft, CodeVision, Keil, Franklin, AVR Studio.

PC Programming:

  • multitasking, multi-threading, OOP;
  • PC communication ports (COM, USB, LPT);
  • network protocols (Modbus, TCP/IP);
  • databases (SQL, OLEDB, ODBC);
  • digital video and audio: programming (DirectShow), editing (VirtualDub, CoolEdit, etc.);
  • programming languages ASM, С/С++, C#, Java, Pascal / Object Pascal, SQL;
  • development environments: Turbo C, Delphi, C++ Builder, MS Visual C++, Eclipse / Momentics;
  • operating systems: MS DOS, MS Windows, Linux, QNX;
  • version control software: CVS, SVN, Perforce;
  • writing HTML documents by means of the following technologies: CSS, SSI, CGI, JavaScript; basic skills of Linux and Apache remote administration;
  • knowledge of office programs and graphic editors: MS Office, Adobe Acrobat, CorelDraw,etc.

PLC Programming:

  • software configuration and development of industrial automation systems based on programmable logic controllers (PLC) Siemens Simatic, Schneider Electric Modicon, CoDeSys based (Owen, IFM) using languages of standard IEC-61131-3 (STL, LAD, FBD, ST, SFC), knowledge of development environments Step7, TIA Portal, UnityPro, CoDeSys.

Education:

09.1985 – 02.1993
Full time study at Kharkov aviation institute, radio engineering department. Specialist diploma “Construction and production of radio-electronic devices”

Employment history:

04.2010 – now.
Freelancing
Position: electrical, electronics and software engineer in the field of industrial automation systems.

10.2008 – 04.2010.
State Enterprise Mykolayiv Scientific Research Gas Turbine Production Complex ‘Zorya’-‘Mashproekt’, Scientific Research and Technical Support Center of Vacuum Technology.
Position: senior electronics engineer
Responsibilities: developed automation systems for modernization of technological vacuum equipment (evaporation system and electron-beam welding).

09.2007 – 06.2008
“IntroPro” LTD, Kyiv
Position: senior programmer.
Responsibilities: maintenance of embedded software for satellite TV set top box (C++, Java, Linux).

03.2007 – 09.2007
AU “Luxoft UA”, Kyiv
Position: senior programmer.
Responsibilities: maintenance of embedded software for automotive multimedia (C++, QNX).

03.2006 – 12.2006
AU “Melexis-Ukraine”, Kyiv
Position: software engineer.
Responsibilities: development of software libraries (C, C++) for a proprietary processor MLX16.

12.2004 – 02.2006.
State Enterprise Mykolayiv Scientific Research Gas Turbine Production Complex ‘Zorya’-‘Mashproekt’, Scientific Research and Technical Support Center of Vacuum Technology.
Position: senior electronics engineer
Responsibilities: developed automation systems for modernization of technological vacuum equipment (melting furnaces, heat treatment furnaces, evaporation system and electron-beam welding, etc.).

10.2002 – 10.2004
“Smart Systems” LTD, Mykolayiv
Position: designer engineer, project manager.
Responsibilities: development of intellectual security systems.

05.1993 – 10.2002
State Enterprise Mykolaiv Scientific Research Gas Turbine Production Complex ‘Zorya’-‘Mashproyekt’, Maintenance and Repair Service.
Position: electronics engineer, senior electronics engineer
Responsibilities: maintenance troubleshooting, repair, adjustment and modernization of CNC machining tools.

Some projects:

  • Development of PLC hardware and software for automated system of vegetable oil station. The PLC provides automatic control of 2 oil pumps 15 kW, 7 valves, 2 flow-meters. The system loads railway oil tanks and truck oil tanks with commercial accuracy. My work in this project included the PLC hardware and firmware development and assembling: based on STM32 CPU module, optically isolated DI/DO modules, isolated RS485 module, isolated HART modem module, WiFi module, software development (PCAD, Keil C/C++) and project management.
  • Development of PLC software for automated refrigeration system for brewery. The PLC provides automatic control of 8 ammonia compressors 100 – 250 kW, evaporating condenser with 9 fans 22 kW and 7 pumps 5 kW, water pump station with 6 pumps 15 kW with frequency converters. The system cools down and supplies water for brewery with specified temperature and pressure for wide range of water consumption by the plant. My work in this project included the PLC software development (MS Visual C#, CoDeSys) and project management.
  • Development of embedded software for precision automation equipment placed on agricultural machines. The PLC software provides data acquisition from sensors like level (fuel, corn, fertilizer etc.), position of instruments (plough, harrow), data from GPS receiver, transferring the data via CAN bus to a panel PC placed at the driver cabin. Panel PC software interprets and vizualizes this data on the display and sends the data to a web server via GPRS modem. My work in this project included software development (MS Visual C#, CoDeSys) and project management.
  • Development of OPC server for ISO-TCP and Modbus RTU field-buses. My work in this project included the software development (Delphi).
  • Development of multichannel digital oscilloscope based on micro-controller (Atmel ARM7) and PLM (Altera) for hobby and educational purposes. The embedded software provides data acquisition from the probe head and transfers the data via USB to PC. The PC software visualizes the acquired signal data and provides a GUI for setting the oscilloscope modes. My work in this project included the software development (Keil C/C++, MS Visual C#) and project management.
  • Development of an automatic temperature monitoring system for an industrial vacuum evaporation unit. The software provides getting of thermo-images from a M9200 thermo-vision camera (produced by “Mikron”, USA) viewing / recording / playing thermo-video files with forward-backward navigation, automatic detection of overheating points in custom defined zones of thermal control. My work in this project included the software development (MS Visual C#) and project management.
  • Development of a multichannel video monitoring system, which uses video-capture cards for adjusting of a manufacturing electron-beam unit. The software provides video stream viewing / recording up to 4 cameras simultaneously, using the DirectShow program interface and the DivX compression codec for recording. My work in this project included the software development (MS Visual C#) and project management.
  • Development of CNC unit for milling machines based on microcontroller (Atmel ARM7), the CNC unit provides motion with the given speed over 3 axes simultaneously, control of speed and rotation direction of the spindle. The software provides manual and program mode support (a program is in standard G-codes, linear and circular interpolation, smooth acceleration/braking, etc.), technological programs loaded from computer. My work in this project included design of diagrams and printed-circuit boards (PCAD), micro-controller software (Keil C/C++) and project management.
  • Development of a Programmable Logic Controller and input-output modules based on Modbus RTU protocol. The PLC and IO modules are compatible with third-party vendor units and SCADA. PLC has a text LCD display, navigation keyboard, RTC, 1..32 MB Flash memory for data and log files, 8 digital input and 8 digital output pins, 2 RS-485 ports for connection to IO modules and SCADA. The PLC is programmed on C language using my own multitask RTOS. Currently the PLC and IO modules are used for modernization of vacuum machines at the ‘Zorya’-‘Mashproekt’ plant. My work in this project included design of diagrams and printed-circuit boards (PCAD), development of micro-controller software (ImageCraft C) and project management.
  • Development of an automation control system for a directional crystallization unit. The system, which is based on a micro-controller (Atmel Mega128), has a text LCD display and a keyboard, provides control of two heating zones according to an assigned process technology, controls a step drive of sinking form, controls matrix printer for graphs printout in a real-time mode. The system has menu-based user interface for input of process technology parameters. RS-485 interface provides the connection to the upper level systems using Modbus protocol. My work in this project included design of diagrams and printed-circuit boards (PCAD), development of micro-controller software (ImageCraft C), and project management.
  • Development of my own multitask operating system, which I use in my projects. The system is real-time with the high switching rate between the tasks (< 10uS, at AVR processor frequency of 10MHz) and it requires little resources. Tasks priority is supported. The system is written in C language, therefore can be ported for any processor and compiler. (Currently the system is ported for processors AVR and x51).
  • Development of movement tracking system for mobile objects. The system is based on the global navigation system GPS. The device is based on a micro-controller (Atmel AVR). It works in black-box mode, information recorded with real-time clock markers into flash memory with the subsequent readout into the computer database MS Access through COM port or remotely through the channels of mobile communication using GSM modem, mapping of the track on a digital map. My work in this project included design of diagrams and printed-circuit boards (PCAD), development of micro-controller software (ImageCraft C) and PC software (C++ Builder), and project management.
  • Development of a centralized automation system for access control (turnstiles, electronic locks) and calculation of personnel working time. The system comprises a network of controllers for iButton/Proximity card readers based on micro-controller (Atmel AVR) connected to PC. The network works in real-time mode with a PC database. The micro-controller software provides simultaneous connection to max 8 Proximity/iButton readers, control of up to 8 locks/turnstiles and monitoring of up to 8 sensors, connection to a remote computer through RS-485 bus. The PC software obtains card codes from the readers in real-time mode, checks their access rights in the personnel database (MS SQL Server) and sends a command for unlocking turnstile/door into the corresponding controller. My work in this project included design of diagrams and printed-circuit boards (PCAD), development of micro-controller software (ImageCraft C) and PC software (Delphi), and project management.
  • Development of multichannel video monitoring system, which uses USB cameras. The software provides video stream viewing / recording up to 4 USB cameras simultaneously, using the Direct X program interface and the DivX compression codec for recording. My work in this project includes the software development (MS Visual C++) and project management.
  • Development of remote control and monitoring system through channels of wire phone lines and mobile GSM communications. The system is based on a micro-controller (Atmel AT90S8535). The software provides control and monitoring, and user interface implementing DTMF codes (codec MT8888) and voice menu (codec MC145480). My work in this project included design of diagrams and printed-circuit boards (PCAD), development of micro-controller software (CodeVision C) and project management.
  • Development of a punched tape reader emulator for old types of CNC machine tools, the reader provides input of technological programs into CNC machine tools from flash cassette and program recording from a machine tool to a cassette (paper tape punch emulation mode). The device, which is based on micro-controller (Atmel AT89C51), has text LCD display and a keyboard. The software implements a file system, provides a file list browsing at the cassette, technological program browsing and a control menu. My work in this project included design of diagrams and printed-circuit boards (PCAD), housing drawings (AutoCAD), development of micro-controller software (Keil С51) and project management.
  • Development of a data collection device on the basis of flash memory cassettes (Atmel AT45DB040) and read-write device based on a micro-controller (Atmel AT89C51) connected to a computer. The microc-ontroller software implements the original file system optimized for flash memory. PC software implements a driver for data exchange with the device through COM port and a file manager. My work in this project included design of diagrams and printed-circuit boards (PCAD), housing drawings (AutoCAD), development of micro-controller software (Keil С51) and РС software (Delphi), development of flash memory file system, and project management.
  • Development of a network based on optically isolated current loop for transferring technological programs from a technologist’s computer to CNC machine. The server software (DOS and Win32 versions developed), running on a technologist’s computer in background mode, cyclically inquires clients about the connection need and provides access to an assigned catalog with technological programs for reading or recording and also keeps log. Clients are PC compatible computers, located directly on the CNC machines, they allow an operator to create a new program and save it on the server, to examine the file list on the server, load a selected program, to edit it and save on the server under new name or transmit to the machine tool through the punched tape reader interface. The client software, that includes file manager, text editor and punched tape reader emulator, is loaded through the network from EPROM after power up, it does not require the presence of disk storage units at the client. My work in this project included design of diagrams and printed-circuit boards (PCAD), development of server software (Turbo C, Delphi) and client software (Turbo C/ASM), and project management.

Languages:

  • Russian, Ukrainian: native
  • English: reading technical documentation – good, writing – intermediate, speaking – lower intermediate, continue studying.

Personal qualities:

responsible, initiative-taking, conflict-free, is able to work in group and independently, study new technologies rapidly and with pleasure.