Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Interview questions
Good Interview Questions
"Give Him/Her the opportunity to impress you, and maybe even give you a revelation"
Ask open-ended questions, see
---> attitudes about the topic
---> how s/he thinks
---> what s/he's been thinking about lately
Q: Compare Ruby to another language.
---> requires knowledge of two languages
Q: What are you hacking on?
---> Open source, can mentor?
Q: Ruby/Rails Gotchas?
- maybe see https://github.com/gregstallings/ruby-trivia
Q: Server/System Linux know-how?
Q: How to decide if you will use Rails? vs. Sinatra, Rack, etc?
Q: Asynchronous Processing?
Q: How would you go about improving our XXXX where the code is not well-designed?
Q: Front End, jQuery?, YUI? Javascript inheritance type
Q: Do a code review on our code, see what
---> s/he likes
---> disklikes
---> would change and how
Q: When and how do you test?
Q: When and how do you refactor?
Q: NoSQL?
Q: What are
- MVC - model view controller
- CAP Theorem - consistency, availability, partition tolerance
- Dining philosophers - concurrency
- Object-Oriented - encapsulation, inheritance, polymorphism
- Encapsulation Enforces Modularity
- Inheritance Passes "Knowledge" Down
- Polymorphism Takes any Shape
--> the point of all of this is Modular Design, to minimize the cost of change
(agile) --> build it to make change cheap (not to support everything)
- DRY === SRP: don't duplicate knowledge.. only one representation
- Kent Beck's 4 rules of simple design
1. tests pass
2. no duplication of logical canonical representation (dry is concept, not lines of code)
3. reveals intent - communicate with other coders.. machine doesn't care about variable names
4. small - do the simplest thing that can possibly work -> flexibility to modify
- SOLID
- Single responsibility,
- Open (for extension) closed (for modification),
- Liskov substitution - subtypes should behave like supertypes, duck-typing
- Interface segregation - minimize surface area of public interface(s)
- Dependency inversion - depend on abstractions
Smells
- divergent change == SRP, multiple reasons for a class to change
- GRASP
- KISS
- YAGNI
Bad Interview Question:
What is the power of 2 that is closest to one billion?
Other things:
* culture fit, both directions
* pair on code
* https://www.braintreepayments.com/braintrust/how-braintree-interviews-exceptional-developers
* http://www.slideshare.net/slideshow/embed_code/1708020?startSlide=20
- tell me about a project that didn't go well, a teammate had trouble with --> is s/he a whiner? learn from mistakes? personal skills?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.