Mettā

decentralized internets

Resumé

Brief

  • Name: Berkus Karchebnyi
  • Current position: Principal Software Engineer, Microsoft M365 Core
  • Seeking position: (Principal) Rust Software Engineer, Rust Technology Lead
  • Email: [email protected]

Skills

  • Strong collaborative leadership (good at organizing people and keeping them involved).
  • Strong technical documentation and communication ("write it down", ELI5).
  • Excellent knowledge of Rust (own projects), over 8 years programming experience, including no_std environments.
  • Also a member of Rust Embedded WG.
  • Excellent knowledge of C++ (templates, exceptions, standard library, bughunting), over 20 years programming experience.
  • Experienced in various infrastructure tools (source control systems - Git, Pijul, jj; scripting in Ruby, Python, shells; build pipelines - GitHub, 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

Principal Software Engineer. June 2024 — Present time.

Developing a suite of SDKs to accelerate migration of core C# services to Rust. My focus areas include open-telemetry and C# interop areas. Working on the interoptopus project in OSS to improve C#-Rust interop.

Twilio twilio.com

Principal Software Engineer, Engineering Team Lead. April 2016 — May 2024.

Initially maintained an Android Chat SDK, improving JNI layer and fixing bugs. Grew to lead the Conversations SDK team, which included Android, iOS and JavaScript developers producing corresponding platform SDKs.

Led C++ libraries upgrade for SDKs, and led migration from C++ to native implementations (Swift and Kotlin). One of the Kotlin native SDKs has been published to OSS - twilio-sync-sdk.

Led the effort to document the largely undocumented body of SDK code and converted it into "specs first" approach, which then let the SDK team parallelise writing three platform implementations.

Exquance exquance.com

Co-founder, CTO, developer. June 2012 — April 2016.

Managed teams of outsource developers, set up CI/CD infrastructure, developed iOS (UIKit) and Windows (WPF, Visual Basic) applications.

Implemented a mandatory CI pipeline for all components of the software, speeding up the development cycle; removed the "works on my machine" development mentality.

Skype skype.com

Software Engineer. November 2004 — April 2013.

Worked on Linux version of Skype UI using Qt library. Then worked on Linux audio support for Skype on consumer electronics devices (TVs, MIDs, etc).

Implemented from the grounds up full audio stack support in Linux Skype UI, including ALSA, PulseAudio, and OSS4. Integrated with pre-existing audio library infrastructure. Implemented Android audio support using OpenCORE.

Infinet Wireless, Inc. infinet.ru

Software Engineer. June 2004 — July 2004.

Read more 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

Web Developer. July 2003 — May 2004.

Read more 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. Wrote a speed-optimized website statistics analyzer in Ruby. Implemented a big system upgrade by installing a new Linux system with fresh software and greatly optimized it for speed.

Achieved better performance of the system by integrating better log files analysis. Improved site visitors log detail level compared to the previous implementation.

Visual Mechanics vismech.ru

Web Developer. September 2001 — July 2003.

Read more Coded PHP for a lot of websites including several web shops. 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 constructor tool for a website backoffice.

AG Courier zauralmedia.ru

Systems administrator, Developer. June 2000 — July 2001.

Read more Maintained a small network of non-linear video editing PC stations. Wrote assorted in-house software.

  • Designed and implemented a small CRM tool in PHP.
  • Reverse-engineered binary storage format used by the broadcasting hardware.
  • Designed and implemented a news ticker (crawl) text input editor application for TV broadcasting in C++. The editor allows a human operator to enter multiple entries, enable and disable them based on a given schedule, and generate dumps for a set of calendar dates in a format supported by the video broadcasting hardware. It was used to organize and simplify maintenance of crawling texts by keeping an archive, automatically expiring entries, allowing quick search and replace within an archive. Usability (UX in particular) was of utmost concern during design phase - operator has to enter 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

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 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 no_std Rust.

aarch64-cpu rust-embedded/aarch64-cpu

Maintainer, Rust programming.

Co-maintaining ARM cpu crate as part of Rust Embedded WG. The crate provides essential low-level ARM abstractions for embedded systems and is widely used in the Rust Embedded ecosystem (55 official dependent crates on crates.io).

Interoptopus ralfbiedert/interoptopus

Maintainer, Rust and C# programming.

Contributing support for C#-Rust ffi interop, implemented Wire<T> serialization format to support passing more complex types through the ffi boundary.

Criterion criterion-rs/criterion.rs

Maintainer, Rust programming.

Revitalizing criterion through community efforts after it has been in neglect for a long while. Started a new org with the intent of allowing wider community contributions.

GG metta-systems/gg

Maintainer, Rust and Svelte programming.

Contributing to GG (a GUI for Jujutsu VCS) by consolidating and staging multiple community PRs in repository while @gulbanana is busy or away. This is mostly a testing playground, with the hope that PRs get merged back into the main repository over time.

Pijul nest:pijul/pijul

Maintainer, Rust programming.

Contributing to a powerful distributed VCS based on theory of patches. I work on improving the user experience, command-line interface and adding a GUI.

Amarok amarok.kde.org

Co-auther, C++ programming.

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 KDE/akregator

Author, overall design, C++ programming.

A KDE RSS aggregator. I wrote Akregator in the time KDE had no RSS aggregator software. Akregator is highly appreciated by many users. It has earned Application of the Month status in January 2005 (interview). 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 20 years have passed).

Hobbies

I am interested in competitive multiplayer games (ARC Raiders ftw!), 3D printing and embedded electronics and software.

I love making open source projects easier to maintain - by providing CI pipelines and release-plz publishing, so if you want to be able to easily publish your crates and have them continuously tested and well, give me a shout!

home