4 ms·
I think the important thing is to realize that you need to rely on realistic factors and many different signals to get useful data. I've been to plenty of inte
by agentultra 7y ago
I think the important thing is to realize that you need to rely on realistic factors and many different signals to get useful data.
I've been to plenty of interviews for "senior software engineers," where they used the standard gauntlet of algorithms/problem solving/data structures questions in rapid succession for eight hours.
I tend to deliver most of my projects on time and of a high quality. I value things such as correctness and maintainability, and am conscious of other factors to consider such as viability and availability of time and capital. I spend a good amount of my time writing and seeking feedback from colleagues and think it's important to share our ideas and talk about our work.
And when I practice my work I don't think I've ever been in a time-constrained scenario where I had to come up with an implementation of an algorithm while being judged and evaluated for how I think. I know enough about my work to understand when I need to use BFS or DFS and when to use a tree, a map, or a heap; but I also know that if I can't think of it off the top of my head I can walk over to my library and pull out a book or look it up online.
I'm also a proponent of formal methods. I've written specifications to help solve race conditions and validate implementations of locking algorithms. I can write basic proofs.
And I'm a great writer as a result. I spend a good amount of my time writing and communicating my ideas, seeking feedback from colleagues, and in general improving my understanding of problems.
How does finding a cycle in a sorted array or reversing a linked list signal to you whether I would be a good fit for your company as a senior engineer? Does your company also value clear writing and good communication skills? Do you value engineers that can manage themselves and get work done autonomously?
Modern interview practices at most places I've been through don't know how to get those signals. It's useful knowing that the people I work with are also familiar with when to use a heap versus an array but I also value other things at the senior level that most companies aren't really testing for.
I always prefer data over gut instinct but I feel like the process of hiring people is not amenable to clean signals... it's a very messy process and I'm not hopeful that there will ever be a silver bullet.
- zygy 7y agoWhat does your interview process look like?
- agentultra 7y agoIt's not perfect either but we're pretty open about it: https://weeverapps.github.io/interviews/ https://weeverapps.github.io/interviews/ Internally we use a rubric for the various job roles we hire for and we aim to remove or counter biases at every step of the process. Our teams value diversity and are pro-active about equality and inclusion. A big part of the process is code review, something our engineers actually do spend a lot of time doing, so the process is mostly focused around that.
- geoffroberts 7y agoThese are the foundational aspects of our hiring process that we openly advocate for. https://www.qualified.io/blog/posts/the-qualified-manifesto-on-hiring-software-developers https://www.qualified.io/blog/posts/the-qualified-manifesto-...
- geoffroberts 7y agoWhat we advocate for is making the technical assessment component relatively quick and painless, but using the work sample as a basis for assessing the other sorts of skills and intangibles that you mentioned. You can use your in-person time with candidates not to discuss their technical work, but to add requirements, talk through how they might build an additional feature, and generally assesses how well they communicate and solve problems beyond writing code.