Quick jump:
[Skills](#skills)
[Previous jobs](#previous-jobs)
[Software projects](#open-source-software-projects)
[Hobbies](#hobbies)
# Brief
* Name: **Berkus (Stanislav Karchebny)**
* Current position: **Principal Software Engineer, Twilio Conversations group; Tech Lead in the SDK team**
* Preferred position: **Rust Engineer, Rust Technology Lead, Architect**
* Email: [[email protected]](mailto:[email protected])
# Skills
* Good **teamwork** (good at organizing people and keeping them involved).
* Good **documentation** skills ("write it down", ELI5).
* Excellent knowledge of **C++** (templates, exceptions, standard library, bughunting), over 20 years programming experience.
* Good knowledge of **Rust** (own projects), over 7 years programming experience.
* Experienced in various infrastructure tools (source control systems including Git, Pijul, jj; scripting in **Ruby**, **Python**, **shell**; build pipelines - circleci, jenkins).
* Experienced software localiser to other languages (Russian/English).
* Some experience in SwiftUI.
* Some experience in Android development, mostly Java- and JNI-based.
# Previous jobs
## Microsoft [microsoft.com](https://www.microsoft.com/)
**Principal Software Engineer**
*June 2024 — Present time.*
## Twilio [twilio.com](https://www.twilio.com/)
**Principal Software Engineer, Tech Lead**
*April 2016 — May 2024.*
Started by maintaining an Android Chat SDK, improving JNI layer and fixing bugs. Gradually grew to lead the Conversations SDK team, which includes Android, iOS and JavaScript developers producing corresponding platform SDKs.
I've carried out a C++ libraries upgrade for SDKs, and now leading migration from C++ to native implementations (Swift and Kotlin) for mobile SDKs.
I'm leading the effort to document the largely undocumented body of SDK code and convert it into "specs first" approach.
## Exquance [exquance.com](https://www.exquance.com/)
**Co-founder, CTO, developer.**
*June 2012 — April 2016.*
Managed teams of outsource developers, set up CI/CD infrastructure, developed iOS software in UI Kit and Windows software in Visual Basic, WPF.
I've implemented a mandatory CI pipeline for all components of the software, speeding up the development cycle and removing the "works on my machine" development approach.
## Skype [skype.com](https://www.skype.com/)
**Software Engineer.**
*November 2004 — April 2013.*
Worked on Linux version of Skype UI using Qt library. Then worked on the consumer electronics Linux audio support for Skype.
Implemented from the grounds up full audio stack support in Linux Skype UI, including ALSA, PulseAudio, OSS4 support. Integrated with pre-existing audio library infrastructure. Implemented Android audio support using OpenCORE.
## Infinet Wireless, Inc. [infinet.ru](https://www.infinet.ru/)
**Software Engineer.**
*June 2004 — July 2004.*
Implemented wireless router monitoring interface using native Infinet libraries and Qt.
Implemented Qt3 version of monitoring software. Integrated with existing framework libraries.
## IA Neftegaz.RU [neftegaz.ru](https://www.neftegaz.ru/)
**Web Developer.**
*July 2003 — May 2004.*
Maintained a large Oil & Gas industry portal web site acting as both a web-programmer (writing PHP and **Ruby** code) and as a server administrator. I wrote a speed-optimized statistics analyzer in **Ruby**. I also did a big upgrade by installing a new Linux system with fresh software and greatly optimized it for speed.
By carefully analyzing logfiles my system was able to achieve better performance and nicer site visitors log detail level than the previous implementation.
## ASK Group [ask.ru](https://www.rusprofile.ru/id/3993294)
**System administrator.**
*March 2003 — July 2003.*
Maintained a large distributed Windows network consisting of three offices in three regions connected through VPN into a single domain.
Less of a programming and more of user- and systems-administrative work.
## Visual Mechanics [vismech.ru](https://www.rusprofile.ru/id/4230162)
**Web Developer.**
*September 2001 — March 2003.*
Coded PHP for a lot of websites including several web shops. I also took part in a big web-based document flow software project.
Implemented web shop framework in PHP, which was used for several further projects. Created a [visual table building](https://github.com/berkus/negine) tool for site backoffices support.
## AG Courier [zauralmedia.ru](https://spravkaru.info/kurgan/company/kurer)
**Systems administrator, Developer.**
*June 2000 — July 2001.*
Maintained a small network of [non-linear video editing](https://en.wikipedia.org/wiki/Non-linear_editing#DV) PC stations. I also wrote software for internal use.
* Designed and implemented a small CRM-style tool in PHP. Designed and implemented a crawling text input editor application for TV broadcasting.
* Reverse-engineered binary storage format used by the broadcasting hardware.
* Implemented the editor software which allows a human operator to enter many entries, enable and disable them based on given schedule, and generate dumps for given set of dates in video broadcasting hardware's supported format. It was used to organize and simplify maintenance of crawling texts by keeping an archive, automatically expiring entries, and allowing quick search and replace within an archive. Usability (UX in particular) was of utmost concern during design phase - operator has to enter up to as many as 500 entries in one run, hence things like keyboard shortcuts, dictionary-based autocompletion, quick search and replace were implemented. The system was implemented using Borland C++ Builder.
# Open Source Software projects
## Metta OS [metta.systems](https://metta.systems/)
**Author, overall design, Rust and asm programming.**
Metta is a novel operating system for creative nomads with hi-tech devices and ubiquitous Internet access. I'm exploring the future of Human-Machine interaction using augmented reality, associative data storage, data ownership, publishing and filtering facilities.
## Vesper [gh:metta-systems/vesper](https://github.com/metta-systems/vesper)
**Author, overall design, Rust and asm programming.**
Vesper is a single-address-space nanokernel for Metta. I am exploring a way to make minimalistic kernel where policy decisions will be mostly outside the privileged core while still performing decently. This is also an exercise in low-level Rust.
## Amarok [amarok.kde.org](https://amarok.kde.org/)
**C++ programming, co-author.**
Amarok is the KDE audio player. I have joined the team at version 0.6. I took part in localization effort, visual and user interaction design, system architecture design. I am no longer an active part of the development team.
## Akregator [gh:KDE/akregator](https://github.com/KDE/akregator/)
**Author, overall design, C++ programming.**
A KDE RSS aggregator. I started Akregator in the time KDE had no RSS aggregator software. Akregator is highly appreciated by many users. It has earned [Application of the Month](https://dot.kde.org/1105456661/) status in January 2005 ([interview](https://web.archive.org/web/20050306090912/http://www.kde.org.uk/apps/akregator/interview.html)). It is now included in main KDE packages. I am no longer an active part of the development team, the version of Akregator you see on github is a new rewrite without my contributions (over 18 years already passed).
# Hobbies
I am interested in competitive multiplayer games, 3D printing and embedded electronics and software.