Alexander Borsuk: Software Engineer, MScEng
🖨
Hi! I’m a software engineer and researcher, co-founder of Organic Maps (offline maps for iOS and Android), founding investor of VibroBox (prescriptive maintenance for machinery), one of the creators of MapsWithMe (MAPS.ME) app.
Originally from Belarus, now I live and work in Switzerland. I have more than two decades of experience in development, leading dev teams, building cross-platform and scalable software for mobiles, servers and desktops. I like open source and love to learn something new every day.
Contacts
Personal values and interests
- Everything should be automated if possible
- Helping dev teams to grow, learn, and deliver while improving the quality
- Open source, maps, and traveling
- Learning Rust
- Natural language processing (NLP)
- Medical research and biohacking
- Parenting and education
- Healthy lifestyle, food and environment
My strengths
I’ve been working in different roles in different projects, here is my strengths summary:
As a Software Engineer:
- Modern C/C++ and multi-threading
- Mobile, cross-platform, and embedded solutions
- Secure networking and cloud services
- Code performance and scalability
- Software and hardware optimizations
- Code reviews and troubleshooting
- Tests, automation and CI/CD
- Learning new programming languages and frameworks
- Writing documentation
As a Team Lead:
- Project management, task definition and estimating, delivering
- Teaching and sharing the knowledge
- Optimizing team’s performance
- Improving code quality
- Reducing the amount of bugs and technical debt
As a Product Manager:
- Prioritizing and setting goals
- Making users happy about the product
- Getting quality feedback about the product
- Customer relations and support
As a CTO/VP of Engineering:
- Optimizing engineering expenses
- Covering technology-related risks
- Establishing and automating processes
- Building a strong engineering team and culture
- Interviewing and hiring, scaling the team
- Growing startups from scratch
Software skills
- Extensive experience in C++, C++11, C++14, C++17, C++20, C, C99, C11, Objective C/C++, Swift, Java, Kotlin, JavaScript, Qt, STL, OpenStreetMap, Mapbox, Leaflet, geojson, computation geometry, hugo, zola, Bash, HTML5, CSS3, PHP, WTL, WinAPI, WinSock, MFC, ATL, Assembler
- Good knowledge and experience with Boost, TypeScript, WebRTC, ESP32, OpenSSL, mbedTLS, MATLAB, Simulink, Scala, Go, C#, Perl, Python, Visual Basic, SQL, Pascal, XSLT
- System and application development experience with iOS, Android, Samsung Bada, PocketPC, Windows Mobile 5 and 6, Symbian OS
- Experience with Google Cloud/AppEngine, AWS, IBM Cloud, Hetzner Cloud, Cloudflare, Docker, Janus Media Gateway
- Administrator and system developer experience with Windows 98/2000/XP/2003/Vista/2008/7/10, Debian/Ubuntu/CentOS/Amazon Linux, Solaris, MacOS X
- Source Control Systems: Git[hub], Gerrit, Gitlab, Bitbucket, Mercurial, CVS, SVN, Borland StarTeam, Visual SourceSafe
- CI: TeamCity, Jenkins, Github Runners, GitLab, TravisCI
- Project management and issue tracking systems: YouTrack, Notion, Trello, Redmine, Trac, Jira, eXplanner, FIT BugTrack, Borland Starteam, Confluence
- Good knowledge of computer hardware and networks, including CoAP, HTTP, TCP, UDP, IP
- Experience with secure communications and data encryption, including TLS, DTLS, symmetric and asymmetric ciphers, x509 certificates
Speaking languages
- Fluent English
- Native Belarusian
- Native Russian
- Learning German
Education
Belarusian State University of Informatics and Radioelectronics, Minsk, Belarus
-
2016–2018 Master of Science in Engineering, faculty of Radioengineering and Electronics.
Master’s thesis: Formation of informative features of shock processes using wavelet analysis of non-stationary vibration signals
-
1999–2004 Software and Hardware Systems Engineer, Faculty of Computer Systems and Networks.
Bachelor’s thesis: Reliable file downloading for Palm OS, graduated with a score of 4.71 out of 5.0.
Functional Programming in Scala Specialization, Coursera
- 2018 Functional Programming in Scala Capstone
- 2018 Big Data Analysis with Scala and Spark
- 2016 Parallel programming
- 2016 Functional Program Design in Scala
- 2016 Functional Programming Principles in Scala
Other Education
- 1997-1998 x86 Assembler courses
- 1995-1996 BASIC courses using YAMAHA YIS-805
- 1988–1999 Graduated high school in Minsk with a golden medal
Work Experience
–
C++ and Mobile Performance Engineer Phenix Real Time Solutions, Inc. (Zurich, Switzerland)
Phenix Real Time Solutions technology publishes and streams real-time, synchronized video at scale with less than 0.5-second delay, with a sub-second time to the first frame (TTFF), broadcasting it for millions between continents.
Improving and bugfixing iOS/Android SDKs and C++ core engine.
- Feature development, testing, and optimizations of C++ core engine and mobile SDK for iOS and Android
- Triaging and bugfixing
- Code reviews
- Techs:
- C++14
- iOS
- DRM
- Android
- CMake
- boost
- bash
- zsh
- nodejs
- JavaScript
- WebRTC
- Live Video Streaming
- Broadcasting
- ffmpeg
- Docker
- YouTrack
- Gerrit
- TeamCity
- Android NDK
- GTest
- Google Cloud
- BigQuery
- BDD
- TDD
–
Co-founder & maintainer at Organic Maps (remote, free-time hobby project)
Organic Maps is a free, open-source, donation-based and privacy-focused Android and iOS offline maps app for travelers, tourists, drivers, hikers, and cyclists based on crowd-sourced OpenStreetMap data.
Organic Maps is a fork of MAPS.ME (MapsWithMe). MAPS.ME was created by me and my friends in 2011 and open-sourced in 2015 under Apache 2.0 license. In Organic Maps all unnecessary “features” like tracking and statistics collection were removed. The main focus is on speed,
stability and up-to-date OpenStreetMap maps data, to make it the most secure, fastest and battery-efficient offline maps app.
Download and install Organic Maps from App Store,
Google Play,
Huawei AppGallery,
FDroid,
or install APK directly from GitHub.
In my free time I am contributing, maintaining and coordinating the product development of Organic Maps.
- supporting the community and the development of Organic Maps
- preparing and publishing new releases
- managing the product roadmap and its features
- fixing bugs and implementing new features
- scaling the CDN to download maps for millions of users
- maintaining the build system and CI
- reviewing C++17, Java, Swift, Objective C, Python, bash code
- helping contributors on GitHub
- supporting users by email, in app stores, messengers, and social networks
- Techs:
- C++20
- C++17
- Rust
- Swift
- Java
- Objective C/C++
- OpenStreetMap (OSM)
- JavaScript
- TypeScript
- Python
- CMake
- Cloudflare Workers/Pages/Functions
- GitHub
- FDroid
- Google Play
- Huawei AppGallery
- AppStore
- iOS
- Android
- Linux
- Mac OS X
- protobuf
- GTest
- CI/CD
–
C++ Performance Engineer Phenix Real Time Solutions, Inc. (Zurich, Switzerland)
Phenix Real Time Solutions technology publishes and streams real-time, synchronized video at scale with less than 0.5-second delay, with a sub-second time to the first frame (TTFF), broadcasting it for millions between continents.
Development and bugfixing of the C++ core engine, including optimization of the build toolchain.
- accelerated the project build speed by a factor of 1.5x-4x to optimize dev and CI time
- built optimized ffmpeg from sources for Mac and Linux
- reviewed C++ code and shared the best code practices
- found and backlogged a number of issues, including failing tests
- learned and participated in the unique dev team management approach called “Phenix Way”
- learned about real-time and scalable video streaming and broadcasting
- Techs:
- C++14
- CMake
- boost
- bash
- zsh
- JavaScript
- WebRTC
- Live Video Streaming
- Broadcasting
- ffmpeg
- Docker
- YouTrack
- Gerrit
- TeamCity
- Android NDK
- GTest
- Google Cloud
- BigQuery
- BDD
- TDD
–
Video Backend & Frontend Engineer at Zenia (remote, part-time project)
Zenia - Interactive Fitness & Yoga is the world’s first virtual assistant app for
iOS and
Android that uses AI to give
real-time feedback on yoga practice.
Implemented scalable live video lessons on desktops and mobile phones for yoga instructors and their students.
- designed and implemented scalable AWS video CDN for realtime live classes
- configured and supported Janus Media Gateway backend with SFU topology
- implemented backend video recordings and statistics collection
- implemented JavaScript frontend to display and record audio and video
- integrated WebRTC WebView video player for iOS and Android apps
- supported TensorFlow.js for real time pose detection from the video stream
- Techs:
- WebRTC
- Janus Media Gateway
- Docker
- JavaScript
- TypeScript
- HTML5
- iOS
- Android
- python
- nginx
- AWS
- iOS
- Android
- Tensorflow
- React
–
Software Engineer and Tech Lead at Qnective AG (Zurich, Switzerland)
Qnective is a leading provider of sophisticated communication solutions and services, with deep expertise in wireless technologies, networking, IoT, infrastructure, and highly-secure encryption mechanisms.
Projects I've been working on:
- Qtalk, secure messenger for enterprises and governments (iOS, Android and Windows)
- Qnet, secure voice and messaging app for low-end Android devices
- Wearable body sensors for sports and medical application (ESP32 embedded chip)
I have:
- lead the team of 8 engineers and QA for a secure embedded IoT project
- implemented lightweight SD-card support for ESP32
- developed and reviewed embedded C/C++ code for encrypted data communication (DTLS over CoAP) for ESP32
- worked on peer-to-peer opus voice communication over DTLS/CoAP on iOS and Android
- designed and developed a routing GoLang gateway for P2P E2EE voice and messaging
- switched large project codebase from C++11 to C++17
- migrated codebase to the latest version of OpenSSL and Qt
- improved cross-platform build system
- performed extensive C/C++/Ruby/GoLang/python/Scala code reviews
- developed several features for iOS and Android apps
- interviewed candidates for job positions
- Techs:
- C++17
- C11
- Swift
- iOS
- Java
- Android
- GoLang
- DTLS
- TLS
- Java
- bash
- Qt
- OpenSSL
- CoAP
- Opus
- WebRTC
- Ubuntu
- iOS
- Android
- ESP32
- Docker
- Bitbucket
- Jira
- Bamboo
- Jenkins
- GTest
- protobuf
- Unity
- Catch2
- OpenSSL
- mbedTLS
- SARA R4
- qmake
- Kanban
- Scrum
–
Founding Investor of VibroBox
VibroBox is a vibration-based diagnostics service for scalable prescriptive maintenance, IIoT, and Industry 4.0. The team of scientists, engineers, and industry experts is focused on digital signal processing, wavelets, machine learning, and other algorithms to prevent failures of industrial equipment by providing timely and automated maintenance instructions.
VibroBox works with a wide range of rotary equipment, including (but not limited to): pumps, turbines, compressors, generators, rotors, engines, bearings, gearboxes, rolling mills, wind farms, wheel pairs for cars and trains.
My responsibilities in VibroBox:
- IT infrastructure management
- Pilot and production deployments
- Strategy and technology advisor
- Business development, negotiations, presentations
- Financing and accounting
- Translations of scientific language into Common English
Some engineering tasks I’ve done:
- Designed a scalable cloud service architecture
- Developed REST API for the service
- Set up and kept dev tools and environment up to date
- Set up and administered cloud server hosting (Ubuntu)
- Developed iOS and Android apps to collect audio and accelerometer data
- Developed and supported the company’s website
- Established and performed team code reviews
- Techs:
- AWS Lambda
- AWS SES
- Docker
- Hugo
- HTML5
- CSS3
- bash
- Linux
- TravisCI
- PHP7
- YII2
- OpenAPI
- MATLAB
- Simulink
- openvpn
- MariaDB
–
Co-founder, CEO, CTO of MAPS.ME
MAPS.ME is an open-source offline maps app for iOS and Android.
A crowd-sourced OpenStreetMap data is used for walking and cycling directions, car navigation, discovering new places and local sightseeing. As of April 2018, MAPS.ME was installed by 100M users all over the world.
I worked in many roles and got extensive experience in engineering, team and technical leading, product and project management, business development, user support, marketing, public presentations, hiring and interviewing, teaching, etc.
- Techs:
- C++11
- Boost
- Qt
- ObjectiveC
- Java
- C
- iOS
- Android
- Linux
- Windows
- MacOS
- Bada
- OpenStreetMap
- OSRM
- clang
- gcc
- Python
- bash
- protobuf
- Golang
- AppEngine
–
System Architect/VP of Engineering at MAPS.ME in Mail.Ru Group
After the acquisition of MAPS.ME, we hired a new engineering team of 25 in Moscow and passed all our knowledge to them. I was in a VP of Engineering role at the Maps department of Mail.Ru Group:
- Transitioned app, code, technology and knowledge to a new owner (Mail.Ru)
- Interviewed, trained, and led new dev and QA team
- Open-sourced MAPS.ME code to GitHub
- Developed offline map editor for MAPS.ME to upload map edits directly into the crowd-sourced OpenStreetMap database [source code]
- Developed and integrated open-source, scalable, cross-platform statistics engine Alohalytics for iOS, Android, and desktop (C++11), including client part and backend data collection
- Promoted MAPS.ME on developer conferences
–
Co-Founder, CTO
Further growing of the startup till the acquisition.
- Product management and releases delivery
- Moved the codebase from C++99 to C++11
- Scaled maps data distribution cluster and HTTP delivery services to match growing user base
- Ported Open Source Routing Machine (OSRM) to iOS and Android to add offline navigation support [source code]
- Gradle build system integration for Android
- New product features development (including Navigation) and bug fixing
- Product web sites deployment and support
–
Co-Founder, CEO
The most challenging period for MAPS.ME, when we grew our team and number of app user while trying to sell a paid app in AppStore and Google Play.
- Product management and releases delivery
- Increased worldwide userbase from 120K to 2.5M
- Break-even revenue generation by selling a paid version of MAPS.ME (MapsWithMe)
- Built dev and marketing teams (13 people)
- Developed and released 26 offline travel guides apps for iOS and Android (GuideWithMe)
- Established a development office in Minsk
- Business development, PR, and marketing
- New product features development and bug fixing
- Perfected user support
–
Co-Founder
At that time, I led our small team of 3 in Minsk, responsible for a cross-platform build environment, code reviews, iOS, and Android. The most notable tasks included:
- Server-side OpenStreetMap data processing pipeline
- High load client/server maps distribution via HTTP
- Fast Unicode normalization algorithm for multilanguage offline search
- Native UI for iOS and Android, Qt UI for easier development on macOS, Windows, and Linux
- Compiled/ported core code to iOS, Android, Bada, Mac OS X, MinGW, Linux, Windows XP/Vista/7
–
CTO at BLRSoft
BLRSoft, the R&D subsidiary of Abaxia, developed Launcher software and firmware for Vodafone, Orange, and other EU network operators. BLRSoft was acqui-hired by HTC in 2010 and renamed to HTC BLR.
I worked in many roles, including Senior Software Engineer, Team and Technical Leader, Project Manager, Technical Director, while working on mobile software for Symbian and Windows Mobile.
Some tasks that I’ve done:
- Implemented Symbian devices data text indexing and search functionality.
- Universal Content Provider project for Symbian and Windows Mobile.
- Implemented and maintained Symbian data providers with access to the device’s contacts, messages, calendar, bookmarks, network connections.
- Ported library for different Symbian platforms (3.1, 3.2, 5.0, N97) and maintained Windows Mobile compatibility.
- Developed Symbian “homescreens” for European network operators.
- Managed projects tasks, built and organized local developer/QA teams, including testing with different prototype devices.
- Designed projects architecture for several Symbian platforms.
- Developed some core components, including UI, networking, calendar events, contacts database, missed calls, messages, e-mails, status pane.
- Ported projects to Symbian 3.1, 3.2, and 5.0 (touch) devices.
- Wrote technical and architectural specifications.
- Integrated best practices from Agile/Scrum/Extreme programming.
- CardBrowser library for Symbian (microSD card auto-launch menu).
- Planned timeline and designed architecture and components.
- Implemented different UI and core library parts, including interactive controls, animation engine, ini-parser, images loading and caching mechanism.
- Supported mobile cross-platform GUI library for Windows Mobile and Symbian.
- Investigated and reviewed existing code and architecture.
- Migrated codebase from C to C++ and from SVN to Mercurial.
- Developed and maintained different system components, including messaging, networking, and UI.
- Supported and administered internal company infrastructure.
- Hired and interviewed new developers and QA.
- Ubuntu/Debian administration: virtual servers, backup, mail, network, wiki, LDAP, Mercurial, etc.
- Managed projects’ documentation on TRAC and internal wiki.
- Implemented cross-platform python auto-build system.
- Techs:
- C++
- C
- Symbian
- Windows Mobile
–
Senior Software Engineer at InfoTechnology
InfoTechnology was a Belarussian division of a San-Francisco-based XIM company.
I developed a music and hum/singing voice recognition app for Symbian devices called "Midomi" for SoundHound Inc.
Some tasks that I’ve done:
- Got extensive dev experience with Symbian OS system environment and development tools.
- Designed and implemented GUI for Midomi, along with HTTP-based advertisement and HTTP player.
- Openwave C++ firmware for low-end mobile phones.
- Developed XSL transformations to convert internal XML documentation (which is also the source for C++ headers) into XML DITA format.
- Automated QA processes with supporting Perl scripts, including URL grabber, Purify log analyzer, HTML reports generator.
- Techs:
- C++
- Symbian
- Solaris
- XSLT
- Pair Programming
–
Software Engineer (freelance)
Development of DVD Ripper/Player Station project, a Windows application for touch-screen devices to easily play and grab DVD content.
In particular, together with another developer, I have impemented:
- GUI
- Movies library
- Video files and DVD Playback with DirectShow
- Second monitor/projector support
- MultiDVD drives support
- Techs:
- Visual C++
- DVD
- AVI
- WinAPI
- ffmpeg
- DirectShow
–
Software Engineer and Team Lead at Belsoft-Borlas Group
Development and support of "Smart IP", a transparent TCP/UDP network optimizer/switcher for desktop and mobile platforms, for the US-based customer.
Some tasks that I have done:
- Redesigned Windows Mobile client GUI and ported it to WM5.0.
- Integrated automatic Code Signing pipeline for Windows Mobile 5.0, including developer certificates at the development stage and VeriSign certificates for production based on Microsoft Mobile2Market program.
- Developed and maintained software installation packages for different Windows platforms.
- Ported existing client/server code for Windows Vista and Windows Server 2008, including LSP and NDIS network drivers.
- Implemented log files analyzer and statistics generator.
- Created a dozen of Functional Specifications and Design documents for different software components.
- Techs:
- Visual C++
- Windows Mobile
- WinNT
- NDIS
- IP Networking
–
Software Engineer at Credo Dialogue
Credo Dialogue is a scientific & industrial company developing CAD-systems combined into a single technological chain of information processing (topographical and geotechnical surveys, engineering design, terrain modeling, etc.).
I worked on Topoplan and Genplan CAD software, 3D terrain/buildings modeling and editing, computational geometry algorithms, and project documentation.
Here I met my future MAPS.ME co-founders
Yury Melnichek and Viktar Havaka.
Some tasks that I have done:
- Designed and implemented several software modules to manipulate geometrical primitives
(to create/edit 3D points on the terrain, to align circles with splines,
to create/edit parabolas, etc.)
- Implemented several complicated UI dialogs.
- Organized and maintained internal project documentation, including
web site, automatic code documentation system with DoxyGen.
- Got a strong C++99 and STL experience with algorithms and big data sets.
- Techs:
- Visual C++
- STL
- IncrediBuild
- Doxygen
- Borland StarTeam
–
Software Engineer and Team Lead at Spark IT
I organized and managed a team of 5 engineers to develop an Internet messaging app “Messenger2” (“M2”),
similar to Trillan messenger with ICQ, AIM, MSN, Yahoo, and IRC protocols support, chat encryption, file sharing,
video and audio conferences for a customer from the UK.
- Techs:
- C++
- TCP/UDP sockets
- STL
- WTL
- WinAPI
- ICQ
- AIM
Hobby projects
–
Crossplatform IRC news feeds publisher bot
I have designed and implemented a configurable IRC bot for Windows and
Linux for RSS/Atom/XML parsing with full range character encodings support. It was alive until 2016.
- Techs:
- C++
- Linux
- Windows
- curl
- Atom
- RSS
- XML
–
Co-founder and coordinator of ByNets IRC network
ByNets was the largest IRC network in Belarus which united thousands of people from universities,
dormitories, companies, and residential districts of Minsk.
- Techs:
- IRC
- UnrealIRCd
- Linux
- Drupal
–
Home network administrator
I have built, administered and maintained Ethernet network in Minsk with 300+ users in
my neighborhood (with total 1500+ users from nearby neighborhoods).
- Techs:
- Debian Linux
- Windows Server
- DNS
- DHCP
- bash
- Perl
–
Belarusian State University of Informatics and Radioelectronics
Optimization (10x speed up) and statistics visualisation for random number generators based on linear feedback shift registers.
- Techs:
- Visual C++
- Assembler
Publications
- Algorithms for refinement of the shaft rotational speed for solving the problems of vibration diagnostics of rotary equipment / Y. Aslamov, I. Davydov, A. Borsuk, A. Aslamov // First World Congress on Condition Monitoring, London, 13-16 June 2017, Session 6E: Vibration condition monitoring methods and technologies / The British Institute of Non-Destructive Testing.
- Sparse wavelet decomposition of signals for solving vibration diagnostics problems / Y. Aslamov, I. Davydov, A. Borsuk, A. Aslamov // First World Congress on Condition Monitoring, London, 13-16 June 2017, Session 7E: Vibration condition monitoring methods and technologies / The British Institute of Non-Destructive Testing.
- Sparse wavelet decomposition in problems of vibration-based diagnostics of rotary equipment / Y.P. Aslamov, A.P. Aslamov, I.G. Davydov, A.V. Borsuk // Doklady BGUIR[BSUIR reports], 2017, no. 8 (110), pp. 91-98. (in Russian)
- Formation of informative features of shock processes using wavelet analysis of non-stationary vibration signals: the author’s abstract. Diss. MSc in Engineering: 1-39 81 03 / A.V. Borsuk; scientific adviser I.G. Davydov // Minsk: BSUIR, 2018. (in Russian)
Hi! I’m a software engineer and researcher, co-founder of Organic Maps (offline maps for iOS and Android), founding investor of VibroBox (prescriptive maintenance for machinery), one of the creators of MapsWithMe (MAPS.ME) app.
Originally from Belarus, now I live and work in Switzerland. I have more than two decades of experience in development, leading dev teams, building cross-platform and scalable software for mobiles, servers and desktops. I like open source and love to learn something new every day.
Contacts
Personal values and interests
- Everything should be automated if possible
- Helping dev teams to grow, learn, and deliver while improving the quality
- Open source, maps, and traveling
- Learning Rust
- Natural language processing (NLP)
- Medical research and biohacking
- Parenting and education
- Healthy lifestyle, food and environment
My strengths
I’ve been working in different roles in different projects, here is my strengths summary:
As a Software Engineer:
- Modern C/C++ and multi-threading
- Mobile, cross-platform, and embedded solutions
- Secure networking and cloud services
- Code performance and scalability
- Software and hardware optimizations
- Code reviews and troubleshooting
- Tests, automation and CI/CD
- Learning new programming languages and frameworks
- Writing documentation
As a Team Lead:
- Project management, task definition and estimating, delivering
- Teaching and sharing the knowledge
- Optimizing team’s performance
- Improving code quality
- Reducing the amount of bugs and technical debt
As a Product Manager:
- Prioritizing and setting goals
- Making users happy about the product
- Getting quality feedback about the product
- Customer relations and support
As a CTO/VP of Engineering:
- Optimizing engineering expenses
- Covering technology-related risks
- Establishing and automating processes
- Building a strong engineering team and culture
- Interviewing and hiring, scaling the team
- Growing startups from scratch
Software skills
- Extensive experience in C++, C++11, C++14, C++17, C++20, C, C99, C11, Objective C/C++, Swift, Java, Kotlin, JavaScript, Qt, STL, OpenStreetMap, Mapbox, Leaflet, geojson, computation geometry, hugo, zola, Bash, HTML5, CSS3, PHP, WTL, WinAPI, WinSock, MFC, ATL, Assembler
- Good knowledge and experience with Boost, TypeScript, WebRTC, ESP32, OpenSSL, mbedTLS, MATLAB, Simulink, Scala, Go, C#, Perl, Python, Visual Basic, SQL, Pascal, XSLT
- System and application development experience with iOS, Android, Samsung Bada, PocketPC, Windows Mobile 5 and 6, Symbian OS
- Experience with Google Cloud/AppEngine, AWS, IBM Cloud, Hetzner Cloud, Cloudflare, Docker, Janus Media Gateway
- Administrator and system developer experience with Windows 98/2000/XP/2003/Vista/2008/7/10, Debian/Ubuntu/CentOS/Amazon Linux, Solaris, MacOS X
- Source Control Systems: Git[hub], Gerrit, Gitlab, Bitbucket, Mercurial, CVS, SVN, Borland StarTeam, Visual SourceSafe
- CI: TeamCity, Jenkins, Github Runners, GitLab, TravisCI
- Project management and issue tracking systems: YouTrack, Notion, Trello, Redmine, Trac, Jira, eXplanner, FIT BugTrack, Borland Starteam, Confluence
- Good knowledge of computer hardware and networks, including CoAP, HTTP, TCP, UDP, IP
- Experience with secure communications and data encryption, including TLS, DTLS, symmetric and asymmetric ciphers, x509 certificates
Speaking languages
- Fluent English
- Native Belarusian
- Native Russian
- Learning German
Education
Belarusian State University of Informatics and Radioelectronics, Minsk, Belarus
-
2016–2018 Master of Science in Engineering, faculty of Radioengineering and Electronics.
Master’s thesis: Formation of informative features of shock processes using wavelet analysis of non-stationary vibration signals -
1999–2004 Software and Hardware Systems Engineer, Faculty of Computer Systems and Networks.
Bachelor’s thesis: Reliable file downloading for Palm OS, graduated with a score of 4.71 out of 5.0.
Functional Programming in Scala Specialization, Coursera
- 2018 Functional Programming in Scala Capstone
- 2018 Big Data Analysis with Scala and Spark
- 2016 Parallel programming
- 2016 Functional Program Design in Scala
- 2016 Functional Programming Principles in Scala
Other Education
- 1997-1998 x86 Assembler courses
- 1995-1996 BASIC courses using YAMAHA YIS-805
- 1988–1999 Graduated high school in Minsk with a golden medal
Work Experience
– C++ and Mobile Performance Engineer Phenix Real Time Solutions, Inc. (Zurich, Switzerland)
Phenix Real Time Solutions technology publishes and streams real-time, synchronized video at scale with less than 0.5-second delay, with a sub-second time to the first frame (TTFF), broadcasting it for millions between continents.
Improving and bugfixing iOS/Android SDKs and C++ core engine.
- Feature development, testing, and optimizations of C++ core engine and mobile SDK for iOS and Android
- Triaging and bugfixing
- Code reviews
- Techs:
- C++14
- iOS
- DRM
- Android
- CMake
- boost
- bash
- zsh
- nodejs
- JavaScript
- WebRTC
- Live Video Streaming
- Broadcasting
- ffmpeg
- Docker
- YouTrack
- Gerrit
- TeamCity
- Android NDK
- GTest
- Google Cloud
- BigQuery
- BDD
- TDD
– Co-founder & maintainer at Organic Maps (remote, free-time hobby project)
Organic Maps is a free, open-source, donation-based and privacy-focused Android and iOS offline maps app for travelers, tourists, drivers, hikers, and cyclists based on crowd-sourced OpenStreetMap data.
Organic Maps is a fork of MAPS.ME (MapsWithMe). MAPS.ME was created by me and my friends in 2011 and open-sourced in 2015 under Apache 2.0 license. In Organic Maps all unnecessary “features” like tracking and statistics collection were removed. The main focus is on speed, stability and up-to-date OpenStreetMap maps data, to make it the most secure, fastest and battery-efficient offline maps app.
Download and install Organic Maps from App Store, Google Play, Huawei AppGallery, FDroid, or install APK directly from GitHub.
In my free time I am contributing, maintaining and coordinating the product development of Organic Maps.
- supporting the community and the development of Organic Maps
- preparing and publishing new releases
- managing the product roadmap and its features
- fixing bugs and implementing new features
- scaling the CDN to download maps for millions of users
- maintaining the build system and CI
- reviewing C++17, Java, Swift, Objective C, Python, bash code
- helping contributors on GitHub
- supporting users by email, in app stores, messengers, and social networks
- Techs:
- C++20
- C++17
- Rust
- Swift
- Java
- Objective C/C++
- OpenStreetMap (OSM)
- JavaScript
- TypeScript
- Python
- CMake
- Cloudflare Workers/Pages/Functions
- GitHub
- FDroid
- Google Play
- Huawei AppGallery
- AppStore
- iOS
- Android
- Linux
- Mac OS X
- protobuf
- GTest
- CI/CD
– C++ Performance Engineer Phenix Real Time Solutions, Inc. (Zurich, Switzerland)
Phenix Real Time Solutions technology publishes and streams real-time, synchronized video at scale with less than 0.5-second delay, with a sub-second time to the first frame (TTFF), broadcasting it for millions between continents.
Development and bugfixing of the C++ core engine, including optimization of the build toolchain.
- accelerated the project build speed by a factor of 1.5x-4x to optimize dev and CI time
- built optimized ffmpeg from sources for Mac and Linux
- reviewed C++ code and shared the best code practices
- found and backlogged a number of issues, including failing tests
- learned and participated in the unique dev team management approach called “Phenix Way”
- learned about real-time and scalable video streaming and broadcasting
- Techs:
- C++14
- CMake
- boost
- bash
- zsh
- JavaScript
- WebRTC
- Live Video Streaming
- Broadcasting
- ffmpeg
- Docker
- YouTrack
- Gerrit
- TeamCity
- Android NDK
- GTest
- Google Cloud
- BigQuery
- BDD
- TDD
– Video Backend & Frontend Engineer at Zenia (remote, part-time project)
Zenia - Interactive Fitness & Yoga is the world’s first virtual assistant app for iOS and Android that uses AI to give real-time feedback on yoga practice.
Implemented scalable live video lessons on desktops and mobile phones for yoga instructors and their students.
- designed and implemented scalable AWS video CDN for realtime live classes
- configured and supported Janus Media Gateway backend with SFU topology
- implemented backend video recordings and statistics collection
- implemented JavaScript frontend to display and record audio and video
- integrated WebRTC WebView video player for iOS and Android apps
- supported TensorFlow.js for real time pose detection from the video stream
- Techs:
- WebRTC
- Janus Media Gateway
- Docker
- JavaScript
- TypeScript
- HTML5
- iOS
- Android
- python
- nginx
- AWS
- iOS
- Android
- Tensorflow
- React
– Software Engineer and Tech Lead at Qnective AG (Zurich, Switzerland)
Qnective is a leading provider of sophisticated communication solutions and services, with deep expertise in wireless technologies, networking, IoT, infrastructure, and highly-secure encryption mechanisms.
Projects I've been working on:
- Qtalk, secure messenger for enterprises and governments (iOS, Android and Windows)
- Qnet, secure voice and messaging app for low-end Android devices
- Wearable body sensors for sports and medical application (ESP32 embedded chip)
I have:
- lead the team of 8 engineers and QA for a secure embedded IoT project
- implemented lightweight SD-card support for ESP32
- developed and reviewed embedded C/C++ code for encrypted data communication (DTLS over CoAP) for ESP32
- worked on peer-to-peer opus voice communication over DTLS/CoAP on iOS and Android
- designed and developed a routing GoLang gateway for P2P E2EE voice and messaging
- switched large project codebase from C++11 to C++17
- migrated codebase to the latest version of OpenSSL and Qt
- improved cross-platform build system
- performed extensive C/C++/Ruby/GoLang/python/Scala code reviews
- developed several features for iOS and Android apps
- interviewed candidates for job positions
- Techs:
- C++17
- C11
- Swift
- iOS
- Java
- Android
- GoLang
- DTLS
- TLS
- Java
- bash
- Qt
- OpenSSL
- CoAP
- Opus
- WebRTC
- Ubuntu
- iOS
- Android
- ESP32
- Docker
- Bitbucket
- Jira
- Bamboo
- Jenkins
- GTest
- protobuf
- Unity
- Catch2
- OpenSSL
- mbedTLS
- SARA R4
- qmake
- Kanban
- Scrum
– Founding Investor of VibroBox
VibroBox is a vibration-based diagnostics service for scalable prescriptive maintenance, IIoT, and Industry 4.0. The team of scientists, engineers, and industry experts is focused on digital signal processing, wavelets, machine learning, and other algorithms to prevent failures of industrial equipment by providing timely and automated maintenance instructions.
VibroBox works with a wide range of rotary equipment, including (but not limited to): pumps, turbines, compressors, generators, rotors, engines, bearings, gearboxes, rolling mills, wind farms, wheel pairs for cars and trains.
My responsibilities in VibroBox:
- IT infrastructure management
- Pilot and production deployments
- Strategy and technology advisor
- Business development, negotiations, presentations
- Financing and accounting
- Translations of scientific language into Common English
Some engineering tasks I’ve done:
- Designed a scalable cloud service architecture
- Developed REST API for the service
- Set up and kept dev tools and environment up to date
- Set up and administered cloud server hosting (Ubuntu)
- Developed iOS and Android apps to collect audio and accelerometer data
- Developed and supported the company’s website
- Established and performed team code reviews
- Techs:
- AWS Lambda
- AWS SES
- Docker
- Hugo
- HTML5
- CSS3
- bash
- Linux
- TravisCI
- PHP7
- YII2
- OpenAPI
- MATLAB
- Simulink
- openvpn
- MariaDB
– Co-founder, CEO, CTO of MAPS.ME
MAPS.ME is an open-source offline maps app for iOS and Android. A crowd-sourced OpenStreetMap data is used for walking and cycling directions, car navigation, discovering new places and local sightseeing. As of April 2018, MAPS.ME was installed by 100M users all over the world.
I worked in many roles and got extensive experience in engineering, team and technical leading, product and project management, business development, user support, marketing, public presentations, hiring and interviewing, teaching, etc.
- Techs:
- C++11
- Boost
- Qt
- ObjectiveC
- Java
- C
- iOS
- Android
- Linux
- Windows
- MacOS
- Bada
- OpenStreetMap
- OSRM
- clang
- gcc
- Python
- bash
- protobuf
- Golang
- AppEngine
– System Architect/VP of Engineering at MAPS.ME in Mail.Ru Group
After the acquisition of MAPS.ME, we hired a new engineering team of 25 in Moscow and passed all our knowledge to them. I was in a VP of Engineering role at the Maps department of Mail.Ru Group:
- Transitioned app, code, technology and knowledge to a new owner (Mail.Ru)
- Interviewed, trained, and led new dev and QA team
- Open-sourced MAPS.ME code to GitHub
- Developed offline map editor for MAPS.ME to upload map edits directly into the crowd-sourced OpenStreetMap database [source code]
- Developed and integrated open-source, scalable, cross-platform statistics engine Alohalytics for iOS, Android, and desktop (C++11), including client part and backend data collection
- Promoted MAPS.ME on developer conferences
– Co-Founder, CTO
Further growing of the startup till the acquisition.
- Product management and releases delivery
- Moved the codebase from C++99 to C++11
- Scaled maps data distribution cluster and HTTP delivery services to match growing user base
- Ported Open Source Routing Machine (OSRM) to iOS and Android to add offline navigation support [source code]
- Gradle build system integration for Android
- New product features development (including Navigation) and bug fixing
- Product web sites deployment and support
– Co-Founder, CEO
The most challenging period for MAPS.ME, when we grew our team and number of app user while trying to sell a paid app in AppStore and Google Play.
- Product management and releases delivery
- Increased worldwide userbase from 120K to 2.5M
- Break-even revenue generation by selling a paid version of MAPS.ME (MapsWithMe)
- Built dev and marketing teams (13 people)
- Developed and released 26 offline travel guides apps for iOS and Android (GuideWithMe)
- Established a development office in Minsk
- Business development, PR, and marketing
- New product features development and bug fixing
- Perfected user support
– Co-Founder
At that time, I led our small team of 3 in Minsk, responsible for a cross-platform build environment, code reviews, iOS, and Android. The most notable tasks included:
- Server-side OpenStreetMap data processing pipeline
- High load client/server maps distribution via HTTP
- Fast Unicode normalization algorithm for multilanguage offline search
- Native UI for iOS and Android, Qt UI for easier development on macOS, Windows, and Linux
- Compiled/ported core code to iOS, Android, Bada, Mac OS X, MinGW, Linux, Windows XP/Vista/7
– CTO at BLRSoft
BLRSoft, the R&D subsidiary of Abaxia, developed Launcher software and firmware for Vodafone, Orange, and other EU network operators. BLRSoft was acqui-hired by HTC in 2010 and renamed to HTC BLR.
I worked in many roles, including Senior Software Engineer, Team and Technical Leader, Project Manager, Technical Director, while working on mobile software for Symbian and Windows Mobile.
Some tasks that I’ve done:
- Implemented Symbian devices data text indexing and search functionality.
- Universal Content Provider project for Symbian and Windows Mobile.
- Implemented and maintained Symbian data providers with access to the device’s contacts, messages, calendar, bookmarks, network connections.
- Ported library for different Symbian platforms (3.1, 3.2, 5.0, N97) and maintained Windows Mobile compatibility.
- Developed Symbian “homescreens” for European network operators.
- Managed projects tasks, built and organized local developer/QA teams, including testing with different prototype devices.
- Designed projects architecture for several Symbian platforms.
- Developed some core components, including UI, networking, calendar events, contacts database, missed calls, messages, e-mails, status pane.
- Ported projects to Symbian 3.1, 3.2, and 5.0 (touch) devices.
- Wrote technical and architectural specifications.
- Integrated best practices from Agile/Scrum/Extreme programming.
- CardBrowser library for Symbian (microSD card auto-launch menu).
- Planned timeline and designed architecture and components.
- Implemented different UI and core library parts, including interactive controls, animation engine, ini-parser, images loading and caching mechanism.
- Supported mobile cross-platform GUI library for Windows Mobile and Symbian.
- Investigated and reviewed existing code and architecture.
- Migrated codebase from C to C++ and from SVN to Mercurial.
- Developed and maintained different system components, including messaging, networking, and UI.
- Supported and administered internal company infrastructure.
- Hired and interviewed new developers and QA.
- Ubuntu/Debian administration: virtual servers, backup, mail, network, wiki, LDAP, Mercurial, etc.
- Managed projects’ documentation on TRAC and internal wiki.
- Implemented cross-platform python auto-build system.
- Techs:
- C++
- C
- Symbian
- Windows Mobile
– Senior Software Engineer at InfoTechnology
InfoTechnology was a Belarussian division of a San-Francisco-based XIM company.
I developed a music and hum/singing voice recognition app for Symbian devices called "Midomi" for SoundHound Inc.
Some tasks that I’ve done:
- Got extensive dev experience with Symbian OS system environment and development tools.
- Designed and implemented GUI for Midomi, along with HTTP-based advertisement and HTTP player.
- Openwave C++ firmware for low-end mobile phones.
- Developed XSL transformations to convert internal XML documentation (which is also the source for C++ headers) into XML DITA format.
- Automated QA processes with supporting Perl scripts, including URL grabber, Purify log analyzer, HTML reports generator.
- Techs:
- C++
- Symbian
- Solaris
- XSLT
- Pair Programming
– Software Engineer (freelance)
Development of DVD Ripper/Player Station project, a Windows application for touch-screen devices to easily play and grab DVD content.
In particular, together with another developer, I have impemented:
- GUI
- Movies library
- Video files and DVD Playback with DirectShow
- Second monitor/projector support
- MultiDVD drives support
- Techs:
- Visual C++
- DVD
- AVI
- WinAPI
- ffmpeg
- DirectShow
– Software Engineer and Team Lead at Belsoft-Borlas Group
Development and support of "Smart IP", a transparent TCP/UDP network optimizer/switcher for desktop and mobile platforms, for the US-based customer.
Some tasks that I have done:
- Redesigned Windows Mobile client GUI and ported it to WM5.0.
- Integrated automatic Code Signing pipeline for Windows Mobile 5.0, including developer certificates at the development stage and VeriSign certificates for production based on Microsoft Mobile2Market program.
- Developed and maintained software installation packages for different Windows platforms.
- Ported existing client/server code for Windows Vista and Windows Server 2008, including LSP and NDIS network drivers.
- Implemented log files analyzer and statistics generator.
- Created a dozen of Functional Specifications and Design documents for different software components.
- Techs:
- Visual C++
- Windows Mobile
- WinNT
- NDIS
- IP Networking
– Software Engineer at Credo Dialogue
Credo Dialogue is a scientific & industrial company developing CAD-systems combined into a single technological chain of information processing (topographical and geotechnical surveys, engineering design, terrain modeling, etc.).
I worked on Topoplan and Genplan CAD software, 3D terrain/buildings modeling and editing, computational geometry algorithms, and project documentation.
Here I met my future MAPS.ME co-founders Yury Melnichek and Viktar Havaka.
Some tasks that I have done:
- Designed and implemented several software modules to manipulate geometrical primitives (to create/edit 3D points on the terrain, to align circles with splines, to create/edit parabolas, etc.)
- Implemented several complicated UI dialogs.
- Organized and maintained internal project documentation, including web site, automatic code documentation system with DoxyGen.
- Got a strong C++99 and STL experience with algorithms and big data sets.
- Techs:
- Visual C++
- STL
- IncrediBuild
- Doxygen
- Borland StarTeam
– Software Engineer and Team Lead at Spark IT
I organized and managed a team of 5 engineers to develop an Internet messaging app “Messenger2” (“M2”), similar to Trillan messenger with ICQ, AIM, MSN, Yahoo, and IRC protocols support, chat encryption, file sharing, video and audio conferences for a customer from the UK.
- Techs:
- C++
- TCP/UDP sockets
- STL
- WTL
- WinAPI
- ICQ
- AIM
Hobby projects
– Crossplatform IRC news feeds publisher bot
I have designed and implemented a configurable IRC bot for Windows and Linux for RSS/Atom/XML parsing with full range character encodings support. It was alive until 2016.
- Techs:
- C++
- Linux
- Windows
- curl
- Atom
- RSS
- XML
– Co-founder and coordinator of ByNets IRC network
ByNets was the largest IRC network in Belarus which united thousands of people from universities, dormitories, companies, and residential districts of Minsk.
- Techs:
- IRC
- UnrealIRCd
- Linux
- Drupal
– Home network administrator
I have built, administered and maintained Ethernet network in Minsk with 300+ users in my neighborhood (with total 1500+ users from nearby neighborhoods).
- Techs:
- Debian Linux
- Windows Server
- DNS
- DHCP
- bash
- Perl
– Belarusian State University of Informatics and Radioelectronics
Optimization (10x speed up) and statistics visualisation for random number generators based on linear feedback shift registers.
- Techs:
- Visual C++
- Assembler
Publications
- Algorithms for refinement of the shaft rotational speed for solving the problems of vibration diagnostics of rotary equipment / Y. Aslamov, I. Davydov, A. Borsuk, A. Aslamov // First World Congress on Condition Monitoring, London, 13-16 June 2017, Session 6E: Vibration condition monitoring methods and technologies / The British Institute of Non-Destructive Testing.
- Sparse wavelet decomposition of signals for solving vibration diagnostics problems / Y. Aslamov, I. Davydov, A. Borsuk, A. Aslamov // First World Congress on Condition Monitoring, London, 13-16 June 2017, Session 7E: Vibration condition monitoring methods and technologies / The British Institute of Non-Destructive Testing.
- Sparse wavelet decomposition in problems of vibration-based diagnostics of rotary equipment / Y.P. Aslamov, A.P. Aslamov, I.G. Davydov, A.V. Borsuk // Doklady BGUIR[BSUIR reports], 2017, no. 8 (110), pp. 91-98. (in Russian)
- Formation of informative features of shock processes using wavelet analysis of non-stationary vibration signals: the author’s abstract. Diss. MSc in Engineering: 1-39 81 03 / A.V. Borsuk; scientific adviser I.G. Davydov // Minsk: BSUIR, 2018. (in Russian)