- A senior developer/consultant position in a goal-oriented team where talent is an asset (Toronto and GTA).
- Experience and solid scientific background: can work with a high degree of autonomy.
- Responsibility: when I am best suited for a difficult task, I never try to avoid it or push it over to someone else.
Geotab (Oakville, ON)
March 2016 - present
Design and develop telematics solutions.
Citigroup (Mississauga, ON)
August 2011 - March 2016
Led the SNL Portfolio & Transactions project (Java). Data on assets and transactions by business entities is downloaded from SNL Financial on a weekly basis. Data is parsed, tested for consistency and formatted into business-friendly database tables. Schemas, test scenarios and final format are all configurable, with no prior knowledge and zero hard-coding. The project is a complete re-write of an earlier effort. The load time was brought down from 24 h to 4 h, while the weekly load increased from 10G to 30G, to include historical data, as well as current snapshots.
Created Eagle, a data management framework (Java, C#). Eagle has no knowledge of the nature of the data and the kind of views available to the user. The views configuration is downloaded at the client startup time. Filtered data, current and historical summaries/charts are created depending on the user roles by simply editing a configuration file. An Eagle implementation is being used by the senior management of the technology division to keep track of project assignments and resource allocation. A second implementation is used to catalog department-wide use of financial data sources.
Led the Dependency Language project (C#), an in-house business-rules engine. DL is used on the back end for report generation. Worked with development teams on requirements, benchmarking.
Geotab (Oakville, ON)
September 2009 - August 2011
Produced and field-tested an original auto-calibrating algorithm for detecting driving events, such as harsh accelerations, brakes and turns, based on the input from a randomly mounted accelerometer and a GPS unit (Matlab, C). US Patent #8688380.
Designed and implemented geodetic algorithms based on open data sources (OpenStreetMap, Tiger database), including custom R-tree and Q-tree spatial indexes, road speed limit and fuel tax calculations (C#, PostgreSQL, ESRI shape files).
Designed and implemented low-latency ultra-compact in-memory and memory-mapped models for querying large amounts of geodetic data (C#). A complete North America road database requires less than 5GB of RAM and can be queried at a 30K/sec rate.
Ported the company's back-end product from SQL Server to PostgreSQL (C#).
Aleri (Murray Hill, NJ)
June 2007 - September 2009
Designed and developed connection adapters for the company's Streaming Platform. SP is a complex event processing (CEP) engine running on a variety of platforms, such as Linux, Solaris, Windows. The adapters are either built into the SP or standalone and communicating with SP via a pubsub interface. Responsible for the full development cycle (requirement analysis, prototypes, design, coding, unit testing, benchmarking, documentation) of the following adapters:
- Bloomberg adapter (Java) receives market feed data from the Bloomberg server API.
- FIX adapter (Java) relies on QuickFIX for session management and message parsing, translates the messages into the SP format, picks up the outbound messages from the SP, FIX-encodes them, and uses QuickFIX to send them to the destination.
- IDC (Interactive Data Corporation) adapter (Java) receives real-time market data and order book updates from IDC data feeds.
- ISE (International Security Exchange) adapter (Java) receives data as FAST-encoded FIX messages. Designed a proprietary FAST decoder and optimized the SP pubsub interface with a more than 50% performance gain.
- HTTP adapter (Java) receives SQL queries from HTTP clients, such as web browsers and Silverlight, and streams SP data back to the clients as chunk-coded HTTP responses.
- JMS adapter (C++, Java) provides a two-way data flow between the SP and a message broker. Data is stored both as text (delimited records, XML) and Java objects.
- A proprietary implementation of Open Adaptor (Java) carries data between the SP and a variety of data sources, such as Atlas, SQL Server, Oracle, Postgresql, JMS, mail server. Work directly with customers, as well as Aleri support and sales engineers, on maintenance and adding new components.
- SQL Scraper (C++) receives data from a database via an extended stored procedure, translates and publishes data in the SP format.
- Tibco Rendezvous adapter (Java) provides a two-way data flow between the SP and a Tibco RV server.
- Wombat adapter (Java) receives real-time market data and order book updates from Wombat servers.
Designed an adapter SDK, which resulted in a substantial code reuse across Java adapters.
FXall (New York, NY)
May 2006 - May 2007
- Responsible for the full development cycle (use cases, architecture, design, coding, testing) of the critical Forex Transaction Monitor project (Java, Spring, Hibernate, Ant). FTM is a standalone Java application that monitors changes and synchronizes data between the FXall trading system and a client-owned database.
- Responsible for the full development cycle (requirements, prototypes, architecture, design, coding, testing) of the Settlement Center Administration project (JSP, JSTL, Struts, Spring, Hibernate, JMS, JMX, Big Brother, Tomcat, Ant, Maven). SCA is a 3-tier Java web application.
- Interacted daily with the application support and QA teams. Worked on performance issues and bug resolution. Extensively documented the development and post-development processes (prototypes, use cases, architecture, design diagrams).
SelectMinds (New York, NY)
November 2005 - May 2006
Senior Software Engineer
EMS Technologies (Montreal QC, Ottawa ON)
September 2000 - April 2005
Senior Member of Technical Staff, Systems Engineer
- Responsible for the design and implementation of a proprietary in-memory database system (C++) and its management interface (Java, Swing) for a Return Link SubSystem. RLSS is an embedded, real-time system running VxWorks. The XML-driven hierarchical database is managed via a Web interface. Designed and coded a proprietary web server, as well as proprietary DOM and SAX parsers. The interface sends HTTP requests to the embedded web server, displays a filtered view of the database and uses color and sound to instantly notify the operator of server-side events. Designed and coded a suite of offline database configuration tools (Java, Swing).
- Produced and implemented new algorithms for a Star Tracker project (Matlab, C, Visual Basic, Visual C++). ST is an embedded system functioning in a complex optical, thermal, mechanical and radiational environment It
uses optical input and offline star catalogs to track the attitude of the spacecraft. Proposed and implemented a Kalman filtering algorithm that more than doubled the instrument's
- Produced Star Tracker test cases. Worked with the testing team on benchmarking. Analyzed test results, wrote technical reports. Worked with customers on problem resolution. Used the customer-provided telemetry information to analyze and solve a problem that nearly jeopardized one of the two star trackers deployed on the Jason mission spacecraft run by Alcatel. That helped bring the performance of the radiation-affected instrument from 10% up to 50%.
University of Timisoara (Timisoara, Romania)
October 1994 - August 2000
Conducted research in computational geometry. Designed and coded interactive simulation software for R&D contracts (C++).
Taught courses in mathematics software, web design, algebra, geometry.
- BS in Mathematics - The Moscow State University, Moscow, Russia
- PhD in Mathematics - The Academy of Sciences of Moldova, Chisinau, Moldova