Location: Belarus, Minsk
I create software, deliver correct functional and code in time, produce sustainable digital artifacts. I know many techs and use many tools, developed software frameworks and reusable libraries. Experienced in open source, .NET (with internals targeting unmanaged code integration), custom frameworks and API development, Windows, technical writing, server side development and enterprise environment (I delete more code than add), "technical" agility. In order to be effective and efficient I tune my thoughts, tools and actions continuously. Computer user since 1993, write programs since 2004, work in big companies since 2010, self learner since childhood. Applied machine learning is my interest, used against music. Proponent and practitioner of automation, machines should do work instead of humans, like: software generation,testing and deployment; information search and suggestion. From 2010 to 2017 worked at EPAM and Thomson Reuters.
Projects,I have been involved, and Education/Knowledge,I have obtained, are outlined according next scheme.
e-Discovery product for the USA legal market , which is an end-to-end SaaS solution aimed to decrease the volume of information within a litigation to derive insights and create winning legal arguments. Developed server engine and intelligent distributed file system aimed for upload/processing/production/analysis/search/review of millions of documents.
Details: Developed orchestration and error handling of event driven services, HTTP API, billing, audit, reporting, LINQ provider to ElasticSearch, reusable infrastructure components, asynchronous data- and work-flows in ad hoc persisted finite state machine actor framework Optimized system scaling, data ingestion and access performance on 20TB+ of indexed data. Used several data storages(relational, document, files, queue, cache). Improved teams capability to produce better code and documentation to fill ongoing and future needs, coding practices across solution, distributed collaboration and communication by introduction and effective usage of modern tools. Created e-Discovery hardening data set in my free time. Communicated lock based flows into lock-free and event-sourced flows in try to deliver better performance and correctness, disentangled cases where we could use eventual consistency and approximations, and where not.
Position: Lead Software Engineer, Contractor.
Organization: Thomson Reuters.
Used: multi language proprietary cloud, SQL, Oracle Database 11.x, NHibernate 3-4, ElasticSearch 1.X-2.X, ASP.NET Web API 2, IIS 7.X, C#, .NET 4.5, TFS 2013, HTTP, JSON, NEST, NAS, NUIX, JIVE The Hub, Microsoft for Business (365, One Drive, Sharepoint, Outlook), Cisco WebEx, MS Test, gitlab, Oracle Coherence, F#, IBM MQ, IBM Watson Tone Analyzer.
Duration: 06.06.2015 - now
Maintained client-server application framework, which has technical part dated back to 2003 and previous implementation dated back to second half of 1990s.
Position: Lead Software Engineer, Contractor.
Organization: Thomson Reuters.
Advanced Analyticsthen merged into Eikon for Office
Developed financial and productivity tools integrated with MS Office, developed framework for integrated suite of office and desktop applications
Details: Developed software framework for creating unified customer experience across MS Office Add-ins and custom standalone applications used as basis by distributed teams. Integrated managed and native code, desktop and HTML and MS Office applications. Created documentation, did talks on customer side, coordinated with developers from several countries. Searched/refactored existing code, internal projects and solutions to satisfy new requirements as reusable components, did variability engineering, defined application programming interfaces. Evaluated, tuned and incorporated open source to speed up development. Developed custom module system capable loading modules in isolated asynchronous manner. Developed custom host for plugins running in separate service process accessed via local IPC. Implemented custom local IPC, settings storage, framework for user interface composition. Developed web data fetching, authentication; solved client side multiple login issues and auto-upgrade. Made fixes for thin client and multi user session scenarios, installed and used virtualization software to test on different setups, did automation. Made profiling and optimizations. Wrote code/logs/performance analysis scripts and diagnostics/productivity tools. Debugged multithreaded and multiprocess issues. Introduced BDD. Developed software for linking data between Excel and Word. Developed financial data charting tool integrated with web sources and PowerPoint.
Position: Software Engineer - Lead Software Engineer, Contractor
Role: developer, writer
Organization: Thomson Reuters
Team: Started from small end user functional team, become distributed framework team of changing size with many functional teams.
Used: .NET 3.5-4.0, C#, OOP, OOAD, Refactoring, native Windows programming technologies, WPF, MVVM, WinAPI, dependency injection(Unity and custom), XAML, C, COM, EntLib, MS Office extensibility (2003-2013, Word, PowerPoint, Excel) ,TDD, MS Tests, tests mocking, BDD, SpecFlow, multithreading, VSTO, source and bytecode analysis,IPC, WCF, MS-RPC, Moq, WinDbg, Windows XP-8, Scrum, Jive The Hub, UML, VirtualBox, plotting/charting(Visifire charts), TPL, Atlassian JIRA, Outlook, FreeMind, TortoiseSVN, XML,binary serialization,Visio, F#, Atlassian Confluence, packaging (WiX, NuGet, custom), Mono.Cecil, protobuf-net, ATL, C++,VBA, HTML, MS Server 2008 RemoteApp, Rhino.Mocks, ANTLR 3, AutoIt, OpenRepGrid, gtest.
Duration: 02.2010-06.2014, full-time
Contains various projects I did or participated. Long term open sources outlined more fully as separate items. Contains researchlets, code excersized and samples I did. Also I participate in different open source projects communication threads, raise issues, suggest changes, do donations.
Duration: 2009-now, part time
Reverse engineered web site and database. Wrote scripts for automated security checks running on server. Communicated and consulted with different specialists. Evaluated requirements and planned implementation.
Duration: 07.2011-01.2013, freelance, part time
Implementing intellectual musical player which visualizes and organizes music collection onto 2 dimensional space using features obtained from audio content. Building engine which learns to undrestand what music is from audio content using Hierarchical Temporal Memory. Made report of work done.
Team: Supervisor Igor Heidorov (igorhmm at mail dot ru), idea and whole implementation are mine.
Duration: 10.2008-06.2010, part time
Created and presented application for time-lapse microscopy during summer school.
Organization: Institute of Physical Biology, merged into other
Team: 2 PhD students
Used: C#, .NET 3.5, Windows Forms, Olympus SDK, AForge, Visifire charts, NLog
Duration: 07.2008, 07.2009, intern
Creating application to get info from email server, process it and visualize as graph of communications. Implementing server side part.
Role: junior developer
Team: 3 junior developers, manager
Used: Java EE5, EJB 3, JPA 1, MAVEN, MySQL 5.1, ClearCase, ClearQuest
Duration: 08-10.2008, part time
Created application connected to woodworking machine. Provided possibility to edit/store/execute sawing plans, change sawing machine setup and monitor sawing process.
Details: Created ad-hoc configuration file format parser, custom system event loop, custom text window system with edit boxes/menus/labels/help, communication protocol with hardware port.
Organization: Stroydetali Llc
Team: Engineer, micro controller programmer.
Used: TMT Pascal 3, MS-DOS, ASM, LPT
Duration: 08-12.2006, part time
Created application for storing and reporting graduates data, with installer and user help. 2nd place on regional competition of school student’s software.
Organization: Vileika gymnasium 1
Used: Borland Delphi 7, Rave Reports, SQL, InstallShield, HTML
Duration: 09.2004-03.2005, part time
Tagging , notes, mind and concept mapping, publishing .
Finished Machine Learning, Model Thinking, Data Science, Functional Programming Principles in Scala
Duration: 04.2012-02.2014, part time
Watched and worked through all lectures in course
Duration: year 2010, part time
Graduated university with Bachelor degree, Major Radiophysics - 01.04.03, GPA: 6/10;
Duration: 2005-2010, full time
Finished course devoted to .NET. Implemented web site for creating custom entities by administrators and adding exemplars of them by users. Entities have had variable number of fields (images, strings and numbers).
Used: .NET 2.0, ADO.NET, ASP.NET, ASP.NET Membership, SQL Server
Duration: 11.2008, part time
Implemented test tasks and web site to add/store/search tagged technical documents.
Used: .NET 2.0, ASP.NET, ASP.NET Membership, NHibernate, SQL Server, tinyMCE text editor, MS AJAX, NUnit, CodeDom
Duration: 04.2008, part time