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
- Authored a bidirectional salesforce sync integration library
- 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
- harvester — HTML parser generator DSL
- draisine — Salesforce sync library
- temporalis — temporal-aware trees persisted in RDBMS
- https://github.com/jsus — «organization account» containing:
- Took part in amqp-ruby project, my biggest contribution to it was an RSpec addon for asynchronous testing called evented-spec