Дмитрий Круглов

software architect/principal software engineer

Местоположение

Проживание: Россия, Нижний Новгород

Возраст и стаж

Стаж: 15 лет и 8 месяцев

Возраст: 35 лет

Зарплатные ожидания: От 550000 руб.

Контактная информация


Профессиональные навыки


Проектирование архитектуры приложений • Performance tuning • Высоконагруженные системы • Scala • C++ • Компьютерное зрение • Обработка естественного языка • Машинное обучение • Распределённые вычисления • Apache cassandra

Опыт работы


Июль 2018 —
По наст. время
(1 год и 5 месяцев)

auto trading

tech lead
Россия, Нижний Новгород

Обязанности и достижения

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

Применяемые навыки

Python, Высоконагруженные системы, Распределённые вычисления, Performance tuning, Алгоритмы и структуры данных
Ноябрь 2015 —
Июнь 2018
(2 года и 8 месяцев)

oculus technology

senior software architect
Объединенные Арабские Эмираты, Абу-Даби

Обязанности и достижения

Senior Architect: 


  • 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.

    Used technologies\tools:

    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.
Январь 2015 —
Ноябрь 2015
(11 месяцев)

Insydo

senior software engineer
Объединенные Арабские Эмираты, Абу-Даби

Обязанности и достижения

  • 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

Used technologies/tools:

python, postgres, elasticsearch, redis, scikit, scrapy, nltk, gensim, selenium, Mesos cluster stack, AWS stack, vagrant, docker, devops, git, jira, SOA, RESTful

Май 2012 —
Декабрь 2014
(2 года и 8 месяцев)

3deye

CTO/founder
Россия, Нижний Новгород

Обязанности и достижения

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.

Used technologies\tools:

computer vision, OpenCL, openCV, pointclouds, iSam, fovis, CUDA,multi-view geometry, segmentation, registration, pose estimation/bundle adjustment, real-time reconstruction

Achievements:

Easy-to-use solution for 3d-reconstruction was developed providing speed and accuracy of the modern research projects.

Применяемые навыки

C++, Алгоритмы и структуры данных, Многопоточность, Cuda, Opencl, Компьютерное зрение
Сентябрь 2011 —
Октябрь 2013
(2 года и 2 месяца)

transset

principal software engineer
Россия, Нижний Новгород

Обязанности и достижения

Обязанности: - Lead multiple business-critical projects: - I am in charge of mobile clients developments, network's monitoring software suite and prototyping new projects for investigating new markets - Provide guidance and coaching to my team and to the neighboring projects - change rules of interaction between departments and customer Достижения: - Conquer new customers by delivering projects under high pressure circumstances - Decreasing deployment period of products by two times - Decreasing period of fixing issues by four times
Апрель 2008 —
Сентябрь 2011
(3 года и 6 месяцев)

Транссеть

programmer
Россия, Нижний Новгород

Обязанности и достижения

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.

    Применяемые навыки

    C++, Многопоточность, Java, Linux
    Январь 2008 —
    Апрель 2008
    (4 месяца)

    Фриланс

    system architect-programmer
    Россия, Нижний Новгород

    Обязанности и достижения

    Developing CRM system: Database design (MySql and SQLite) Development system architecture from scratch Create user’s GUI and man pages (using JVCL, Globuslib libraries) Management of programmer’s team work (3 programmers) Work with OLE (for access to 1c base, excel) Used technologies\tools: NSIS, Borland C++ Builder 6, WinAPI, Help Scribble, Glow Code
    Октябрь 2006 —
    Декабрь 2007
    (1 год и 3 месяца)

    MERA

    programmer
    Россия, Нижний Новгород

    Обязанности и достижения

    Work in sustaining team: fix bug and make addition in main project (IVR system). issue analyzing (according to customer logs and letter, crash dump or description of abnormal behavior of system) investigating reason of error (investigate customer system settings, project configuration, source code) make and test solution, provide test case and other info for testing patch Used technologies\tools: C\C++, ClearQuality, ClearCase, GNU Make, VC++
    Апрель 2004 —
    Октябрь 2006
    (2 года и 7 месяцев)

    МАКС-М

    programmer
    Россия, Нижний Новгород

    Обязанности и достижения

    Design GUI for easy access to database. Has been involved in: Developing in C++ and SQL Technical support Writing the user guide documentation Software testing Analyze of the requirements specification Used technologies\tools: Firebird, IBExpert, Borland C++ Builder 6

    Высшее образование


    Январь 2001 —
    Январь 2007

    Нижегородский государственный университет имени Н.И. Лобачевского

    Вычислительной математики и кибернетики
    Россия, Нижний Новгород

    О себе


    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.