Oleksii Avramenko

(pdf version)

About

Eleven years of software engineering experience, a dozen programming languages, and quite a few technology stacks. Passionate about functional programming, Scala, Haskell, category theory, logic, and everything in between. Spend most of my free time learning Mandarin and Spanish, hacking on things, or just being outside more. I’ve been traveling full-time and working remotely since March 2018. Most likely, I’m somewhere in Southeast Asia right now.


Contacts


Work experience

image-right Scala Developer at UpStart Commerce, Inc..

May 2020 - Present

“Upstart commerce” is a startup company offering a headless e-commerce platform, a set of backend services providing APIs for various e-commerce needs. Big features, small bugs, production support, customer issues—you have to do it all in a small company. Besides that, we’re slowly moving towards reimplementing most of the key services in a pure FP, ZIO-based architecture.

PL: Scala


image-right Team/Tech Leader at Sisense Inc.

December 2016 - May 2020

I was leading a “Data Connectors” team working on providing connectivity to different data sources, normalizing the schema and extracting data for analytical purposes; targeting a wide range of data sources, like relational databases (MSSQL, MySQL, Postgres, etc.), file-based (CSV, Excel files), analytical databases and warehouses (Redshift, Google BigQuery, Snowflake), web services and social networks (Facebook, Twitter, Stripe, Hubspot, etc.) and many more. We used Scala for all of our projects with a high emphasis on functional programming. I’ve put a lot of effort into mentoring newcomers with OOP background to help them make the switch and educate other people about the benefits of FP.

PL: Mostly Scala, a bit of Java and C#, targeting Windows and Linux with Kubernetes orchestration.


image-right Scala Developer at Sisense Inc.

December 2015 - December 2016

Joined the company to design and implement an ETL infrastructure for connecting to various data sources and bring data into our proprietary data warehouse. The new framework design had to support multiple run time environments, be scalable, extendable and provide an SDK for 3rd party connectors development. It was implemented on JVM using Scala (the one I was leading) and on .NET using C#. The performance was vital, so it was quite an interesting and challenging experience designing a purely functional system that would perform as fast as an imperative version.

PL: Scala and C#


image-right Senior C++ Developer at Teramind Inc.

August 2015 - November 2015

Teramind is a startup company specializing in website and application monitoring, file tracking, network capture, session recording, and activity analysis. I was leading the OS X development branch of the project, ensuring that all features are aligned across platforms with the same quality level. Designed and implemented kernel extensions for darwin kernel that had to:

  • Control filesystem authentication: monitor or block folder activity, external drives mounting, network shares connections, cloud drives uploads/downloads

  • Filter network TCP/UDP packets. Receive, decode and parse application layer protocols like HTTP, SMTP, pop3, TLS/SSL, etc. and eventually make a decision based on the packet’s content.

PL: C++ for application code and C for kernel extensions, targeting OS X


image-right C++ Developer at Playtech, Poker

July 2014 - August 2015

Playtech’s Poker department develops an online poker platform. I was responsible for unifying multiple (platform-dependent) codebases under one solution that would simplify the app’s development, deployment, and maintenance. That involved porting existing functionality from iOS to Windows and Mac and vise versa. There were a lot of technical challenges that required deep knowledge of various low-level components and compilers.

PL: Mostly C++


image-right C++/C# Developer at Playtech, Videobet

September 2013 - July 2014

“Videobet” develops gaming terminals platform and casino management system. It was hosted on specific hardware, which posed a lot of interesting challenges. I mostly worked on the core functionality, game engine, tooling, testing automation, and infrastructure.

PL: C++ and C# targeting Windows Embedded


Lead Programmer (C++/Lua) at ERS Game Studios

January 2011 - September 2013

Game development company. I have participated in the development of more than 20 shipped games, including three of them as a lead programmer. I had a chance to do all kinds of work — developing engine internals, mentoring junior developers, drawing art, creating animations and sounds.

PL: Lua, C++ and Python


C++ Developer at AeroHills

July 2010 - December 2010 Game development company. I worked mainly on the game engine, rendering optimization, level editor, and various game mechanics.

PL: C++ and Python


Education

Kyiv National University of Technologies and Design

Computer Science, 2008 - 2012


References

Available upon request