Curriculum Vitæ

Name

Michał Nazarewicz

Email

mina86@mina86.com

Skills

Programming languages

Good knowledge of C, C++, Rust, Python, JavaScript, TypeScript, shell scripting and Perl. Some Java, Lisp and Go. Basics of Assembly, Prolog and Haskell.

Systems

Comprehensive knowledge of GNU/Linux systems from user and administrator perspective as well as system and kernel developer.

Natural languages

Native Polish speaker, fluent in English.

Work

Senior Software Engineer (NEAR)

June 2021–October 2022

I’ve worked on the stability and performance of the NEAR protocol node. My largest project revolved around archival nodes where I’ve managed to reduce storage requirements by over 50% and further worked on allowing data to be moved from SSDs to HDDs. Since archival nodes keep terabytes of data, those effort meant considerable reduction in costs.

I’ve become perhaps quite prolific contributor to the code base and worked on improved external interfaces such as monitoring metrics, configuration and JSON and Rosetta RPC integration; as well as optimising the code and cleaning up technical debt collected through early growth of the code.

Technologies: Rust, Python

Core Developer (Hudson River Trading)

March 2019–September 2020

I’ve added low-latency integration to traditional and cryptocurrency exchanges. Those include market data feeds as well as order entry interfaces using a mixture of protocols (HTTP, FIX, custom binary protocols etc.).

I’ve worked on improving and optimising HRT’s internal libraries. For example by devising a more robust time-zone API (which not only improved performance but also prevented bugs during DST switch), pushing more use of new C++ features such as string_views (which helped remove memory allocation from hot paths) and speeding up some operations through use of SIMD instructions.

I’ve been responsible for ongoing maintenance and live troubleshooting during trading hours. My previous experiences have allowed me to promote a better ops practices which have improved robustness of HRT’s systems.

Technologies: C++

Quant Developer, VP (Barclays Capital)

March 2018–January 2019

I’ve worked on models for algorithmic trading of futures and currencies. I’ve developed a framework for automated verification of implementation’s behaviour to make sure it does not expose the firm to bigger risk than expected and that it follows bank’s often strict regulatory and contractual obligations.

As a person fluent in Python and git, I’ve developed several utilities integrating with source repository and our development workflows.

Technologies: Java, Python

Site Reliability Engineer/Software Engineer (Google)

January 2011–February 2018

I’ve worked on myriad of services and projects including: ⅰ) a large scale payments processing infrastructure processing and recording all transactions made to or by Google, ⅱ) a customer support centre serving customised help pages to users, ⅲ) a customer relationship management system helping marketers provide best support to customers, ⅳ) an HR systems tracking teams’ headcount, ⅴ) service managing the state of production systems and making changes to it and ⅵ) several development and productivity applications.

My roles varied from Site Reliability Engineer (where I was responsible for stability and monitoring of services under my care), Software Engineer (where I was developing new features) and Tech Lead (where I managed a team and directed development of a system), often involving a mixture of the three.

Technologies: Python, shell scripts, C++, MySQL, App Engine and plethora of internal Google technologies

Linux kernel hacker (Samsung Electronics)

May 2008–December 2010

I’ve worked on the Linux kernel and have written over 180 accepted patches. I was involved with the USB composite framework and memory management authoring multiple drivers and frameworks including Contiguous Memory Allocator, Mass Storage USB function and FunctionFS framework.

Prior to working on the Linux kernel I worked on a mobile web browser based on Mozilla suite including extensions development as well as investigation of Flash plugin support on ARM systems.

Technologies: C, shell scripts, C++

Other projects

Free software projects and contributions

A lot of my free software code is available on GitHub. I maintain Tiny Applications consisting of lots of utilities for everyday work in a Unix environment. I also maintain smaller projects such as urxvt-tabbedex and auto-dim-other-buffers.

Lastly, I’ve contributed to existing open source software such as Linux, Emacs, git, mpd, mpc, notmuch and plethora of other small projects.

Technologies: C, C++, Perl, shell script and more

mina86.com

My web page where I publish (mostly) technical entries from broad variety of topics.

Education

Bachelor of Computer Science defended with honours at the Information Technology and Electronics Department.

Mathematics, Informatics, Applied Mathematics department. Left to pursue computer science at WUT instead.