
Viktar Basharymau
Software Developer
Viktar is a seasoned developer with strong analytical skills and deep knowledge of different fields of computer science. He has production experience in Ruby, JavaScript, C#, and Java, is adept at FP, and is always eager to learn new things. He is an active open source contributor.
Portfolio
Experience
Algorithms - 8 yearsData Structures - 8 yearsFunctional Programming - 6 yearsRuby - 5 yearsJavaScript - 3 yearsRuby Performance - 3 yearsRuby on Rails (RoR) - 3 yearsBehavior-driven Development (BDD) - 3 yearsAvailability
Preferred Environment
Git, RubyMine, Vim Text Editor, Sublime Text, MacOS, Ubuntu
The most amazing...
...thing I've delivered is a system build with Rails and Node.js. The system consists of a big Rails app and several smaller Node.js and Ruby services.
Work Experience
Lead Ruby Engineer
The Hamon
- Supported a big old Rails application, constantly improving the code (performance-wise and maintainability-wise) and adding new features. Successfully migrated the app from Rails 2 to Rails 3, and then to Rails 4.
- Maintained a smaller Rails app for sending email and SMS notifications. This app was used by the main, big app I mentioned earlier.
- Created a Node.js REST back-end for one of our data sources. We used Elasticsearch to store the data.
- Built a microservice for PDF generation using Sinatra and Sidekiq.
- Created a websocket service in order to handle open connections between browsers and our backend. Some of our pages change frequently, so we use websockets messages to push notifications to clients. At the back-end, Redis was used.
- Created a tool to load-test most critical pieces of our software.
- Built deployment scripts for our apps in Capistrano 3.
.NET Key Developer, Java Key Developer
Epam Systems
- Took part in development of .NET-based event processing system (kind of like Google Alerts). The system consisted of a number of microservices communicating between each other via message queues.
- Implemented a number of quite complex stored procedures on SQL Server side in order to avoid unnecessary round-trips from the app to database and to create a layer of abstraction between DB schema and the application.
- Build a data loader for the see-results-as-you-type feature. The data loader processed a big pile of gzipped XML using Amazon-based Apache Hadoop cluster, enriched it with data from another data source and built an inverted index in MongoDB.
- Created a test framework in Ruby and Cucumber to ensure that our REST services work correctly. Our QA team used this framework to build automated tests.
.NET Key Developer
Epam Systems
- Created an ETL framework using C# as a replacement for another proprietary framework as lead developer of a small team.
- Implemented an ETL tool based on the framework I developed and compared it with the previously-written tool. There was a significant performance boost and noticeable improvements in maintainability.
- Created a tool to automatically compare output datasets of the app and the newly created app.
MS SQL Developer, Java Developer, FAST CCR Developer
Epam Systems
- Took part in the creation of a big ETL system written with use of FAST CCR framework in a team of about 20 people. FAST CCR is a proprietary framework written in Java.
- Optimized performance and created multiple queries and stored procedures for SQL Server.
- Created a testing framework to test the accuracy of output of our tool, prevent regressions, and measure performance.
- Replaced parts of FAST CCR that were performance bottlenecks with custom components which I implemented in Java.
- Developed a number of Ruby scripts to automate routine developer tasks specific to the project.
.NET Developer
Epam Systems
- Contributed to the creation of back-ends for a set of financial applications as part of a team of ~20 members. My responsibilities included bug fixing and implementation of new features using C# and ASP.NET.
Skills
Languages
CoffeeScript, Ruby, Domain-specific Languages (DSLs), JavaScript, SQL, Clojure, Haml, Haskell, Java, C#, Elixir
Frameworks
JSON Web Tokens (JWT), Sinatra, Capybara, Ruby on Rails (RoR), Flux, Factory Girl, ASP.NET, Hadoop
Libraries/APIs
Delayed Job, jQuery, Nokogiri, Underscore.js, Task Parallel Library (TPL), Sidekiq, Backbone.js, Ruby on Rails API, Node.js, React, D3.js, LeafletJS
Tools
Cucumber, RSpec, Git, Capistrano, RubyMine, Subversion (SVN), wkhtmltopdf, VCR, JBuilder, TortoiseSVN, Sublime Text, Vim Text Editor, WiX
Paradigms
Functional Programming, Test-driven Development (TDD), Metaprogramming, CQRS, Behavior-driven Development (BDD), Continuous Integration (CI), REST, Pair Programming, ETL, Continuous Delivery (CD), Microservices
Platforms
Heroku, Linux, Ubuntu, MacOS, FAST ESP, Docker, DigitalOcean, Amazon EC2
Other
Data Structures, Algorithms, Open Source, Legacy Code, Domain-driven Design (DDD), Ruby Performance, HTTP, Scraping, Web Scraping, WebSockets, Web Services, MSMQ, Servant
Storage
Elasticsearch, Redis, Microsoft SQL Server, MySQL, PostgreSQL, MongoDB
Education
Bachelor's Degree in Computer Science
Belarusian State University - Minsk, Belarus