Senior Embedded Software Engineer • Melbourne, AU
14+ Years of Experience • Master’s Degree in Radio Engineering
Result-oriented accomplished IT professional with a solid track record in design and implementation of safety-critical embedded applications for medical, defence, police, emergency and industrial services. Proficient in C/C++ and Python. Highly experienced in designing and implementation of IoT network protocols with deep understanding of TCP/IP stack. Highly skilled in Agile Scrum methodology with deep understanding of all phases of software development life cycle (SDLC). Possess strong knowledge of different 32-bit architectures of microprocessors (ARM7, ARM9, ARM11, ARM Cortex-M0, ARM Cortex-M3, ARM Cortex-M4, ARM Cortex-A8, PowerPC, XScale), multitasking and Real-Time Operating Systems (RTOS) programming. Highly skilled in adjustment and customisation of Embedded Real-Time Linux kernel and File System, implementing of Linux device drivers. Extremely fast learner with excellent reverse-engineering skills, adept at moving into new environments. Highly motivated team player with strong knowledge of SDLC principles and methods.
- Agile Scrum Methodology
- Unit and Integration Testing, TDD
- Software Development Life Cycle (SDLC)
- RF software development
- TCP/IP Networking
- PCB Hardware Design
C/C++ • Python
Embedded Linux • Keil RTX • ThreadX • FreeRTOS
TCP/IP Stack – L2 (Ethernet, ARP) • L3-L4 (IP, TCP, UDP etc.) • L5 (Sockets)
Linux device drivers • Root Filesystem optimisation (JFFS2, UBIFS etc.)
POSIX threads • timers • mutexes • semaphores • message queues • signals etc.
Git • SVN • CVS
Jira • JAMA • Keil • Eclipse IDE • GNU • EW IAR • GHS Multi • MS VS etc.
Unit Testing • Integration Testing • Test-Driven Development
ARM • TI OMAP • STM32 • Atmel SAM • PowerPC • MSP430 • AVR
3G • 4G LTE Cat.M1 • 4G LTE Cat.NB1 (NB-IoT)
South East Water is a Victorian government utility that's working for every part of the community, supplying water, wastewater and recycled water services to 1.75 million Melburnians. 600+ employees.
Software Technical Specialist, May 2017 – Present
As a Software Technical Specialist, I am responsible for maintaining our network of the OneBox low pressure sewer embedded IoT devices. The network currently consists or ~6,000 devices in the field and growing. My duties include developing the OneBox firmware (STM32) and SCADA PLC software (ISaGRAF), upgrading the OneBox units remotely (over-the-air firmware upgrade), improving stability of 3G and 4G network comms connection to our SCADA server etc.
- Significantly improved the overall stability of the OneBox firmware and SCADA software;
- Improved stability of 3G and 4G mobile network comms to the SCADA server;
- Added support for 4G LTE Cat.1/Cat.M1/Cat.NB1 (NB-IoT) modems (u-blox SARA-R410M and LARA-R280);
- Implemented automatic test framework based on Robot Framework in python for testing embedded devices;
- Implemented support for MicroPython scripting language in OneBox (STM32 microcontroller) as a free alternative for SCADA PLC program;
- Developed a number of tools in Python for over-the-air firmware upgrade, remote debugging, manufacturing testing etc.;
- Participating in multiple HW/FW projects like the Aquarevo OneBox.
Hydrix – Melbourne, Australia
A leading software & electronics design consultancy. Develops the innovative software and electronics embedded in some of the world’s finest mining, industrial, biomedical/scientific and business technology products. 80+ employees.
Senior Embedded Software Engineer, May 2013 – September 2015, May 2016 – April 2017 (3 years 4 months)
My last project in Hydrix was Siemens Radio Interface Unit (RIU) ver. 2.0 project. My responsibilities included analysing software requirements for a new version of the product based on Embedded Linux RTOS, design and implementation of the main Linux software components, unit and integration testing.
Before that I was working on a biomedical Mobile X-Ray System. I was responsible for design and development of the embedded part of the device. The project was developed according to IEC 62304 medical software standard.
Also, I played a key role in another project, which was an industrial sewage pump SCADA Programmable Logic Controller (PLC) for South East Water, one of the largest water and sewerage providers in Melbourne area. The SCADA PLC supports DNP3 communication protocol over TCP and runs SCADA programs created in Schneider ISaGRAF Workbench IDE. It operates as a remote SCADA DNP3 Outstation and communicates to a ClearSCADA DNP3 Master via M2M 3G GSM module. The device has a number of external Digital and Analog I/Os for measuring and controlling different external environmental parameters.
- Designed and captured architecture and firmware for the embedded part of the biomedical Mobile X-Ray system;
- Captured and analysed requirements for SCADA PLC at an early stage, developed a proof-of-concept prototype and proposed the overall solution architecture;
- Ported ISaGRAF PRO Run-time Development Kit (PRDK) virtual machine and Triangle MicroWorks DNP3 Software Library to STM32 microcontroller embedded system;
- Significantly improved quality and stability of internal embedded framework used on various projects;
- Introduced unit testing for many embedded projects and was the main unit testing evangelist for the entire company;
- Implemented a number of software components and drivers for the SCADA PCL controller such us M2M 3G modem, file system, networking etc.
- Captured and analysed software requirements for a new version of the Siemens RIU 2.0 device;
- Implemented all changes for the new version of the product based on Embedded Linux RTOS;
- Reduced support costs by fixing various defects and bugs in the existing version of the product;
- Improved the overall quality of the project by capturing and documenting development procedures and protocols;
Beam Communications – Melbourne, Australia
One of the leading global manufacturers of satellite communication equipment. 30+ employees.
Embedded Software Technical Leader, September 2015 – May 2016 (9 months)
As a Technical Leader, I played a key role in the Thuraya Satellite/LTE Broadband Access Point project. I was responsible for the full SDLC from SW requirements gathering and analysis in Jama to SW architecture design, implementation and testing.
- Lead a cross-functional team of three Embedded Software Engineers;
- Introduced the entire SW process from scratch including:
- Agile Scrum process: JIRA with Agile and Structure plugins;
- Coding standard: Google C++ Style Guide;
- Source code documentation: Doxygen;
- Source code metrics: CCCC;
- Continuous Integration: Atlassian Bamboo;
- Unit testing with code coverage: Google Test/Google Mock;
- Source code build system: CMake and Makefiles;
- Code review: Atlassian Bitbucket and SmartBear CodeReviewer;
- Designed the software architecture in Sparx Enterprise Architect tool using UML 2.0 diagrams;
- Developed a generic reusable C++ framework for Linux as a layer above POSIX primitives (threads, message queues, sockets, mutexes etc.) and libev library. Using this framework in the main application significantly reduced development time and effort;
- Built, tested and stabilised U-Boot bootloader, Embedded Linux kernel and Root File System for ARM Cortex-A8 TI Sitara processor which reduced costs for building and maintaining RTOS for the project;
- Designed and implemented parts of the main Linux application using major design patterns (observer, reactor, state etc.), S.O.L.I.D. principles and C++11 standard.
Etherstack – Sydney, Australia
Provider of wireless communications software to the Professional/Land Mobile Radio and defence industries in Europe, Asia and North America. 60+ employees.
Embedded Software Engineer, May 2010 – May 2013 (3 years 1 months)
I worked as a member of an embedded APCO P25 Channel Controller (CC) and Base Station Controller (BSC) team. My everyday duties included implementation of software modules for ARM and DSP sides of P25 CC and P25 BSC, development and porting of Linux software products to the TI OMAP3530/DM3730 (ARM Cortex-A8, Embedded Linux RTOS) and Intel XScale (ThreadX RTOS). Also, I took a part in development of a new generation wireless SCADA P25 Radio Modem Unit (RMU) with the fully functional embedded TCP/IP stack (L2-L5 network layers) and a portable micro sized battery powered APCO P25 Base Station (GoBox Tactical Repeater) with P25 data and encryption support.
- Ported APCO P25 Base Station stack to the XR25 Transceiver Board (Intel XScale processor) with data and AES/DES encryption support for the GoBox Tactical Repeater project;
- Implemented a number of software modules and peripheral drivers for the Radio Control Board (LPC1778 ARM Cortex-M3 microcontroller) and Radio Transceiver Board (Intel XScale processor);
- Ported TCP/IP stack to the wireless Radio Modem Unit (Intel XScale processor on ThreadX Real-TimeOperating System). Added support for TCP and UDP protocols in client and server modes over the RF P25 Network (SNDCP protocol);
- Developed and built from the scratch U-Boot Bootloader, Linux kernel and Root Filesystem for the new commercial product based on Embedded Linux hardware platform (ARM Cortex-A8 processor);
- Successfully ported existing PC Linux based software product to the Embedded Linux platform, cross-compiled a number of Linux utilities and packets for embedded platform based on ARM Cortex-A8 core;
- Performed optimisation and profiling for Embedded Linux kernel, fixed a number of issues and bugs in the Linux device drivers and improved reliability and performance of the embedded system;
- Implemented Linux driver for controlling the DSP processor (TMS320C64+) from the Linux environment on ARM.
RF Technology – Sydney, Australia
Radio communication equipment manufacturer and provider. 30+ employees.
Embedded Software Engineer, March 2009 – March 2010 (1 year 1 month)
I worked remotely as a member of a distributed team. Designed and implemented a part of the “Eclipse 2” digital next generation APCO Project 25 Base Station with respect of all TIA standards’ requirements. Made preliminary analysis of requirements, designed full scope of documentation (SDD, SDS, STP), implemented automatic tests using Ruby script language. Configured and adjusted RF Test Equipment for debugging and tracing SW/HW errors.
- Developed a solution for delivering received data from the RF DSP part among the Base Stations in shared IP network using unicast/multicast protocols;
- Designed and implemented a fully functional VoIP (ITU G.711 and TIA C4FM codecs) network part of the Base Station with adaptive Jitter Buffer and RTP/RTCP protocols support;
- Added support of the SNMPv2/SNMPv3 protocol to the Base Station;
- Added support of GPS AVL CompassCom protocol for tracking in-vehicle mobile radios with discrete inputs alarms;
- Fixed a number of critical bugs in the network drivers of the Embedded Linux kernel;
- Significantly improved quality of the system by identifying and fixing a number of critical bugs and issues in the Base Station core components and libraries.
A subsidiary division of Aricent International, which is a global leader in communications software. 400+ employees.
Embedded Software Engineer, July 2007 – February 2009 (1 year 8 months)
Participated in porting of the Aricent ISS (Intelligent Switch Solution) network core to the Vitesse VSC7407 switch-core chip. The name of product was “Smart Metro Internet router” for the NEC Corporation (Australian division). Implemented and tested such L2/L3 (OSI model) modules as VLAN (Virtual Local Area Network), Link Aggregation, RSTP/MSTP (Rapid STP & Multiple STP), IGMP (Internet Group Management Protocol). Assigned, coordinated and reviewed the work of 5 junior programmers and QA engineers. Performed automatic testing, software releases building and bug fixing. Also participated in enhancement, support and bug fixing of the Aricent SNS (SIP Network Server) software product.
- Successfully implemented and tested VLAN, LA, RSTP/MSTP and IGMP modules;
- A number of L2/L3 modules were implemented by the Junior Software Engineers under my leadership;
- Due to my close collaboration with the QA team all software bugs in the Aricent ISS were fixed at the earliest possible terms.
The biggest Ukrainian CDMA national mobile network operator. 1000+ employees.
Service Centre Software Engineer, January 2007 – June 2007 (6 months)
Held multifaceted responsibilities to configure, adjust and install different CDMA wireless customer electronic equipment. Improved procedures for the customer terminal’s firmware renewing using reverse engineering of a firmware code.
- Introduced the new methodology for CDMA customer terminals repairing (using JTAG HW interface and direct memory access). As a result many hopeless CDMA terminals were restored.
The biggest Ukrainian manufacturer and supplier of natural gas metering equipment and solutions. 30+ employees.
Embedded Software Engineer, July 2004 – December 2006 (2 years 7 months)
Designed software and hardware architectures for a stand-alone and battery powered Natural Gas Volume Corrector. Developed and implemented firmware for natural gas metering with support of RD 50-213, NX19 mod. and GERG 91 mod. calculation procedures. Using knowledge of SDLC principles I finished this project in a very short term with the excellent results.
- Achieved a very high measurement precision (0.25%) because of skilful usage of a 16-bit Sigma-Delta ADC;
- Due to a reasonable choice of software and hardware architectures, average power consumption was reduced to the level of a few hundreds of microwatts;
- Designed and implemented data formats for storing in the flash memory and transferring to the PC such parameters as temperature and volume of natural gas.
Vinnitsa National Technical University (Vinnitsa, Ukraine)
Master’s Degree in Radio Engineering, 1999 – 2004