Skip to content

Instantly share code, notes, and snippets.

@stevo
Last active July 27, 2022 09:05
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 6 You must be signed in to fork a gist
  • Save stevo/2769d7d9f30b237ea5c0b0b4c43c15bf to your computer and use it in GitHub Desktop.
Save stevo/2769d7d9f30b237ea5c0b0b4c43c15bf to your computer and use it in GitHub Desktop.
RubyOnRails skills verification

Provide the list or PR or other contributions that proves understanding of each subject group or ask for tech interview (more time effective), where we will go step by step throught the following list.

Max score: 331

Minimum requirements:

  • Independent: 240 (+ all blue diamonds)
  • Mid: 280 (+ all orange diamonds)
  • Senior: 300 (+ all red triangles)

You will not get a pass if you check more than 5 items that you will not be able to prove being knowledgeable about during verification, so check items only if you are sure about them. Be advised, that questions will be rather general ("what does that return?", "what is it all about?", "what does that mean?", "how does that differ from x?").

Rails

Indicate if you have knowledge/experience necessary to apply following skills effectively

I18n

Action Mailer

Active Job and Sidekiq

Active Storage

  • Attach one or many files to a record
  • Delete an attached file
  • Link to an attached file.
  • Use variants to transform images.
  • Generate an image representation of a non-image file, such as a PDF or a video.
  • Send file uploads directly from browsers to a storage service, bypassing application servers.
  • Clean up files stored during testing.

Action Cable

  • Update UI using backend (read from socket)
  • Update backend using UI (write to socket)

Testing

  • Testing scopes
    • Controllers πŸ”Ή πŸ”–
    • Requests πŸ”Έ πŸ”–
    • Features πŸ”Ή πŸ”–
    • Views πŸ”Έ πŸ”–
    • Rake tasks πŸ”Έ πŸ”–
    • POROs πŸ”Ή
  • Techniques
    • Pure Doubles πŸ”Ή πŸ”–
    • Partial Doubles πŸ”Ή πŸ”–
    • Verifying Doubles πŸ”Ή πŸ”–
    • Stubs πŸ”Ή
    • Mocks πŸ”Ή
    • Spies πŸ”Ή
      • Constraining Method Arguments πŸ”Ή
      • Constraining How Many Times a Method Gets Called
      • Configuring Responses πŸ”Έ
    • Stubbing constants πŸ”Ή πŸ”–
    • Using WebMock πŸ”Έ πŸ”–
    • Using VCR πŸ”Έ πŸ”–
    • Creating and using custom matchers πŸ”Έ πŸ”–
    • Composing matchers
    • Using factories effectively
    • Testing methods yielding responses πŸ”Ί πŸ”–
    • BDD
  • Readability-driven BDD (part 1, part 2) πŸ”–
    • Identifying subject πŸ”Ή
    • Organizing stages of tests πŸ”Ή πŸ”–
    • Keeping everything in "it" πŸ”Ή
    • Being explicit about data πŸ”Ή πŸ”–
    • Proper naming of contexts and expectations πŸ”Έ πŸ”–
    • Using proper matchers
    • Ways to reduce setup phase LOC πŸ”Ί
    • Ways to reduce overall tests count and size πŸ”Ί
  • Identifying testing antipatterns (part 1, part 2) πŸ”Ί
  • Helpers

Patterns

Be prepared to describe responsibilities correlated with following patterns (how those work, when to use them, are there recommendations related to using them)

Other

Be prepared to explain following terms/concepts/techniques etc.

Gems and Libraries

Mark which gems/libraries you have used on projects and can use them effectively.

Development

Testing

Tooling

Mark which tools you have used on projects and can use them effectively.

  • Rubocop (setup and using) πŸ”Ή
  • Heroku (deploying new app) πŸ”Ή
  • Brakeman (setup and using)
  • CI (setup and using)
  • IDE or Editor of choice
    • Quickly finding files πŸ”Ή
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment