14 years within industry, more than 6 last years I have been in charge of designing architecture of complex systems that can easily scale by choosing tech stack, define core components and implement the most critical parts. I have been hiring, coaching and managing team of developers as well as run integration within third party agencies.
Deep understanding of OS internals in addition to a wide exposure to modern technologies allow me to quickly prototype proof-of-concept solutions to showcase different approaches of addressing demands of clients.
Math background and passion for advanced concepts of Computer Science (AI, ML) allow me to effectively integrate innovative approaches of data processing and analysis into software of companies from domains of oil, telecom, advertisement industries or within fluid startup environment.
Ability to lead and coach team by bringing values of hacker culture grant me with acquaintance of many high caliber professionals who can be used for any time-critical projects as a freelancers/consultant to meet strict deadlines.
Create automated crypto currency-trading system:
● Design reactive architecture to simplify integration of additional exchanges
● Develop scalable trading platform for multi-agent deployments
● Lead implementation of unified UI for trading rules management, deployment automation and
monitoring, trend exploration
● Create dedicated services for live data acquisition, signalling and data discovery
● high throughput low-latency fully automated trading engine
● inference engine for models backtesting
Used technologies & tools: microservices, application containerisation, Python, gevent, SOA, redis based event queues, aws, stream processing, websockets, postgres, flask, telegram bot api
- Design, build and optimise high throughput highly available multi component data processing pipelines (up to 1.5 mln events per seconds, depending on cluster configuration).
- Re-factor of business critical components of various products across the whole stack
- Cassandra, Kafka, Elastic performance tuning - schema adjustments & implementation of high performance multithreaded shooters in C++, jvm & linux kernel optimisation
- Containerisation of applications: maintaining internal docker registry, automate orchestration of dockers vms, docker performance tuning
- Introduce company for modern SDLC practices and help to integrate it in a way to be coherent with business goals: continuous integration, devops, integration tests & auto-tests
- Participate in business critical activities: sizing and hardware planning, develop POC for pre-sales events, requirements assessments, investigation of disaster incidents, etc
- Develop and run internship program: software development, data analysis.
Head of analytics department:
* Add several key functionalities for company's products portfolio.
* Create a discovery platform with set of analytical sub-modules on top of Apache Spark.
* Build a toolbox for algorithms assessments for data discovery and quick hypothesis checks
* Assessment and adaptation of methods of AI\ML for such tasks as predictions\clusterization.
* Application of methods Natural Language Processing (NLP) according to business goals.
Big data & high load. Data mining. Distributed computing. Statistics. NLP. Machine learning. Reverse engineering. Caffe. Zeppelin. Spark. Elastic. Kafka. Protobuf. C++. Boost. Scala. Python. Java. Blockchain. Agile. AWS. Scikit. Redis. Golang. Microservices.
- Develop general architecture of server components, choose technology stack for implementation, design database structure and implement middleware layer for interaction with 3rd party systems
- Build web-crawler for machine learning algorithms evaluationPerform evaluation of various machine learning techniques, embed most promising approach to general pipeline
- Adapt core of recommendation engine for high-load project by profile and optimize bottlenecks
- Define and manage Mesos cluster deployment strategyControl and manage of integration various clients (mobile/web) to backend services
- Define and control execution of sprints for freelancers
- Provide technical leadership and coaching for team
python, postgres, elasticsearch, redis, scikit, scrapy, nltk, gensim, selenium, Mesos cluster stack, AWS stack, vagrant, docker, devops, git, jira, SOA, RESTful
Develop application for 3d-scene reconstruction from RGB-D cameras:
- Porting reference kinect fusion implementation from CUDA, PCL library to OpenCL
- Collaborate with PCL community to contribute to KinFu sub-module in order to overcome limitations of existing implementation: integrate RGB information to resulting point cloud, cyclic voxel buffer in GPU memory
- Evaluate and integrate modern methods of Computer Vision into existent pipeline: dvo - dense visual odometry by Tum, libfovis, various algorithms from opencv development and contrib branches
- Integration of SLAM methods - iSam and g2o
- Manage, motivate, and build engineering team
- Participate in non-technical activities – develop marketing and financing strategy, client development.
computer vision, OpenCL, openCV, pointclouds, iSam, fovis, CUDA,multi-view geometry, segmentation, registration, pose estimation/bundle adjustment, real-time reconstruction
Easy-to-use solution for 3d-reconstruction was developed providing speed and accuracy of the modern research projects.
Participate in sales and demo events as technical expert. Contribute to design and implementation of various pilot projects. Improve development processes by introducing the company to the best practice
- Setup Continuous Integration build server with control version system, auto-documentation, auto-tests and integration with internal ticketing system (Team City, GNU Make, doxygen, subversion, ant)
- Develop android application for the needs of Russian Railways (management of railroad tracks)
- Re-work of build scripts for all low-level modules for automated cross-platform builds and testing under Linux\sparc solaris\FreeBSD x86\x64 (cross-compilation, bash scripting for vm with target system orchestration)
- Develop proof of concepts application for existing modules: SCADA system integrations via SOAP and COM protocols
Develop and maintain software suite for network devices inventory:
- Development multi-threaded\multiprocessing Network Management System (NMS) targeting Linux\Solaris x86 & x64 (C\C++, SNMP, pthreads, raw sockets)
- Sustaining software for polling devices via CORBA protocols (MICO library) according to TMF814 specification (Huawei T2000, ECI Lightsoft, EMS-XDM)
- Design database structure and stored procedures (Oracle, SQLdeveloper, otl library)
- Optimize software performance using valgrind with callgrind/cachegrind.
- Analyzing data flow and proposing new algorithms of data processing as well as enhancing existing ones
Used technologies\tools: С++, Java, Android, Subversion, GNU Make, gdb, Source Insight, Glow Code, valgrind.