Profile

Aliaksei Artamonau

Senior Software Engineer at Crowdstrike

Aliaksei Artamonau is a highly experienced Senior Software Engineer currently working at Crowdstrike. With over 15 years of relevant experience, he has a deep understanding of various areas of software development, including databases, distributed systems, functional programming, algorithm

Show more

16.1

Years of Experience

Education

Companies

crowdstrike, couchbase, couchbase, couchbase, couchbase, synesis, ynode software

Reach out to Aliaksei Artamonau via Email, InMail and SMS drip

by installing Chrome extension

Aliaksei's contact details

Experience

  • img

    2022 - Present

    crowdstrike

    Senior Software Engineer

    Working on compilers and query languages. Haskell, Python

  • img

    2019 - 2022

    couchbase

    Software Architect

    I worked on the cluster manager for Couchbase Server, a distributed NoSQL database. - Designed and built a new metadata system based on the Raft consensus protocol for use in Couchbase Server, replacing an eventually consistent legacy system. Features: support for voting and non-voting participants, sequential consistency by default with an option for linearizability, multiple pluggable state-machines on a single replicated log, exactly-once writes, quorum fail-over. Quorum fail-over allows trading consistency for availability when more than a quorum of nodes are unavailable while still guaranteeing monotonic reads on surviving nodes (necessary to support legacy use-cases). - Leveraged the new metadata system to implement tombstone purging for the legacy metadata system that is still in use by components other than the cluster manager. This mitigated some scalability issues in global secondary and full-text indexes. - Looked into ways to speed up data rebalancing when nodes are added or removed. Advised a team-member on making improvements as a result of this investigation. Achieved significant speed-ups for certain types of topology changes. - Have worked on many customer issues. On multiple occasions tracked those issues down to bugs in third-party components (e.g. V8 JavaScript engine, Linux kernel, Erlang runtime system). Erlang/OTP, Python, Golang, C, CMake, Raft, Paxos, Consensus protocols

  • img

    2017 - 2019

    couchbase

    Principal Software Engineer

    - Participated in the design of durable writes (by default writes in Couchbase Server are persisted and replicated asynchronously) necessary to support transactions. Contributed the idea of using joint-quorums during topology change and the strategy used for recovery after node failures. Advised team-members on implementing these ideas. - Implemented a lease subsystem that provides for a way to take cluster-wide actions that require a unique leader. Moved all such activities to use the new subsystem.

  • img

    2015 - 2017

    couchbase

    Senior Software Engineer

    - Designed a protocol for integrating topology-aware services into Couchbase Server. Built a library implementing the protocol that is used to integrate global secondary indexes, full-text search, analytics, backup into the product. - Built the tool used by Couchbase Server to generate shard maps satisfying a number of constraints (primary balance, replica balance,rack-awareness for replica placement, replication fan-out balance). - Implemented a new recovery mode for failed-over nodes (known internally as delta-recovery). This mode reuses the data that is present on failed-over nodes and speeds up recovery.

  • img

    2011 - 2015

    couchbase

    Software Engineer

    - Extended leader election to support node priorities. Used to simplify rolling upgrades by electing a leader that runs the latest version of the product. - Integrated CouchDB style Map/Reduce secondary indexes. - Worked on the early version of cross-datacenter replication (remote cluster discovery, data ingestion endpoints using CouchDB replication protocol). - Built a new fast logging library for Erlang and moved the codebase to use it.

  • img

    2010 - 2011

    synesis

    Software Engineer

    - Implemented a number of kernel drivers for an IPTV/DVB-T set-top box from NXP. - Ported an existing IPTV application to a new set-top box from Motorola. This involved implementing a graphics and a DVB backend for the set-top box. Linux, C, C++, Python, DirectFB, SDL, GNU Make, CMake

  • img

    2008 - 2010

    ynode software

    Software Engineer

    Worked on various small- to mid-size mostly web based projects. Linux, Python, NumPy, PIL, Django, C, GNU Make, PyQt

Experience

21 Skills

Algorithms

Compilers

Couchbase

Data Structures

Design

Distributed Systems

Erlang

Functional Programming

Golang

Haskell

Javascript

Kernel

linux

Linux Kernel

NoSQL

Python

scalability

Senior Software Engineer

Software Engineer

strategy

Trading

Education