Engineering Onsite Interview: Dev Ops

What are we looking out for

DevOps engineers at Quantcast keep the base of our company sound. Every piece of effective software testing, deployment, and operation will be dependent on work and knowledge of our DevOps Engineers designing effective systems for the rest of the company. Senior DevOps Engineers will own the effectiveness of their architectures and guide engineering teams on secure and reliable production systems.

Our DevOps Engineers are well- rounded engineers with skills in systems administration, virtualization, continuous integration and deployment, stability and scalability. They collaborate and communicate with Software Engineers and Modeling Scientists while automating the process of software delivery. DevOps Engineers at Quantcast are also prided as capable software engineers who can “treat code as infrastructure” using automation and a toolchain approach.

The Quantcast DNA

  • Individuals at Quantcast are owners and experts who make a significant impact on the organisation.
  • One constantly maintains the standard and raises the performance bar and ensure peers do the same.
  • Irrespective of title, everyone has the right to voice their opinions and challenge decisions. Leaders are expected to respect these rights.
  • We are the face of Quantcast to our customers and always aim to deliver results on point.

How should I be preparing for it?

  • Solid understanding of core computing principles (e.g., latency, reliability) and O(n) performance.
  • A strategic understanding of configuration management tools (Puppet, Ansible, Chef, Salt) processes and utilization of technology. Know the tools you use to get your job done.
  • Effective scripting – you must be able to code reliable process automation. Python and Bash are core languages. Java and Go are beneficial.
  • Knowledge of Immutable infrastructure deployments.
  • AWS – familiarity with the most prominent AWS products (EC2, S3, RDS, etc.)
  • Low-level Linux Systems – How does Linux handle busyness at the kernel level? System calls, IO queues, and performance tuning are relevant.
  • Automation – get into the mindset of automating almost everything.
  • Effective monitoring – Everything we automate must have a way of being addressed when it breaks without overwhelming on calls. How do you alert without drowning an inbox or pager?
  • Troubleshooting – Everything broke. Can you mitigate it to get us back online, find the root cause, and write the architectural changes to keep it from ever happening again?
  • Security – Design systems that are resilient in depth.
  • Collaboration – DevOps Engineers must foster a culture of constant collaboration, communication between internal teams, maintainers of the project, and outside vendors or Open Source projects.

Pitfalls

  • The code you write in the interviews are probably the only examples of your code that your interviewer sees. This is your chance to shine. We look for the quality of your code but also how you solve problems. We want to see your thought processes as you work through each stage of the programming problem. Interaction is key here.
  • The less help you need to solve the problem the better, but showing an intelligent thought process and responding well to the hints you are given is also important.  
  • Senior engineers are expected to catch design shortcomings. System design questions may require you to ask questions to effectively answer them.

FAQs

Your interview is a conversation, we want you to leave our office knowing what the hiring manager wants, what the team is like, what your workday would be like and the tools, technologies you’d use to do your job. Have a strategy for asking your interviewer questions, here is what we recommend:   

  • Think of things you want to know about us before you will accept an offer, interview us for:
    • The position (responsibilities, challenges, career progression)
    • Team interactions (team structure, meetings, project management tools/ methodologies, interactions with other teams).
    • Development process (development time, code review, QA testing)
    • Open source, Codebase/ architecture (test suite, codebase documentation, build process/ automation, product hosting)
    • Tech stack: the rationale behind the stack? new tools, product voice (product ideas, meaty stuff pushed to release).  
    • Culture, Company, Competitors
  • Ask questions that are relevant to the person and the position you are interviewing for.

Resources

Cracking the Coding Interview

Google Site Reliability Engineering Book

System Admin Interview Questions