Dmitry Lashkov
Verified Expert in Engineering
Software Developer
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
Experience
Availability
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
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.
Full-stack Developer, CTO, Co-founder
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.
Full-stack Developer
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.
Lead Front-end Developer
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.
Ruby Developer
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.
Full-stack Developer
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.
Full-stack Developer, Co-founder
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.
Experience
Playgong
Konstructor - Ruby Gem
https://github.com/snovity/konstructorQuantum Modeling of Simple Molecules
Alterer
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
Intranet Drug Accounting System
Skills
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
Education
Specialist's Degree in Computer Engineering and Applied Mathematics
Lomonosov Moscow State University - Moscow
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring