A journey of thousand miles begins with a single step.
Senior Desktop C/C++ Developer @ When I joined the desktop ICQ team, there was already a big codebase written mainly in C++, so about 60% of my work was refactoring and fixing a legacy C++ code and 40% was about development of new features using both C++ and web stack (HTML/CSS/JS).
Environment: Win32, Visual Studio, Git.
Personal contribution to the project:
- replacing legacy GUI engine written in C++ with html-driven Sciter GUI engine by TerraInformatica (HTML/CSS/JS);
- GUI development in HTML/CSS/JS;
- connector for Vkontakte social network (C++);
- connector for WIM protocol (successor of ICQ OSCAR protocol) (C++);
- paid content (stickers, themes etc.) management system (C++/HTML/JS/CSS);
- embedded storage engine refactoring and development of new features (C++). From September 2012 to Present (3 years 4 months) Moscow, Russian FederationServer C/C++ Developer @ CQG Trader terminal allows to trade commodities on over one hundred commodity exchanges around the globe. To minimise response time and latency, CQG supports large network of trading and general-purpose servers which are also distributed around the globe. These servers role is to run specialized software, also developed by CQG, which performs routing and processing of exchange offers, serves as a gateway to the specific exchange protocols, handles trading scripts automation etc. Routing performed by the dedicated routing servers which vital part is CQG Gateway.
It's library written completely in C++ that allows applications to interact with messages routing infrastructure inside CQG network.
Environment: Win32/Linux, Boost, Visual Studio, Emacs, CVS.
Personal contribution to the project:
- new mechanism for 'flush' requests processing inside Gateway which is completely separated from the relatively slower 'normal'
- requests processing mechanism and able to route 'flush' requests to an arbitrary CQG network node immediately (C++);
- Gateway performance and throughput rate measurement scripts for various requests (including 'flush' requests) (Python/C++);
- unit/integration tests for the various exchange/auth requests (Python/C++). From August 2011 to May 2012 (10 months) Moscow Region, Russian FederationLead Embedded C/C++ Developer @ Intertraverse dynamometer "Avton.A403" is a 'smart' sensor which stores and processes gathered data on-board. It can be integrated into existing industrial infrastructure by wireless and hard-wire interfaces. The purpose of the sensor is to allow the 24/7 on-line inspection of submersible sucker-rod pumps operation.
I have built a software part of the project (OS and application components) from scratch using C for drivers, C++ for the main components and Python for tests and utilities.
Environment: WinCE 6.0, Visual Studio, WinCE Platform Builder, SourceSafe.
Personal contribution to the project:
- custom OS image based on WinCE 6.0 and SQL Server Compact which is designed to work with proprietary sensor hardware;
- measurement systems drivers (travel and strain transducers, built from scratch) (plain C);
- feeding system driver (I rewrote a driver provided by Microsoft to make it operate with Autograph proprietary sensors feeding system) (plain C);
- on-board sensor data storage and processing modules (noise filtering, cycle detection, evaluation of the secondary data etc.) (C++);
- wireless (GPRS/Email, Bluetooth) and hard-wire (RS-485) firmware deployment modules (C++);
- modules for the wireless and hard-wire integration with the third-party equipment (C++);
- a lot of software for the sensor production (os deployment scripts, final inspection tests etc) (Python/C++). From 2009 to August 2011 (2 years) Republic of Mari El, Russian FederationLead Embedded C/C++ Developer @ "Avton.PROFI" represents dust/gas-ignition-proof cold-resistant (can work at -60C) industrial PDA developed by Autograph on basis of SODIMM-sized computer module "Colibri" by Toradex. Its main application is to control various industrial equipment remotely during field operations on oil and gas fields.
I have built a software part of the project (OS and application components) from scratch using C for drivers, C++ for the main program parts and Python for tests and utilities.
Environment: WinCE 6.0, Visual Studio, WinCE Platform Builder, SourceSafe.
Personal contribution to the project:
- custom OS image based on WinCE 6.0, SQL Server Compact and .NET Compact Framework which is designed to work with proprietary sensor hardware;
- display and display backlight drivers (built from scratch) (plain C);
- feeding system driver (I rewrote a driver provided by Microsoft to make it operate with Autograph proprietary PDA feeding system) (plain C);
- modified Bluetooth driver with Autograph proprietary security protocol (plain C);
- a lot of software for the PDA production (Python/C++). From 2009 to August 2011 (2 years) Republic of Mari El, Russian FederationDesktop C/C++ Developer @ ActiveSWF is a compiler which allows to create Adobe Flash (.swf) applications from a source code written in XML and Active Script. Project was 100\% C++ and had been handed to me by the previous developer, so, from then on, I had been the only project developer.
Environment: Win32, Visual Studio, SVN/CVS.
Personal contribution to the project:
- support for WMA and OGG multimedia formats (C++);
- memory management system refactoring (custom heap, allocators, smart pointers etc.) (C++)
- improvment audio filtration/resampling algorithms for better sound quality (C++);
- transferring graphics processing subsystem on DevIL (former OpenIL) library to increase the number of supported graphics formats and filters and to improve graphic filters quality (C++);
- .Net and COM wrappers for the compiler (C\#/C++). From 2007 to 2009 (2 years) Republic of Mari El, Russian Federation
P.G., Computer Science @ Institute of Control Sciences (ИПУ РАН) From 2009 to 2013 инженер-программист, программное обеспечение @ Марийский Государственный Технический Университет (МарГТУ) From 2002 to 2007 Petr Shurhovetski is skilled in: C++, C#, Python, SQL, OOP, Software Development, Agile Methodologies