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

I’m a software engineer specializing in functional programming using strong static type systems, in Haskell in particular. I have worked many years as a full-time consultant helping our clients design and build correct, robust, and maintainable software. Being a consultant allowed me to participate in more projects that a typical software engineer gets to work on. I’ve developed the ability for critical thinking, making wise trade-offs, analyzing and exploiting advantages of various technologies to satisfy needs of business. I also learned how to handle different personalities and collaborate with diverse teams. My personal projects include high-profile Haskell libraries, tutorials, and a technical blog.

Professional experience

  • January 14, 2019–present. Senior software engineer at Tweag, Paris, France. Working as a consultant most part of the time, but also building OSS, writing blog posts, doing interviews for new hires, etc.
  • January 25, 2018–January 11, 2019. Software engineer at Tweag (remote). Worked as a consultant with a number of clients, helped developing Bazel rules for Haskell.
  • May 4, 2016–May 20, 2017. Tier 2 Haskell developer at Stack Builders (remote). Consulting several clients mostly from the US. Agile. Another part of the job was writing tutorials and blog posts to increase visibility of the company.

Open source

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

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

Writing

Technologies

  • Nix is one of the main technologies we use at Tweag. I run NixOS as my primary OS and use Nix daily in my work and for personal projects.
  • Strong knowledge of Git.
  • CI: Travis CI, Circle CI, Buildkite.
  • Databases: PostgreSQL, MySQL.
  • AWS.
  • Linux server.
  • Docker.
  • Bash/Python/Haskell scripting.
  • Dependent types, theorem provers: Coq.
  • 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.

Soft skills

  • I know how to work with people who have different types of personalities and skill levels.
  • Flexible and open to criticism. If I’m presented with good arguments, I can change my opinion. It’s not hard for me to admit that I may be wrong.
  • Active in discussion, good communicator.
  • I speak Russian (native), English (fluent), and French (intermediate).

Education

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