Kamil Skalski, Software Developer in Gdańsk, Poland
Kamil Skalski

Software Developer in Gdańsk, Poland

Member since March 8, 2022
Kamil is a software engineer with experience in large distributed systems (tech lead of a web search infrastructure team in Google) and E2E development of user-facing apps (company founder with a product spanning physical mobile devices, desktop apps, and web endpoints). He led a team that scaled the web search index for the largest repository of web documents on the planet, co-developed and patented a novel data structure, and created a voting system used by governments.
Kamil is now available for hire

Portfolio

  • Elector
    .NET, Nemerle, Electron, gRPC, Vue, AES, C++, Embedded C, ASP.NET Core, C#...
  • Shareablee
    Java, Druid.io, gRPC, Git
  • DataX
    Java, Spark, Druid.io, Kubernetes, Python, Git

Experience

  • C#.NET 14 years
  • gRPC 10 years
  • Sharding/Cell Infrastructure 7 years
  • Large Data Sets 6 years
  • Performance 6 years
  • C++ 6 years
  • Large Scale Distributed Systems 5 years
  • ASP.NET Core 4 years

Location

Gdańsk, Poland

Availability

Part-time

Preferred Environment

C#.NET, C++, Distributed Systems, Big Data, Performance

The most amazing...

...system I've developed and scaled was the search index back end for the largest repository of web documents on Earth, handling thousands of queries per second.

Employment

  • Founder | Architect | Full-stack Software Engineer

    2003 - PRESENT
    Elector
    • Built the entire technology stack for managing data and voting on our custom-built mobile devices, transferring encrypted information from them to the central database, and displaying results on a desktop application.
    • Worked with a designer and front-end developers to transition the UI from WinForms to web-based technologies, designing and implementing APIs and a data structure and more complex functionalities on the front end.
    • Added a web server and web interface to the system allowing hybrid workflow for users to use a mix of physical devices in a meeting room and web portal to issue votes and observe data in the system.
    • Set up and managed private Kubernetes cluster with a distributed file (Longhorn) and database (HA PostgreSQL) storage.
    • Developed an early version of an Android app that communicates with the system through WiFi and allows participation in the voting process for users not using our physical devices.
    Technologies: .NET, Nemerle, Electron, gRPC, Vue, AES, C++, Embedded C, ASP.NET Core, C#, Google Protocol Buffer, .NET Core, Kubernetes, Helm, TypeScript, PostgreSQL, JavaScript
  • Software Engineering Consultant

    2018 - 2019
    Shareablee
    • Designed the initial pipeline version for storing social media mention data points in a time-series database (Druid).
    • Implemented an indexing pipeline controller (Java) for importing data points into a Druid-based time-series indexing system.
    • Evaluated performance of the created serving system backed by Druid for queries required in the company's business analysis service.
    Technologies: Java, Druid.io, gRPC, Git
  • Senior Software Engineer

    2016 - 2018
    DataX
    • Developed a big-data pipeline using Spark and Cassandra running in containers on a small Kubernetes cluster.
    • Designed parts of the schema and optimized queries run on a time-series serving system (Druid) to process telecommunication equipment metrics data.
    • Ported a Python query preparation and execution engine to Java optimizing performance 10x.
    Technologies: Java, Spark, Druid.io, Kubernetes, Python, Git
  • Staff Software Engineer | Tech Lead

    2007 - 2015
    Google
    • Scaled, as the tech lead of a nine-member team, the web search index serving system to handle a repository of x00B documents and thousands of QPS by adjusting data sharding and cluster layout, load testing, and overseeing production launch.
    • Contributed several data structure and performance optimizations to allow more data and QPS on a system with fixed resource allocation of highly specialized servers.
    • Rebuilt and maintained a pipeline accommodating timely updates of the index and its sharding correction data, including a novel data structure that I designed and developed with a coworker (US Patent US8700583B1).
    • Implemented and launched an alternate way to shard keys across an index serving cluster, allowing more flexible selection of sharding between data push and serving, which removed bottlenecks from push infrastructure and ensured reliable index updates.
    • Implemented a schema of index shard replicas exchange between servers during data refresh build, cutting time and resources used for index updates on a serving cluster by around 50%.
    • Improved reliability, transparency, and automation of the release process of a web search back end across tens of global data centers. Oversaw multiple rollouts, completing comparative load tests and debugging regressions and system behavior changes.
    • Built a cluster management platform module for orchestrating service assignments to data centers to maintain their global capacity during rollouts and traffic changes. Designed and implemented UI components for the platform (Java, GWT).
    • Improved, automated, and oversaw the cleanup of dead code from the company-wide codebase.
    Technologies: C++11, Large Data Sets, Large Scale Distributed Systems, Sharding/Cell Infrastructure, Python, Site Reliability Engineering (SRE), Scaling, Information Retrieval, Technical Leadership
  • Software Engineer

    2005 - 2007
    Axit
    • Expanded on features and bug fixes in order fulfillment and a shipment document processing web platform, designing and implementing technological solutions to customers' business needs.
    • Managed a configuration team that automated and applied custom configuration changes requested by customer support and designed special reports (SQL queries).
    • Built a Ruby on Rails internal website used for the automated execution of batch and on-demand parametrized database queries to smooth out workload on the configuration team.
    Technologies: Java, SQL, Oracle SQL

Experience

  • Hybrid Wireless and Web Voting System
    https://elector.pro

    The voting system used by local governments, public institutions, and companies running shareholder meetings. I am a founder and creator of the entire technology stack, including the desktop app, code for custom-produced mobile devices, and the web endpoint server.

  • Nemerle .NET Programming Language
    http://nemerle.org/About

    Nemerle is a general-purpose, multi-paradigm programming language for the .NET platform. It is as easy to learn and use as C# and employs a range of cool features enabling metaprogramming and functional programming. The metaprogramming is based on macros bearing some similarity to Lisp.

    I'm a co-creator of the language, designer of the metaprogramming facilities, and implemented significant parts of the compiler. The project received a Microsoft research grant, and over the years, many of its features were incorporated into the core C# language.

Skills

  • Languages

    C#.NET, Nemerle, C#, C++, C++11, Java, TypeScript, JavaScript, Python, Embedded C, SQL
  • Frameworks

    .NET, Google Protocol Buffer, gRPC, ASP.NET Core, .NET Core, Entity Framework Core, Electron, Spark
  • Other

    Programming Language Design, Sharding/Cell Infrastructure, Distributed Systems, Big Data, Performance, Algorithms, Data Structures, Large Data Sets, Large Scale Distributed Systems, Scaling, Formal Methods, Site Reliability Engineering (SRE), Information Retrieval, Technical Leadership
  • Libraries/APIs

    Vue, AES
  • Tools

    Helm, Git
  • Paradigms

    Agent-based Modeling, Compiler Design
  • Platforms

    Kubernetes
  • Storage

    Oracle SQL, Druid.io, PostgreSQL

Education

  • Master's Degree in Computer Science
    2000 - 2005
    University of Wrocław - Wrocław, Poland
  • Master's Degree in Computer Science
    2003 - 2003
    University of Paderborn - Paderborn, Germany

To view more profiles

Join Toptal
Share it with others