My Ruby Portfolio
The project consists of two parts: main grape-based API backend and web crawler, gathering vehicle sell postings from the web. API includes tricky communication layer based on Twilio. My noticeable goals were:
- migrate both apps from Resque to Sidekiq (jobs rework, queues tuning)
- add Sidekiq monitoring and logging extensions
- refactor/add MMS handling for Twilio
- leasing and freeing Twilio phone numbers
- forwarding calls/steganography (shown on screenshot)
- Amazon EC2 instances managing and tuning
- rewrite and make testable internal Slack messenger (shown on screenshot)
- integration with NewRelic, Rollbar, Papertrail and Dead Man’s Snitch 3rd-party services
- plenty of small refactorings (code had low quality)
And of course everything was tested with Rspec.
NOTE: my goals were related to backend only
VisitAngularJs + Ruby on Rails project with integration with Apple Passbook API and Apple push service. This project was done solely by myself for BestFit mobile company.
Features implemented:
- WYSIWYG pass designer with near pixel-perfect result with support of all five pass types
- several versions of the same pass supported
- ability to schedule publishing any version to registered devices using APB API (+push service)
- generating and signing passes
- simple and robust hand-crafted image uploading service (instead of Carrierwave or Paperclip). Creating it allowed decoupling image processing and make the whole pass creation process straight and neat.
- a whole bunch of nice other features
The code was heavily tested, and it was relatively easy, thanks to nice gems like
light-service
(I love Command pattern :) and
virtus
Heavy refactoring/cleanup/drying of legacy code and new features implementation. There was no unit tests at all, and became more than 500 after about three months as I’ve joined project.
Technologies used:
- common gems toolbox (about one hundred gems; rspec, cucumber, poltergeist, rails 3.2, capistrano, mysql etc.)
devise
with heavy customization to satisfy business needsactive_merchant
billing (with authorize.net binding/testing)activeadmin
with decorated modelswicked_pdf
for health history pdf generationcocoon
for nested forms (yep, it was long time ago :)jenkins
CI with github PR triggersmercury
editorerrbit
redmine
Note on frontend: when I joined this project, frontend (including JS) was almost completed, I’ve done only refactoring of CSS (SCSS+Compass) and JS (CS).
VisitAlmost completely rewritten backend (Ruby on Rails based) ugly source code, added completely missed integration/unit specs, added Mercury Editor for admins, no frontend work applied (client is waiting for new design), removed or taken from gems 90% of code (JS mostly).
Results of refactoring:
3,626,024 bytes -> 322,949 bytes
536 files changed
5562 insertions(+)
98880 deletions(-)
Less code, less trouble :)
VisitRegular complexity site for Russian logistic company, made solely by myself from the ground. Some features (menu items) client decided to implement in the future.
Tools used:
- Ruby on Rails 3.2
- MySQL (not my decision)
- simple_form
- strong_parameters (while using Ruby on Rails 3.2)
- rubytree
- active_admin
- compass-rails
- bootstrap-sass
- rspec
- capybara
- factory_girl_rails
- livereload
- capistrano
- passenger
This site was created using Hugo, Google Material Design Lite, built by Brunch and deployed by my custom script based upon SSHKit