Ruby Video
Talks
Speakers
Events
Topics
Leaderboard
Sign in
Talks
Speakers
Events
Topics
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
RubyConf 2018 - Refactoring the Technical Interview by Mark Siemers Is your technical interview optimized? Could it use a refactor? Do you ask candidates questions that could actually influence your production codebase? Or, do you ask them about problems that are solved and standardized? Or worse, contrived and trivial? Have you ever asked any of these questions: Find min or max in a list Implement a sorting algorithm FizzBuzz (or any contrived algorithm) “Now can you do it recursively?” Leverage your production code and commit history to make your next interview more effective in identifying the right hire. All while having more fun.
Date
Summary
Markdown supported
### Refactoring the Technical Interview In his talk at RubyConf 2018, Mark Siemers addresses the optimization of technical interviews, particularly within the programming field. He encourages attendees to evaluate whether their interview processes effectively assess candidates for roles related to their production codebases or merely ask standardized and trivial questions. #### Key Points Discussed: - **Importance of Refactoring**: Siemers advocates for the refactor of hiring and interview processes, highlighting the costs associated with poor hiring decisions, including wasted time and resources, decreased morale, and increased technical debt. - **Ineffective Interview Questions**: He critiques common interview questions such as finding the minimum or maximum values in a list, implementing sorting algorithms, and trivial exercises like FizzBuzz. These questions, while traditional, do not effectively evaluate a candidate's ability to contribute to a team. - **Analogy to Carpentry**: Siemers illustrates his point by comparing coding questions to absurd queries in carpentry interviews, arguing that programming knowledge has evolved and many skills are now standardized. Asking candidates to define outdated algorithms serves little practical purpose. - **Evaluating Candidate Skills**: Emphasizing that interviews should align with actual job requirements, Siemers lists essential skills such as: - Reading and understanding code - Communicating effectively about code changes - Improving existing codebases He points out that while algorithmic skills are valuable, the ability to design systems and software is more critical. - **Implementation of Relevant Code**: Siemers suggests using actual production code for interviews, allowing candidates to read, explain, and improve it rather than relying on contrived examples. This aligns job expectations with interview performance. - **Curating Interview Questions**: He provides strategies for curating code examples and significant changes from commit histories or through bug fixes, promoting a hands-on evaluation of candidates' understanding of real-world challenges. #### Conclusion & Takeaways: - Technical interviews should prioritize relevant and practical coding skills over traditional algorithmic challenges. - Candidates should be assessed on their ability to read and critique existing code, encouraging deeper discussions about trade-offs and improvements. - Organizations should reflect on their interview processes to determine if they are effectively gauging the abilities necessary for their teams. Siemers concludes by encouraging attendees to evaluate their own interview questions against the expectations of actual job roles and seek opportunities for improvement in their hiring processes, ultimately leading to better hires and enhanced team dynamics.
Suggest modifications
Cancel