Resume

Summary

Software engineer specializing in functional programming using strong static typing, in Haskell in particular.

Tech work experience

  • May 4, 2016–May 20, 2017 Tier 2 Haskell developer at Stack Builders (remote). The job involved working for several clients mostly from the US. Web-applications built with Yesod, Snap, Servant (including a micro-service based system with Servant on backend). Agile. Another part of the job was writing tutorials and blog posts to increase visibility of the company.

  • January 25, 2018–present Software engineer at Tweag I/O (remote).

Haskell

  • Concepts (not mentioning basic things like rank-N types, existentials, phantom types etc.): EDSL using combinators, GADTs, type-level programming, generics, TH, high-performance Haskell, parallel and concurrent Haskell, FFI, lens (van Laarhoven/profunctor).

  • Libraries I’m familiar with (not mentioning vital common things like monad-control and base): lens, aeson, conduit, postgresql-simple, persistent, esqueleto, dbmigrations, parsec, megaparsec, attoparsec, yesod, snap, servant, http-client, http-conduit, wreq, req, cryptonite, warp, websockets, socket, network, HUnit, hspec, QuickCheck, test-framework, tasty, hedgehog, webdriver, optparse-applicative, path, path-io, stache, vector, containers, unordered-containers, binary, cereal, store, distributed-process, reflection, constraints, kan-extensions, etc. I have experience with most of the libraries in active use in the Haskell ecosystem.

Technologies

  • Databases: PostgreSQL, MySQL.
  • AWS.
  • Linux server.
  • Strong knowledge of Git.
  • CI: Travis CI, Circle CI.
  • Dependent types, theorem provers: Coq.
  • Bash/Python/Haskell scripting.
  • Build systems: make, shake, Bazel.
  • Server automation: Ansible.
  • Front-end: HTML (5), CSS (Bootstrap), JavaScript (jQuery, AJAX, websockets).
  • Other languages I know: C, C++, Python, Common Lisp, Emacs Lisp.

Open source

  • Megaparsec—Industrial-strength monadic parser combinator library.
  • Req—Easy-to-use, type-safe, expandable, high-level HTTP library.
  • Zip—Efficient library for manipulating zip archives.
  • MMark—Strict markdown processor for writers.

The full list can be found at https://markkarpov.com/oss.html.

Writing

Soft skills

  • I speak Russian (native) and English (fluent, experienced with documentation/tutorial writing).

  • Stress-resistant, open to criticism/discussion.

Education

  • 2009–2014—Polzunov Altai State Technical University. Engineer degree in informational technology and measuring engineering.