Version Control and Developer Tooling Questions
The everyday toolchain of software work: version control with Git (branching, merging, rebasing, conflict resolution, using git bisect to find a regression), command-line and shell proficiency for day-to-day navigation, log inspection, and troubleshooting, IDE and editor workflows, build systems and package/dependency management (npm, Maven, pip, Gradle, CocoaPods, and embedded/cross-compilation toolchains), and the growing practice of AI-assisted coding: using, reviewing, and verifying AI-generated code and tests. Deliberately generic across languages and stacks; language- and domain-specific frameworks live in their own categories. This topic covers a developer's individual command of these tools, not: writing durable shell automation and glue scripts (Shell Scripting and Automation owns that), producing, versioning, and publishing build artifacts or container images (Build Automation and Artifact Management owns that), release cadence and change governance (Release Management and Change Control owns that), or diagnosing a live production incident end to end (Performance Troubleshooting and Incident Response and the Observability topics own that).
Implement a POSIX shell pre-commit hook (script saved at .git/hooks/pre-commit) that scans all staged files for trailing whitespace and refuses the commit if any is found. Include installation instructions (how to make the hook executable) and describe how you'd extend it to skip binary files and run fast on large repos.
You need to remove API keys and large binary files that were accidentally committed several commits ago, on a repo that's actively used by a team and CI. Walk through your plan: how you'd rewrite history to actually remove them, how you'd rotate the exposed keys, and how you'd coordinate the re-clone across contributors and CI without breaking things.
Your organization wants to migrate its repositories from SVN to Git without losing history. Outline the migration plan: what tooling and approach you'd use to actually convert the history, how you'd map SVN's branch/tag layout onto Git's, how you'd handle large binary files that don't belong in git history, and how you'd roll this out to developers with minimal disruption.
You have a log file /var/log/app.log and need to quickly find how many times the string 'ERROR' (case-insensitive) appears and display 3 lines of context around each match. Write the grep commands you would use to get a count and to show context lines. Explain any flags you choose.
You're the on-call SRE and a service process is unresponsive. Using only local CLI tools and man pages, describe how you'd discover available Unix signals, learn their meanings, and decide whether to send SIGTERM or SIGKILL. Include the specific commands you would run to list signals and to read man-page sections for signals and kill semantics, and explain your decision criteria for which signal to use in production.
Unlock Full Question Bank
Get access to all Version Control and Developer Tooling interview questions and detailed answers.
Sign in to ContinueJoin thousands of developers preparing for their dream job.