@═╦╣╚╗ A mazing engineer 26-Apr-2020 Questions to Ask in a Job Interview Company's engineering blog reveals challenges and openness to share best practices. Company's GitHub account shows quality standards. That's all I know before an interview. But the question "do you want to know something about the company" during an interview puzzles me. The questions below unveil distinctive factors that may affect your choice whether to proceed with them or not. Why? Answers to those questions come to you sooner or later when you join a company. And often you're unable to change or handle that truth. Those questions can reveal the factors that make your job a breeze, or a nightmare. Knowing the answers helps you make a serious decision with more certainty. Since I wrote those questions down, I' using asking them during interviews. You are free to use them just as well. Even if you don't understand the importance of the answers, you'll look smart and interested. If the salary motivates you most, those questions are NOT for you. But does it? I wrote those questions from a Ruby developer standpoint. Languages don't play such a big role these days, but YMMV (your milage may vary). Operational, administrative, organizational and architectural questions still apply for companies using other platforms. Those questions are dry: make sure you understand why to ask the question and pros and cons of possible answers. Psychological tests ask the same questions in different ways to detect deviation in the answers. The questions below have similar interlinked traps that may reveal the real state of affairs. An interviewee's question time has limits, make sure that the interviewer knows in advance that you have a fair amount of questions. Ask what matters most to you. These questions compliment and update the Joel Test and Joel Test for 2017. Warm-up How does an idea for a change progress towards a release into production? Do you have an engineering blog? Do you prefer "boring" time-proven or bleeding edge technologies? What makes you think I am a good fit for this position? Organization What's the size of the engineering department? What roles or titles do the engineering department have? How do different roles communicate? Who will I report to, who is going to manage the priorities? Can I have a talk to them? Communication How do you communicate within the team? Do employees promptly react to mail and instant messenger? What other services do you use within the team? What meetings are mandatory for the team? How much time do these take away from the working hours? Do you assess meeting efficiency and necessity? How friendly and willing are the co-workers to assist each other? Engineering What are the levels of developers in the teams? What's the level of trust towards regular engineers in terms of supervision? Do you have any algorithmic or mathematical tasks? Is backend, frontend, test automation, and DevOps code written by the same people? Do you have engineering duty? If so, how often, and what does it encompass? What's the worst accident on duty that you can remember? Could you give me more details on the release cycle? How up to date is the toolset you are using? What databases do you use and consider using, why? Knowledge How do you document best practices and guidelines? How detailed and unambiguous is the engineering documentation? How do you document the product you're working on? Is it easy to search and change the documentation? How do you know who's the most knowledgeable person for a given topic? How do you deal with the bus factor? How do the new hires learn what they need to know to become productive contributors? Do you have a new hire playbook? Do you practice mentoring? Is mentoring only for the new hires? Architecture How do you build the frontend code? How does frontend communicate with backend? What languages and frameworks do you consider as an option when starting a project from scratch? What's the toolset for DevOps? Local Development Do you have any tools that require a particular hardware or operating system? Where does the data for local development come from? Is it genuine/realistic? Code Review Do you review all changes to code and documentation? What are the code reviews like? How many rounds of code reviews do you typically have for a big change? How many people perform a code review for a single change? What happens if one of the code reviewers isn't happy about a part of the change? Code Quality How do you deal with bugs? How do you deal with technical debt? Who's responsible to rank it? Are the tests fast? Are they reliable? Are they trustworthy? How do you document the code? How do you deal with badly documented and unreadable legacy code? How do you deal with complicated database queries? Do you use raw SQL, advanced framework features, or stored procedures? What checks do developers perform locally and what checks do they do on Continuous Integration? Open Source Are you a consumer only, or do you pay back in some way to open-source? What's the company vision of open-source? Is it allowed to work on open-source during working hours? Is it allowed to work on distantly related open source projects? How do you motivate employees to work on open-source during working hours? Who keeps the rights of employees' open-source contributions done during working hours and spare time? Development Process What does a product requirement look like when it reaches the developer? To what extent is it possible for a developer to affect this requirement? What's the formal development process? Why have you chosen it? How well is the development process documented? Can a team make amendments to the development process to fit their needs and improve their pipeline? How hard is the pressure from the product department? Career Development How transparent are the performance reviews? How do the performance reviews affect the salary? How does one gets promoted? For how long do you want me to stay with your company? Given the current employee turnover and retention, how are you going to achieve that? Do you measure the turnover in the engineering department? Do you have a percentile graph of employee engagement length with the company? What is the speed of the growth of the engineering department? How does one quit or is get fired from the company? (macro)-Services How do you locally run dependent services? How do you synchronize releases? How do you decide the boundaries of those services? Is the database shared between services? Do services have dedicated databases? What do you use to imitate inter-service communication? How are the inter-service protocols documented? How are the inter-service communications tested? Microservices Alright, you're using microservices or are tearing apart a monolithic app. What problems did you have you decided to solve with microservices? Have you considered alternative approaches to those problems? How do you deal with the problems of: - consistency - availability - M*N emitter to consumer communication (note: "the bus" isn't an answer) - message log retention - message schema versioning - stream and table dualism - keeping an actual dimension of data - data store separation - inter-service join queries - deployment synchronization - transactional atomic updates of data spread over several services Testing Do you perform manual testing? Do you have a dedicated QA engineer in the team? How thorough is the manual testing? When manual testing is happening? What do you cover with automated acceptance tests? Do you perform automated load testing? Do you perform penetration testing? DevOps Do regular developers have access to production logs and console? Who's responsible for deployments? How do you automate deployments? How long does the deployment take? Can you perform a quick lossless rollback? Can you do a hotfix? Do you practice zero-downtime deployment? Do you use atomic and fast schema migrations? How do you deal with data migrations? How do you run data migrations interleaved with schema migrations on deployment? Incident Management Who's receiving production and staging error messages? How do they react to those messages? Culture What's the culture of the company? Does the engineering department have its own culture? To what extent the culture applies to everything that the company does in reality? What are the exceptions? Did you grow the culture? Or is it an inapproachable ideal you are struggling to reach? How do you teach employees why the culture is good? Do you teach employees to become good at doing it the company way? How do you deal with those who make an unintentional mistake that costs the company its profit or increases maintenance costs? Under which circumstances is it possible to work on non-profit or profit projects in spare time? Time Off and Spare Time As long as an employee doesn't put their 40-hour week for the company at risk, is it allowed to spend their spare time on anything they love (run a Kickstarter campaign for my DIY, learn at a university, help a friend to build a site of their dreams)? Do you offer unlimited paid time off? Next time you want to hire me, please prepare the answers.