Skip to content

Instantly share code, notes, and snippets.

@garnu
Last active June 27, 2019 08:54
Show Gist options
  • Save garnu/1115891 to your computer and use it in GitHub Desktop.
Save garnu/1115891 to your computer and use it in GitHub Desktop.
My Ruby CV
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