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).
Describe the difference between git reset --soft, --mixed (default), and --hard. Provide an example scenario (with commands) where you would use git reset to undo a local commit vs when you'd prefer git revert for a public commit.
As a software engineer on a collaborative team, explain the difference between git merge and git rebase. When would you recommend using each approach for feature development and pull requests? Discuss effects on commit history, conflict resolution, code review ergonomics, and potential pitfalls such as force-push requirements and lost commits.
A junior engineer asks how to search for a configuration directive across multiple files in /etc and see which file contains it. Which command(s) would you recommend to search recursively, print file names only, and ignore binary files? Provide the exact command and explain the flags.
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.
Dev secrets: propose an approach to secure secrets for local development that minimizes friction, and compare the realistic options for storing and distributing them. Discuss developer ergonomics, auditability, and offline development.
Unlock Full Question Bank
Get access to all 44 Version Control and Developer Tooling interview questions and detailed answers.
Sign in to ContinueJoin thousands of developers preparing for their dream job.