Software Engineering Fundamentals: Git, Docker, Python Environments, and C++ Concepts
Context: You are interviewing onsite for a software engineering role with a systems focus. Provide clear, practical explanations with concise examples.
Tasks
-
Git workflow: Describe a feature-branch workflow using branches and pull requests, and explain when to use rebase vs. merge.
-
Docker: Explain images, containers, and Dockerfiles. Provide techniques to reduce image size and safe ways to manage secrets.
-
Python environments: Compare Python virtual environments with containers and discuss dependency pinning.
-
C++: Explain RAII, move semantics, and const-correctness with simple examples.