Skip to content

Engineering Practices ​

Part of the Interview Prep Roadmap. Coverage ratings are explained there.

Version Control (Git) ​

The basic commit/push/pull workflow, then collaborating through branches and merges.

Coverage: thin

Resources · Learn Git Branching — interactive, the fastest way to build a mental model · Pro Git — the free official book

Git Fundamentals ​

  • Repositories, commits, and the staging area
  • Working directory, index, and HEAD
  • Cloning and remotes

Everyday Workflow ​

  • Staging and committing
  • Push and pull
  • Fetch vs. pull
  • History and diffs

Practice

Branching & Collaboration ​

  • Creating and switching branches
  • Merging and merge conflicts
  • Rebasing vs. merging
  • Pull requests and code review

Undoing Changes ​

  • Revert and reset
  • Stashing
  • Cherry-picking

Testing & Code Quality ​

What unit testing is and who's responsible for writing it, then what makes code maintainable.

Coverage: thin

Resources · Refactoring.Guru — code smells

Testing Fundamentals ​

  • Purpose of automated testing
  • Unit, integration, and end-to-end tests
  • Ownership of each test type
  • Coverage and its limits

Practice

Writing Good Tests ​

  • Arrange-act-assert structure
  • Mocks, stubs, and fakes
  • Test-driven development
  • Edge and boundary cases

Code Quality ​

  • Readability and naming
  • Code smells and refactoring
  • DRY, KISS, and YAGNI
  • Code review practices

SDLC, Agile & Process ​

The software development lifecycle, then Agile and where sprints fit into it.

Coverage: thin

Resources · The Agile Manifesto — four principles, one page

Software Development Lifecycle ​

  • Phases from requirements through maintenance
  • Waterfall model
  • Iterative and incremental models

Practice

Agile ​

  • Agile principles
  • Scrum: sprints, standups, retrospectives, roles
  • Kanban
  • Agile vs. waterfall trade-offs

Practice

Delivery Practices ​

  • Continuous integration and continuous delivery
  • Release and deployment strategies
  • Estimation and planning

Practice

REST APIs & Microservices ​

RESTful API design basics, then splitting a system into services.

Coverage: thin

Resources · REST API Tutorial · Microservices — martinfowler.com

API Fundamentals ​

  • Client-server model
  • HTTP methods and status codes
  • Request and response structure
  • Idempotency

Practice

REST Design ​

  • Resource modeling and URI design
  • Statelessness
  • Versioning
  • Pagination, filtering, and sorting
  • REST vs. GraphQL vs. RPC

Practice

Microservices ​

  • Monolith vs. microservices
  • Service boundaries
  • Inter-service communication
  • Service discovery and API gateways
  • Distributed data and eventual consistency