Last active
June 27, 2019 08:54
-
-
Save garnu/1115891 to your computer and use it in GitHub Desktop.
My Ruby CV
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'rubygems' | |
%w(active_support active_record i18n).each{ |g| require g } | |
module Skills | |
def main | |
{ | |
programming_languages: %w(Ruby Javascript Golang Bash), | |
development_frameworks: %w(Rails Node/Express.js Sinatra Grape React), | |
data_stores: %w(PostgreSQL MySQL Redis Cassandra Memcached), | |
testing: %w(RSpec Cucumber Jest), | |
front_end: %w(HTML5 HAML Javascript jQuery CSS SASS), | |
scm: %w(Git Subversion), | |
web_servers: %w(Nginx Apache Puma), | |
cloud_platforms: %w(AWS GCP Heroku DigitalOcean), | |
operating_systems: %w(Debian/Ubuntu RedHat/CentOS) | |
} | |
end | |
end | |
module Experience | |
def self.included(base) | |
class << base | |
def experience | |
jobs = [] | |
jobs << { company: 'Zircode', | |
industry: 'Web-based Software Development', | |
role: 'Freelancer', | |
started: Date.new(2016, 6, 20) } | |
jobs << { company: 'LVS', | |
industry: 'Gaming and Sporting Software', | |
role: 'Head of Web & Mobile Development', | |
started: Date.new(2014, 4, 25) } | |
jobs << { company: 'LVS', | |
industry: 'Gaming and Sporting Software', | |
role: 'Ruby on Rails Team Leader', | |
started: Date.new(2013, 5, 6) } | |
jobs << { company: 'LVS', | |
industry: 'Gaming and Sporting Software', | |
role: 'Ruby on Rails Developer', | |
started: Date.new(2011, 10, 17) } | |
jobs << { company: 'Linedata', | |
industry: 'Financial Software', | |
role: 'Web Services Developer', | |
started: Date.new(2010, 9, 20) } | |
jobs | |
end | |
def recent_projects | |
projects = [] | |
projects << { name: 'Docaly', | |
description: 'Custom workflow creation application with user-defined | |
forms, templates and document generation. Integrated with Stripe | |
payment system and data encryption.', | |
technologies: 'Ruby 2.5, Ruby on Rails 5.2, PostgreSQL, Google Cloud, | |
Docker, RSpec, ActiveJob, Cloudflare'.split(/,\s+/), | |
started: Date.new(2018, 11, 2) } | |
projects << { name: 'ORA', | |
description: 'Self-service web application to assess the risk of machinery | |
based on European standards.', | |
technologies: 'Ruby 2.5, Ruby on Rails 5.1, MySQL, AWS'.split(/,\s+/), | |
started: Date.new(2018, 5, 14), | |
duration: 7.months } | |
projects << { name: 'StageDB.com', | |
description: 'Web application to manage stage machinery (documents, | |
maintenance, availability, etc) used for concerts and movies.', | |
technologies: 'Ruby 2.5, Ruby on Rails 5.1, MySQL, AWS'.split(/,\s+/), | |
started: Date.new(2017, 11, 3), | |
duration: 7.months } | |
projects << { name: 'Metal API', | |
description: 'Node.js REST & websocket API aggregating different data | |
sources.', | |
technologies: 'Node.js 8, Express.js, Jasmine, Swagger'.split(/,\s+/), | |
started: Date.new(2017, 6, 13), | |
duration: 6.months } | |
projects | |
end | |
end | |
end | |
end | |
class Garnu < ActiveRecord::Base | |
include Experience | |
extend Skills | |
has_one :passion, through: :computing | |
has_many :skills, through: :experience, -> { includes: :practice } | |
has_many :projects, through: :github, foreign_key: 'github.com/garnu' | |
validates_presence_of :innovation | |
validates_presence_of :challenges | |
validates_presence_of :learning_opportunities | |
validates_presence_of :friendly_team | |
def self.objectives | |
objs = [] | |
begin | |
objs.push 'Further develop my skills' | |
objs.push 'Have fun while contributing to challenging problems with smart people' | |
rescue Exception => e | |
puts 'More challenges!' | |
raise e | |
end | |
objs | |
end | |
def self.set_locale | |
I18n.available_locales = [:en, :fr] | |
I18n.default_locale = :fr | |
I18n.locale = :en | |
end | |
def self.contact | |
`open https://blog.#{self.class.name}.com/` | |
end | |
def self.inspect | |
puts <<~END | |
I'm a passionate software developer specialized in web-based applications. I've 8+ years of | |
professional experience on front-end and back-end development. I design, develop and maintain | |
enterprise and web-scale applications on Linux environments on a daily basis. I've a strong | |
interest in the performance, scalability and security of web applications. | |
For more details, get in touch! | |
END | |
end | |
def self.method_missing(method, *topics, &block) | |
if method =~ /reference/ | |
raise StandardError, 'Ask me!' | |
else | |
questions = ", specifically about #{topics.join(', ')}" | |
puts "Questions on #{method}#{ questions unless topics.empty? }? Contact me!" | |
contact | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment