Created
March 13, 2015 15:40
-
-
Save alkalinecoffee/ffa2c69ef79c1f9f1928 to your computer and use it in GitHub Desktop.
(Ruby/Rails) Phone screen/Interview questions
This file contains hidden or 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
BACKGROUND/PERSONALITY | |
- Tell me about yourself | |
- Tell me about what your current project | |
- What are your responsibilities? | |
- Describe your workflow (how are requirements/issues submitted and handled?) | |
- Describe the infrastructure for your current project | |
- Why were these technologies chosen? | |
- What is the biggest challenge about your current project? | |
- Were you able to overcome it? If so, how? | |
- How many people are on the team? | |
- Are you the project manager? Have you ever been one? | |
- What did you learn most from the senior people on your team? | |
- Are you given autonomy? Are you trusted to get the work done with little supervision? | |
- Have you had issues dealing with a difficult person? If so, how was it handled? | |
- What are you most proud of? | |
- How did you get started in development? | |
- What do you enjoy most about development? | |
- What do you find most challenging about development? | |
- Are you active with any open source projects? | |
- Do you own any open source projects? | |
- Have you submitted any issue or pull requests to open source projects? | |
- How do you stay current? | |
- Do you follow other developers on Twitter? | |
- Do you attend meetups/conferences? Which ones? | |
- Are there any blogs or hacker news sites that you follow? | |
- If you were starting a new project today, describe the infrastructure you would use | |
- Can you describe a mistake that you've made? How did you overcome it? | |
TECHNOLOGY EXPERIENCE | |
- Are you proficient at any other programming languages? If so, which? | |
- What operating systems do you use at home? | |
- Do you use version control? If so, which tools? | |
- Do you have any experience deploying to cloud services, such as AWS or Heroku? | |
Databases | |
- What database technologies are you most familiar with? | |
- RDMS: What steps can you take to determine the cause of a slow query? How could it be resolved? | |
JS | |
- How do you declare a local vs global variable? | |
* "var myLocalVar = 1" is local, and available only to the function that declared it | |
* "myGlobalVar = 1" is global | |
- What is the difference between window.onload and onDocumentReady? | |
* onload event fires after everything (images, css) is loaded. onDocumentReady fires onces the DOM is loaded. | |
- What are the seven data types in JS? | |
* Undefined, Number, String, Boolean, Object, Function, Null | |
- What is the "this" keyword? | |
* A reference to the object on which the function is operating | |
- If you wanted to collect data from a user without triggering a full page reload, how would you do it? | |
RUBY | |
- How did you learn Ruby? | |
- Describe some resources you've used to learn Ruby | |
- What do you feel you need to learn or get better at to become a more proficient Ruby developer? | |
- Have you developed any pure Ruby (non-web) apps? If so, describe them. | |
- What is a module? How would one be used? | |
- How would you define a class method? When would you? | |
- What is a singleton method? | |
* Method defined for only a single object | |
- What is considered "false"? | |
- Can a string be false? How about zero? | |
* Only false and nil are considered false | |
- Why are some methods suffixed with a bang "!" (ex. String#downcase vs #downcase!, AR::Model#save vs #save!) | |
- What is a private method? | |
- Do you have any experience with multithreaded code? | |
- What do you like most about Ruby? | |
- What do you dislike most about Ruby? | |
- How did you get involved with Ruby? | |
- Do you have any experience with other Ruby implementations? If so, which? | |
- Ask them to describe the benefits/drawbacks of other implementations they’re familiar with. | |
RAILS | |
- How did you get started in Rails? | |
- What did you learn first--Ruby or Rails? | |
- Have you developed and deployed any Rails apps? | |
- Are they openly accessible? How about the source code? | |
- How does Rails lay out its architecture? What are the pieces and how do they fit together? | |
* Model/View/Controller - routes, partials, views, layouts, helpers | |
- What are strong params? Why are they useful? | |
- Why would you use private methods in controllers? | |
- What is a concern? Why would you use one? | |
- What is a controller filter? What types of filters are there? | |
- Can you think of any Rails Core members? (ie DHH, Jose Valim, Aaron Patterson aka Tenderlove, Steve Klabnik) | |
- Why is Ruby slow? How about Rails? | |
* Ruby: No true multithreading (GIL), interpreted language | |
* Rails: High memory usage, bloated, object creation, responsible for everything | |
- What are the main components of Rails? | |
* ActiveRecord, ActionPack, ActionView, ActionMailer, ActiveSupport | |
- Has Activerecord been abstracted into two layers? | |
* ActiveRecord and ActiveModel | |
- Have you ever used background processing? If so, which? | |
- What gems do you tend to use the most in your Rails projects? | |
- What tools/gems do you use for testing? What do you like/dislike about your current testing setup? | |
- What do you like most about Rails? | |
- What do you dislike most about Rails? | |
OTHER | |
- How would you debug a performance issue? | |
* Make them ask questions on this one to see how they isolate network, JS, database, etc.) | |
- What happens in the browser from when you type in google.com to the location bar until you're viewing their logo on your screen? | |
* More details/depth better | |
- Regular Expressions: Given a format, ask them to write an expression down on paper and tell you the result | |
* There are multiple ways to answer--don't look for 100% correctness--just see that they're on the right track | |
- Grab a phone number in the following format: xxx-xxx-xxxx | |
* \d{3}-\d{3}-\d{4} | |
- Modify that expression to include this format: (xxx) xxx-xxxx | |
* \(*\d{3}\)*[-|\s]*\d{3}-*\d{4} | |
- How would you debug a performance issue? (I make them ask me questions on this one to see how they isolate network, JS, database, etc.) | |
- What happens in the browser from when you type in google.com to the location bar until you're viewing their logo on your screen? More details/depth better |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment