Skip to main content
Back to courses

Software Engineering Practices

Design, test, refactor, review, estimate and run software the way professional teams do.

Level: Mid-level4 modules · 12 lessons · 9h 45m
software-engineeringtestingrefactoringdesign-patternscode-reviewobservabilitysecurity

Leads to: Software Developer, Mobile Developer, Back-End Developer, QA / Test Engineer

Before you start

This course builds on Back-End Web APIs, Data Structures & Algorithms and Git & the Command Line. Take them first if you are new to the topic.

About this course

A mid-level course for learners who can already build a back-end API, use common data structures and work with Git, and now want the habits that make software maintainable in a team. The design module covers single responsibility and DRY (and when not to apply them), the strategy and adapter patterns, and a repeatable process for sketching a scalable web service. The quality module goes deeper on unit tests with stubs, fakes and spies, safe refactoring under characterization tests, and debugging production issues from logs and stack traces. The team module covers trunk-based development and semantic versioning, code review and short design docs, and how to estimate work and talk about scope, risk and technical debt. The last module is about running software: structured logs, metrics and traces, keeping secrets and dependencies safe with free GitHub tools and CI, and handling incidents with blameless postmortems. Every lesson has a reading, free videos and a quiz; most also have a JavaScript exercise checked automatically in the browser, or a guided task you do on your own machine or a free GitHub account. Prerequisites: Back-End Web APIs, Data Structures & Algorithms, and Git & the Command Line.

Course content

  1. Module 1

    Design

  2. Module 2

    Quality

  3. Module 3

    Working in a Team

  4. Module 4

    Running Software

Where this course leads

Next course on the path

Mobile App ProductionLevel: Mid-level