I find it challenging to fit in with companies. I have what I have come to think is a weird outlook on what you should be doing when creating software.
My outlook, I think engineers(Including PM’s) should be left to deliver a solution that the customers want. They should spend time with the customer learning what they want. The delivery itself is all-encompassing. The engineer and the team they are on should own all aspects of delivery. The delivery includes:
- Being an admin in the AWS account.
- Writing the terraform.
- Writing the end to end tests.
- Creating the UI’s and the APIs.
- Spinning up the databases.
- Looking after security.
- Instrumentation and monitoring and
- Being on call after the initial release.
I have many reasons for why, which I will cover in another post on queues and waste. Small independent teams are the way I want to work. With this in mind, I need to figure out how the company operates.
What do I do to see if the company is a fit for me?
I have learned over time that the most important thing is that one question is not good enough. on a specific topic. You need to have one to two follow-up questions to limit aspirational answers.
My initial question is, How is new technology or process adopted in the company? A good answer is that engineers at all levels are encouraged to try and introduce new technology, language, or process via experimentation within the team. As long as there is consensus in the group, that is all that matters. A less good answer but not a wrong answer is that there is a process where anyone can create a proposal, and everyone comments on the proposal until it is either adopted or refused. A bad answer is when the Architect tells the engineers what to implement and how to implement it.
The follow on question, Can you describe to me the last time you followed this process? This is the critical question. You may have been told an aspirational way of work. The answer to this question will require them to use recall or imagination. If it’s recall they use, it will be detailed and contain lessons learned from doing something new. Mistakes will have been made, and new directions were taken. If no mistakes are volunteered, ask for them with another follow on question. Suppose it is imagination used to answer the question. It will be a very high level and contain little detail. You got an excellent result if you get a high-level answer, as you will have figured out if the answer to the first question is legitimate.
NOTE: Experienced interviewers will know how to deflect and move the conversation on, do not let them. The trick is not to lose focus on getting the answer, even if you must point out that your question has not been answered. If they are a master deflector and you do not get a satisfactory answer, then you have your answer. They are not truthful.
I have more follow-up questions that you can ask, but I have found that coming up with ones that meet your needs is better as we all are different. if you want help coming up with a list that meets your needs message me on twitter @padraigobrien