class Me
  # DJ Patterson BSc
  #   - Computer Science, Kingston University - First Class Honours
  #   - Born in London, United Kingdom
  #   - Lived in Toronto, Canada for 5 years
  #   - Enjoys programming and problem solving
  #   - Like to go to the gym and keep myself actively fit.

  TRAITS = %w(reliable trustworthy has_initiative friendly)

  include SkillSet
  include Contact

  attr_accessor :ruby_on_rails_experience

  def initialize(year: 2011)
    @ruby_on_rails_experience = {working_with_rails_since: year}
  end

  def work_experience
    belongs_to :shopify,     from: Jun(2021) - Present   as: Senior Developer, Money
    belongs_to :universe,    from: Feb(2019) - May(2021) as: Lead Engineer, Payments
    belongs_to :universe,    from: Jul(2017) - Jan(2019) as: Senior Developer
    belongs_to :universe,    from: Jun(2015) - Jul(2017) as: Developer
    belongs_to :awesome_web, from: Oct(2014) - Feb(2015) as: Feelance Developer
    belongs_to :bookingbug,  from: Dec(2013) - May(2015) as: Developer
    belongs_to :dai,         from: Jun(2012) - Jul(2013) as: Developer(Intern)
    belongs_to :miuk,        from: Apr(2009) - Aug(2009) as: Intern Web Developer
  end
end

module SkillSet
  def skills
    {
      ruby:                 %w(1.8.7 1.9.3 2.0 3.0),
      rails:                %w(3.x 4.x 5.x 6.x),
      testing:              %w(RSpec Minitest Cucumber Capybara),
      frontend:             %w(React Angular Ember Backbone) ,
      template_languages:   %w(HTML ERB HAML Liquid HandleBars),
      stylesheet_languages: %w(CSS SASS Less Tailwind),
      typing:               %w(Sorbet Typescript Flow),

      deployment:           %w(Heroku Nginx Phusion_Passenger),
      authorization:        %w(cancan pundit),
      databases:            %w(SQL MySQL Postgres MongoDB),
      authentication:       %w(devise),
      background_jobs:      %w(heroku-scheduler delyed_jobs sidekiq),
      maintenance:          %w(CircleCI Sentry Datadog Newrelic),

      issue_tracking:       %w(Jira Asana BaseCamp LightHouse),
      other_languages:      %w(Go, Elixir, C, Java),
      version_control:      :git,
      methodologies:        :agile,
      data_modeling:        true,
      database_management:  true
    }
  end

  def coding_environment
    {
      editor:            %w(RubyMine VS Code VIM),
      operating_system:  %w(Mac Linux Windows)
    }
  end
end

module Contact
  def details
    {
      LinkedIn:        'davidpatters0n',
      GitHub:          'davidpatters0n'
  }
  end
end
$$```