Object Oriented Programming & Design Principles (iOOP)

This is an elective skill. You may choose this as one of your required quota from the focused technical category.

Object orientation and how to use it effectively to architect modern solutions.

LVL 2 - Engineer I

New to object-oriented programming.

  • has a grounding in OO and is able to write simple classes and interfaces.
  • understands inheritance and the different levels of scope within a class.
  • has minimal exposure to, and understanding of, design patterns.

LVL 3 - Engineer II

Understands the fundamentals of object-oriented programming and applies them in their day-to-day work, often needing input on class design.

  • is fluent in OO fundamentals and can apply them in their respective language.
  • is learning SOLID principles and/or types of design pattern (behavioural, creational, structural), and is starting to incorporate them into their work.
  • understands anti-patterns and the reasons why some approaches are preferred over others (e.g. composition vs inheritance).

LVL 4 - Senior I, TTL, SEM

Writes well-architected object-oriented code by default and helps others learn and apply good techniques.

  • aware of most design patterns and uses them appropriately.
  • knows SOLID principles and applies them where feasible/possible.
  • assists others on good design.

LVL 5 - Senior II

An authority for others to follow on good design patterns with significant proven experience. Understands the trade-offs and when not to apply these patterns.

  • adept at well-architected OO code, able to advise and collaborate on solutions.
  • has significant experience with many design patterns and knows when to use them situationally.
  • is seen as a technical authority for well-written code on the team that others will turn to.
  • understands the virtues and drawbacks of using these techniques and applies them pragmatically.
  • openly teaches good techniques, and intuitively understands why we adopt these approaches.

LVL 6 - Principal

An evangelist for object-oriented programming and design principles. Keeps Inviqa's best practice up to date with industry trends through discussion and cross-project consultation.

  • preaches good design, but also a pragmatic and accessible approach to multiple teams, helping manage trade-offs to quality / readability / efficiency.
  • is aware of evolving architectural trends in the industry, and where they offer improvements on existing implementations.