Intermediate level Software Engineering and Quality

Design Patterns, Refactoring and Test-Driven Development

Design software that is easy to change: test-driven development, SOLID design, the patterns that solve recurring problems, taming legacy code, and property-based and mutation testing, finishing with a well-designed, thoroughly tested application.

  • 40hours of work
  • 19parts
  • Reviewedcapstone
  • Lifetimeaccess
  • Test-driven development
  • SOLID design
  • Design patterns
  • Refactoring legacy code
  • Property-based testing
  • Static analysis and typing

At a glance

Who it is for

Developers who can write working programs and tests and want to design clean, maintainable object-oriented code, refactor safely and work confidently in code that others wrote.

Before you start

Python including classes, modules and pytest basics, Git and a GitHub account. If you have finished Git, Testing and Clean Code: Professional Habits for New Developers, you are ready.

How you finish

Pass the quizzes and labs, then submit a capstone project. The NIBVEDA team reviews it and either accepts it or sends it back with comments you can act on.

What you will be able to do

  1. 01Drive design with test-driven development and use test doubles appropriately
  2. 02Apply SOLID principles and refactor a tangled class into focused, testable parts
  3. 03Recognise and apply common design patterns, and know when not to
  4. 04Rescue legacy code with characterisation tests, seams and incremental refactoring
  5. 05Use property-based testing, mutation testing and static analysis to find what example tests miss

Curriculum 40 hours in 19 parts

Select a kind to highlight its parts.

Stage 1A domain built test first7 parts · 11 h
  1. 1
    Why design matters: the cost of changeLesson · Short, focused reading with questions to check yourself.
    1 hFree
  2. 2
    Test-driven development and test doublesLesson · Short, focused reading with questions to check yourself.
    1 h
  3. 3
    TDD katasWorkshop · Follow along and build, with the steps and the traps written out.
    2 h
  4. 4
    SOLID, composition and dependency injectionLesson · Short, focused reading with questions to check yourself.
    1 h
  5. 5
    Refactor a god class into SOLID partsWorkshop · Follow along and build, with the steps and the traps written out.
    2 h
  6. 6
    Check yourself: TDD, test doubles and SOLIDQuiz · Twelve questions, marked at once, with the reason behind each answer.
    1 h
  7. 7
    A domain built test firstLab · Hands-on work. Many labs are checked automatically against what must exist.
    3 h
Stage 2A command-driven editor engine6 parts · 10 h
  1. 8
    Creational and structural patternsLesson · Short, focused reading with questions to check yourself.
    1 h
  2. 9
    Five patterns in a small applicationWorkshop · Follow along and build, with the steps and the traps written out.
    2 h
  3. 10
    Behavioural patterns: strategy, observer, command, state and moreLesson · Short, focused reading with questions to check yourself.
    1 h
  4. 11
    An undoable editor with observers, commands and statesWorkshop · Follow along and build, with the steps and the traps written out.
    2 h
  5. 12
    Check yourself: design patternsQuiz · Twelve questions, marked at once, with the reason behind each answer.
    1 h
  6. 13
    A command-driven editor engineLab · Hands-on work. Many labs are checked automatically against what must exist.
    3 h
Stage 3Rescue a legacy code base and prove it4 parts · 8 h
  1. 14
    Working with legacy codeWorkshop · Follow along and build, with the steps and the traps written out.
    2 h
  2. 15
    Rescue a legacy scriptWorkshop · Follow along and build, with the steps and the traps written out.
    2 h
  3. 16
    Check yourself: legacy code, refactoring and static analysisQuiz · Twelve questions, marked at once, with the reason behind each answer.
    1 h
  4. 17
    Rescue a legacy code base and prove itLab · Hands-on work. Many labs are checked automatically against what must exist.
    3 h
Stage 4Property-based tests and mutation testing1 part · 3 h
  1. 18
    Property-based tests and mutation testingLab · Hands-on work. Many labs are checked automatically against what must exist.
    3 h
FinishCapstone project1 part · 8 h
  1. 19
    A well-designed, thoroughly tested applicationCapstone · A full project for your portfolio.
    8 h
Free lessonWhy design matters: the cost of change
What you take away

An internship certificate with your skills on it.

Made for you automatically when you finish the last part, it names the internship programme, the level and the 40 hours, lists what you showed, and carries a number and a QR code. Anyone can check it on the NIBVEDA verification page, and it shows as withdrawn there if it is ever revoked.

  • Proof you completed all 40 hours of this internship programme
  • An Internship badge for your profile, CV or portfolio
  • Not a job, a stipend or an academic degree, and it says so
More in Software Engineering and Quality

Keep building.

3 programmes in this track, from beginner to expert. Buy the learning path and save 15%.

BeginnerBeginner40 h Professional Habits for New Developers

Learn the habits of professional developers: Git and pull requests, readable code, automated tests with pytest, debugging, working with others and continuous integration, finishing with a small project released like real software.

  • Git and GitHub
  • Clean code
  • Unit testing with pytest
Rs. 249 + GST
ExpertExpert41 h Software Architecture and Engineering Leadership

Learn to make and defend the decisions that shape software systems: architectural styles and trade-offs, domain-driven design, enforcing architecture with code, evolving and modernising systems, delivery metrics, incident reviews and the written communication that leads teams.

  • Software architecture
  • Domain-driven design
  • Architecture decision records
Rs. 999 + GST

See all 3 programmes in Software Engineering and Quality Take the placement test

Before you enrol

Quick answers.

The policies have the full detail.

Is this a real internship?

It is a virtual internship programme: a structured, self-paced course built around a real project, with checked assessments and a certificate. It is not employment, it does not carry a stipend and it is not an academic or AICTE-approved qualification. What it gives you is verified, project-based evidence of skills.

How does self-paced work?

You start when you like and move at your own speed. Each part unlocks when you finish the one before it. There are no live classes and no deadlines. Your access is shown on each programme page.

How is my work checked?

Quizzes are marked as soon as you submit them. Labs use a tick-list of tasks. Intermediate and Expert programmes finish with a capstone that the NIBVEDA team reviews and either accepts or sends back with comments.

Can I get a refund?

Please read the refund policy before you buy. It explains when a refund is possible.

Ready to start?

Rs. 706.82 including GST. Lifetime access. Read the first lesson free before you decide.