Curriculum vitae (pdf)

Personal info, contact info

Mark Abramov
Russia, Saint Petersburg
phone: +7 960 746 20 08
github: https://github.com/markiz
e-mail: me@markabramov.me
skype: abramov.mark
website: http://markabramov.me

Experience

  • 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

Technologies

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

Primary

  • 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

Secondary

  • 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, chloeandisabel.com

2015–2018

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 flow.io 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, brandspotter.ru

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

2011–2015

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

Senior software developer, mirpokera.com

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

2010–2011

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

Senior software developer, grindmonster.com

Technologies: ruby on rails, mootools, mysql

2011

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

Software developer, play-me.ru

Technologies: ruby on rails, jquery, postgres

2009–2010

Open Source

  • https://github.com/markiz — 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
  • https://github.com/jsus — «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