Interview · Lesson 1
How Senior Rails Interviews Actually Work
The same candidate can pass at one company and fail at another, with the same answers. Knowing what each interview round is scoring on closes that gap.
What "senior" means in an interview
For an intermediate candidate, interviewers are checking "can you write the code." For a senior candidate, they're checking "can you defend the decision." A senior who reaches for a service object should be ready to explain when they wouldn't reach for one. A senior who picks Solid Queue over Sidekiq should be able to articulate the trade-off. The interview surfaces this by asking why, not just what.
The shortcut: every technical answer ends with a sentence that names the trade-off. "I'd extract a service object. The cost is one more file and indirection; the benefit is testability of this specific flow without the rest of the controller. I'd skip it if the action stays under twenty lines."
The typical loop
A senior Rails interview usually has four rounds. Each one is scored differently:
- Coding round. A real-feeling Rails problem. Not LeetCode-style algorithms; closer to "implement this controller action" or "fix this N+1." Scoring: do you write idiomatic Rails, do you ask clarifying questions, do you handle edge cases without being asked.
- System design. "Design a URL shortener" or "Design a notification system." Scoring: can you reason about scale, draw out data models, name trade-offs explicitly, and pick a finite scope.
- Deep dive / debugging. "Tell me about a hard bug you fixed" or "Walk me through how Rails routing works." Scoring: depth of understanding, ability to verbalize what's under the abstraction.
- Behavioral. Mentorship, conflict, leading without authority, calibrating other engineers. Scoring: are you the kind of person who makes the team better.
What most candidates underestimate
- Asking clarifying questions. Juniors dive into code. Seniors spend 2-5 minutes confirming requirements. Interviewers count this. "What's the expected scale? Is this read-heavy or write-heavy? Do we need to handle X edge case?" Every question is a signal that you've shipped real software.
- Naming trade-offs unprompted. "I'd use a counter cache here. Tradeoff: hot rows under high concurrency, which I'd fix by moving the increment to a background job if that becomes a problem." You don't wait to be asked.
- Saying "I don't know" cleanly. "I haven't used Solid Cable in production. From what I've read, it works like Action Cable but with a Postgres backend instead of Redis. I'd want to verify that on the docs before recommending it." This reads as senior. "Yes, of course I've used it" when you haven't reads as junior.
- The deep-dive round. Most candidates prepare for coding and skip the "explain how X works" round. That round is where senior gets confirmed. Reading the Source lessons exist for this reason.
Calibrating yourself before the interview
Ask yourself, for each topic the role lists: "Could I explain this on a whiteboard to someone who hasn't seen it?" Not "do I know it." Explanation is the test. If the answer is hesitant, you have a gap. Pick three topics, read them deeply, write notes in your own words. That's the prep that moves the needle.