Curriculum vitae (pdf)

Personal info, contact info

Mark Abramov
Russia, Saint Petersburg
phone: +7 960 746 20 08
skype: abramov.mark


  • Developing applications (web and non-web) since 2006
  • Good grasp of theoretical and practical aspects of programming (for example, I know what O- notation is, how to use it and when not to use it)
  • Making architectural design decisions for both greenfield projects and already existing megaliths of code
  • My primary focus is backend development, but I wear different hats, when it is necessary


This section contains languages and technologies I consider myself skilled in.


  • Ruby (since 2008)
    • Rails 2, Rails 3, Rails 4
    • Sinatra, Grape
    • EventMachine
    • RSpec
    • Countless ORM-s and libraries
    • GraphQL backend
  • SQL and RDBMS (SQLite, MySQL and PostgreSQL)
  • Elasticsearch, Solr, Sphinx
  • git


  • Haml, Sass, HTML, CSS
  • Salesforce API
  • Javascript
    • Fairly proficient with: react.js, jquery, Coffeescript
    • Less proficient with: Angular.js (v1), Node, Express.js
  • OS X, Linux administration
  • Chef
  • Machine learning basics

Work experience

Senior software developer,


Technologies: ruby on rails, graphql, react, mysql, elasticsearch, amazon web services (s3, cloudfront), salesforce api

  • Salesforce integration
  • International shipping project
    • Integrated internal shopping backend (inventory management, shipping, bookkeeping) with the shipping and payment solution. Significant changes to internal systems to allow for international support
  • Backend architecture and implementation for an MLM-like compensation structure
    • Core internal business system serving and paying approximately 20000 merchandisers. Backbone for many internal analytics services, dashboards and public facing UIs
    • Did the architectural design and implementation for quite a complex hierarchical scheme. Some technical details are in my blog post. Also, a ruby gem for RDBMS-backed trees with time-travelling capabilities came out of this
    • Planned and executed a two-phase zero-downtime switch from the old compensation system to the new one (with appropriate failsafes, which we didn’t have to use, though)

Senior software developer,

Technologies: ruby on rails (with a touch of grape, sinatra and padrino), mysql, solr (switched to elasticsearch later), most social network apis


  • Content retrieval subsystem development
    • Data miners for various social networks APIs (,,,, etc)
    • Crawlers for sites without public API
    • Search and stats server, IPC infrastructure

Senior software developer,

Technologies: ruby on rails, jquery, mootools, mysql, sphinx


  • Development
    • Supporting existing code base for
    • Writing new grabbers for various rakeback / referal program providers
    • Creating a new video server for user video upload
  • Servers administration

Senior software developer,

Technologies: ruby on rails, mootools, mysql


  • Full stack development from ground up
  • Administration, deployment, et cetera

Software developer,

Technologies: ruby on rails, jquery, postgres


Open Source

  • — my personal repository, mostly sandbox for new projects or testing new technologies, but also some bugfixes for libraries we used
  • draisine — Salesforce sync library
  • temporalis — temporal-aware trees persisted in RDBMS
  • — «organization account» containing:
    • jsus — javascript packager (capable of dependency resolving, compression and post-processing)
    • murdoc — small code documentation tool
  • Took part in amqp-ruby project, my biggest contribution to it was an RSpec addon for asynchronous testing called evented-spec