Resume
- Enable JavaScript to see this email
- https://github.com/mrkkrp
- https://twitter.com/mrkkrp
- https://www.linkedin.com/in/mark-karpov-73789914a
- https://stackoverflow.com/users/3687048/mark
- PDF version of the 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
andbase
):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
-
I’ve authored a number of tutorials as part of my job and on my own, see e.g. GHC optimization and fusion, the full list is available at https://markkarpov.com/learn-haskell.html.
-
Blog posts are available here, see e.g. Free monad considered harmful from the recent ones.
-
I’ve authored two chapters for the upcoming book Intermediate Haskell: Exceptions and Megaparsec. Unfortunately the content is not publicly available yet (only available to reviewers).
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.