Back to the library
ExpertProgramming

Professional Software Engineering

Move beyond writing code that works to building software that survives contact with teammates, production traffic, and time. This course covers the practices that separate professional engineering from hobby programming: disciplined version control, automated testing, clean module and API design, production reliability, and the collaborative machinery of shipping software as a team.

5

Sections

20

Lessons

60

Quiz questions

5h

Study time

What's inside

  • Git branching, rebasing and pull request workflow as teams really use it
  • Unit and integration testing, including TDD and fixtures
  • Module and API design that survives other people
  • Production reliability: logging, monitoring, incident response

Who your students will be

Working developers, bootcamp graduates, self-taught engineers

What your students will be able to do

Outcomes you can promise

  • Use Git branching, rebasing and pull request workflows the way professional teams do
  • Write effective unit and integration tests, including test-driven development and fixtures
  • Design modules and APIs with clear boundaries, contracts, and sensible defaults
  • Build systems that fail gracefully, with structured error handling, logging and observability
  • Reason about performance and diagnose bottlenecks methodically
  • Participate in CI/CD pipelines, code review and documentation practices that keep teams moving fast
Every lesson

The full syllabus

Nothing is withheld — this is exactly what a student gets, so you can judge it before you licence it rather than after.

Section 1

Git and Collaborative Workflows

Version control as a team sport: branching strategies, rebasing versus merging, resolving conflicts, and the pull request lifecycle.

4 lessons
  1. 01Branching Models and Commit HygieneKnowledge check16 min
  2. 02Merging, Rebasing and Resolving ConflictsKnowledge check15 min
  3. 03Pull Requests and Code Review EtiquetteKnowledge check14 min
  4. 04Working with Remotes, Forks and Protected BranchesKnowledge check13 min
Section 2

Automated Testing

Unit tests, integration tests, test-driven development and fixtures — the practices that let you change code with confidence.

4 lessons
  1. 01Why We Test and the Testing PyramidKnowledge check15 min
  2. 02Writing Effective Unit TestsKnowledge check16 min
  3. 03Test-Driven DevelopmentKnowledge check15 min
  4. 04Integration Tests, Fixtures and Test DoublesKnowledge check16 min
Section 3

Module and API Design

Designing clear boundaries, contracts and interfaces so your code is easy to use correctly and hard to use incorrectly.

4 lessons
  1. 01Cohesion, Coupling and BoundariesKnowledge check15 min
  2. 02Designing Function and Class InterfacesKnowledge check14 min
  3. 03Designing HTTP APIsKnowledge check16 min
  4. 04Versioning, Deprecation and Backward CompatibilityKnowledge check14 min
Section 4

Reliability and Production Readiness

Errors, logging, observability and performance — how to build systems that fail gracefully and stay debuggable in production.

4 lessons
  1. 01Error Handling StrategiesKnowledge check15 min
  2. 02Structured LoggingKnowledge check14 min
  3. 03Observability: Metrics, Tracing and AlertingKnowledge check16 min
  4. 04Performance: Measuring Before OptimizingKnowledge check15 min
Section 5

Shipping and Collaboration

The team-level machinery around code: CI/CD pipelines, environments, code review culture and documentation that keeps everyone moving.

4 lessons
  1. 01Continuous Integration and Continuous DeliveryKnowledge check16 min
  2. 02Environments, Config and SecretsKnowledge check14 min
  3. 03Code Review Culture and Team NormsKnowledge check13 min
  4. 04Documentation That Actually Gets UsedKnowledge check13 min

20 lessons you don't have to write

At €149 a student, this licence pays for itself after 3. Everything after that is margin on work already done.

See the other courses