Dmitry Lashkov, Developer in Saint Petersburg, Russia
Dmitry is available for hire
Hire Dmitry

Dmitry Lashkov

Verified Expert  in Engineering

Software Developer

Location
Saint Petersburg, Russia
Toptal Member Since
February 25, 2016

Dmitry is a software engineer with over seven years of experience. He has worked with existing products, built complex ones from scratch, and has the ability to focus, dive in, and gain a complete understanding of the problem he's solving. He loves automated tests, reviewed pull requests, and agile methodologies because they allow developers to build quality products and grow professionally. Ruby and Ember are his technologies of choice.

Portfolio

Toptal Client
Rollbar, JavaScript, SCSS, HTML, jQuery, Heroku, PostgreSQL, Sidekiq, Ember.js...
Playgong
Amazon Web Services (AWS), Bootstrap, SCSS, HTML, Monit, Capistrano, Sidekiq...
Hybrid (via Toptal)
Airbrake, Heroku, Puma, Bootstrap, HTML, SCSS, jQuery, Haml, Stripe, PayPal...

Experience

Availability

Part-time

Preferred Environment

Git, Bash, RubyMine, Ubuntu

The most amazing...

...thing I've built is a quantum simulator for the dynamics of simple molecules.

Work Experience

Lead Full-stack Developer

2017 - PRESENT
Toptal Client
  • Led a team of developers to convert a single-tenant fintech app into a multi-tenant one.
  • Implemented reliable imports of customer and financial data.
  • Helped pick the next best feature based on the ROI.
  • Effectively managed tech debt, helping to make refactoring decisions based on tradeoff between long-term stability and immediate development time investment.
  • Worked on a solid integration of microservices.
  • Introduced peer-reviewed pull requests and continuous deployment with CircleCI.
Technologies: Rollbar, JavaScript, SCSS, HTML, jQuery, Heroku, PostgreSQL, Sidekiq, Ember.js, RSpec, Ruby on Rails (RoR), Ruby

Full-stack Developer, CTO, Co-founder

2014 - PRESENT
Playgong
  • Implemented a fully-fledged API for Android, iOS, and Ember apps from scratch.
  • Built a responsive Ember CLI app that consumes the API and reports JS errors to Errbit.
  • Extended Rails architecture with class groups like services (for business logic), policies (for authorization), and queries (for fetching records) to avoid bloated controllers and models.
  • Implemented an effective API versioning scheme with only the two latest API versions to maintain.
  • Implemented leaderboard versioning, allowing user to change any game result and recalculate the leaderboard state.
  • Achieved 100% test coverage of the code base with unit, controller, and integration tests.
  • Set up continuous deployment process via Jenkins, automated tests, and hot unicorn deploys via Capistrano.
  • Set up a separate Ember deployment process with asset uploads to AWS S3 and API behind an Nginx reverse proxy.
  • Set up process monitoring with Monit.
Technologies: Amazon Web Services (AWS), Bootstrap, SCSS, HTML, Monit, Capistrano, Sidekiq, RSpec, MySQL, Ember CLI, Ember.js, Ruby on Rails (RoR), Ruby

Full-stack Developer

2016 - 2017
Hybrid (via Toptal)
  • Wrote a flexible client crediting solution for the platform allowing clients to hire workers for one-off online jobs. Clients could use both prepaid mode and weekly/monthly charges based on the amount of services used. Credit limit and other limits were put in place.
  • Found and fixed multiple race conditions and other bugs in previously written PayPal integration code for incoming client payments and outgoing worker payments. Improved Stripe integration. As a result, the company stopped losing money because of incorrectly processed payments.
  • Introduced DRY principle, lean models, and a controller approach by extracting business logic into specialized service classes. All new code, including service classes, received full coverage with specs.
  • Found and fixed bugs in the subsystem accounting the amount of work done by workers.
  • Made the whole test suite pass by fixing all previously broken tests, introduced Better Specs guidelines and continuous deployment using CircleCI.
  • Optimized slow and complex SQL queries by replacing nested queries with outer joins.
  • Improved quality of the code submitted by colleagues by carefully reviewing pull requests.
Technologies: Airbrake, Heroku, Puma, Bootstrap, HTML, SCSS, jQuery, Haml, Stripe, PayPal, Capybara, Sidekiq, RSpec, PostgreSQL, Ruby on Rails (RoR), Ruby

Lead Front-end Developer

2016 - 2016
Anatas (via Toptal)
  • Led a team of developers reviving and migrating an Ember 1 enterprise cloud management app without Ember Data to Ember 2 with Ember Data. The goal of winning corporate tender was successfully achieved.
  • Improved UI/UX and in-app workflows.
  • Integrated the app with a new infrastructure of Node.js Express microservices used to control CloudFoundry.
  • Introduced Ember components with a “data down actions up” approach.
  • Introduced SCSS with multiple partials, mixins, and variables instead of one CSS file.
  • Added back-end mocking with Mirage.
  • Cleaned up the codebase and enforced strict coding standards on pull requests using ESLint.
Technologies: Bootstrap, SCSS, Cloud Foundry, MongoDB, Mirage, Ember CLI, Node.js, Ember.js

Ruby Developer

2013 - 2014
Vinted
  • Worked on implementing an escrow subsystem of the marketplace by integrating a whitelabeled payment system via REST API.
  • Worked on integrating package delivery monitoring for the escrow subsystem.
  • Led a team as scrum master to implement vouchers for the marketplace.
  • Developed company account balance calculation that separated voucher money from escrow money and showed turnover.
  • Implemented funnel tracking in the internal analytics tool.
  • Implemented app-wide feature switches and integrated them with existing A/B test functionality.
  • Refactored old parts of the system via a two-step process of new tests first and refactoring itself second.
  • Eliminated race conditions in internal marketing campaign tool.
Technologies: Backbone.js, Delayed Job, RSpec, MySQL, Ruby on Rails (RoR), Ruby

Full-stack Developer

2012 - 2013
Same System
  • Implemented a retail shop network budget analysis tool from back-end to front-end.
  • Maintained and updated the salary calculations subsystem for various jurisdictions.
  • Rewrote the vacation planner and other old and neglected parts of the system.
  • Eliminated numerous haunting false positives from headless browser Cucumber integration tests by employing a deterministic approach.
  • Developed a library for time segment calculus.
  • Developed a library for table generation in CSV, HTML, and JSON formats.
  • Quickly solved critical bugs.
Technologies: JavaScript, Delayed Job, Cucumber, MySQL, Ruby on Rails (RoR), Ruby

Full-stack Developer, Co-founder

2011 - 2012
Tenderella
  • Created a web scraper for public tenders using Ruby.
  • Designed a PostgreSQL database for various tender types and accompanying official notices.
  • Used Ruby on Rails single table inheritance and polymorphic associations to solve the problem of many types of tenders and notices.
  • Integrated Solr for fast and relevant tender search.
  • Integrated Resque with Rufus Scheduler for periodical runs of the web scraper.
Technologies: Nokogiri, Resque, Solr, PostgreSQL, Ruby on Rails (RoR), Ruby

Playgong

A leaderboard app for real life 1 on 1 games and sports. Back-end Rails API and front-end Ember app were created by myself from scratch.

Konstructor - Ruby Gem

https://github.com/snovity/konstructor
Multiple constructors in a idiomatic Ruby way. Small, fast, thread-safe, doesn't depend on other gems.

Quantum Modeling of Simple Molecules

A C# application that simulates hydrogen, oxygen, and carbon atom collisions, covalent bonds, associations, and dissociations for water and methane molecules. The app accounts for quantum effects using an algorithmic approach that is based on constructive physics. The core idea is to represent each atom by several imaginary interconnected atoms to simulate a quantum wave packet.

Alterer

The Alterer component within the Playgong racket sports leaderboard app manages the accounting of game results. It forms part of a subsystem that implements comprehensive leaderboard versioning through a concept called "alterings," similar to Git commits in version control systems.

Alterings encompass various actions, such as joining or leaving the leaderboard, as well as recording game results. Additionally, Alterer enables the revision of old game results. For example, if a user modifies the outcome of a past game, the leaderboard's history is recalculated, resulting in a new final version that reflects the updated information.

Casual Multiplayer Games

Front-end part of multiplayer dice and dominoes games written in ActionScript for Flash platform. These games were fat clients and simulated back-end logic for better game responsiveness. Front-end confirmed its calculations with back-end after getting a response.

Intranet Drug Accounting System

A web app for the internal network of a big medical complex. It was integrated with an accounting windows app used by the facility. Departments started using the new web app to manage drug distribution and consumption and longer needed a licence for a desktop client of the accounting app. It saved a fortune for the medical facility.

Languages

Ruby, SQL, SCSS, Emblem, CSS3, HTML, JavaScript, HTML5, C, C++, C#, Haml, Python, YAML, Unicorn, Microsoft Assembly x86 (MASM), Bash

Frameworks

Ruby on Rails (RoR), Ember.js, Factory Girl, Bootstrap, Capybara, GrapesJS, Express.js

Libraries/APIs

Ember Data, Sidekiq, Ruby on Rails API, JSON API, jQuery, Handlebars, Sucker_punch, JSONP, GCM, Underscore.js, Delayed Job, Stripe, Devise, Rollbar, Node.js, Nokogiri, Backbone.js, Paperclip, Resque

Tools

RSpec, GitHub, Cucumber, Git, JBuilder, Grunt, NGINX, Bower, NPM, Capistrano, RubyMine, Solr, Airbrake, Monit

Paradigms

Object-oriented Programming (OOP), Scrum, Test-driven Development (TDD), ACID, Concurrent Programming, Agile Software Development, Behavior-driven Development (BDD), Model View Controller (MVC), Microservices, Progressive Enhancement, Kanban

Platforms

Heroku, Linux, Ubuntu, Amazon Web Services (AWS), FreeBSD

Other

CanCan, Ruby Gems, PayPal, Lean Startups, Ember CLI, User Stories, Puma, Mirage, Cloud Foundry, Ruby Performance, Development

Storage

JSON, Redis, Memcached, PostgreSQL, MySQL, MongoDB

2004 - 2009

Specialist's Degree in Computer Engineering and Applied Mathematics

Lomonosov Moscow State University - Moscow

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring