Tooling (iTOO)

Abilities centered around the common day-to-day tooling within software engineering including, but not limited to, working with your local environment, version control system, package management and IDE usage.

LVL 2 - Engineer I

Is capable of operating their tools in a manner that allows them to function as a project team member, providing basic value while under support from the rest of the team. They do not necessarily understand the complexities or the “whys” at this stage.

  • can operate only the basics in their local development environment with support from team members, such as changing environment configurations or enabling/disabling debug mode.
  • is able to perform basic Git operations for day-to-day work, such as cloning, fetching code, branching, committing, pushing, pulling, merging.
  • understands the fundamentals of package management and can use the associated tool within their field to perform common operations, such as fetching dependencies.
  • is familiar with the basics of commonly used project tools, such as an IDE.
  • is aware of the CLI and can use it as instructed for their projects.

LVL 3 - Engineer II

Can operate their tooling in a mostly self-sufficient way on a project team, understands the common paths of operation, needing help only for the more complex aspects.

  • able to clone a project and get to a working environment with minimal assistance.
  • is confident with fundamentals of rebasing: understands the commit structure, squashing and knows the difference between rebasing and merging.
  • is aware of different project branching strategies, such as Gitflow.
  • is familiar how to add new dependencies to package management in use, and how to resolve dependency conflicts.
  • knows and uses common project tools effectively. For example, uses IDE shortcuts to increase programming speed, can configure database access with a database management tool, or knows how to operate CI/CD pipeline tool.
  • feels comfortable running typical CLI commands, such as environment management commands, file handling commands and process start/stop commands.

LVL 4 - Senior I

Can operate their tools and environment self-sufficiently within a project team. They know how to configure and troubleshoot their tools for the task at hand to deliver value efficiently for their project.

  • is fluent with day-to-day operation of their working environment, can deal with common problems such as restarting crashed services or checking logs.
  • knows the different branching and merging strategies used at Inviqa and can use them without concern.
  • structures their code into sensible and logical atomic commits as a matter of course.
  • regularly rebases interactively to manage their commits for a clean and sensible history - reordering, squashing and consolidating comments.
  • knows and uses most of the important features of project tools, such as moving and renaming classes in their IDE to facilitate refactoring work, checking build logs to find out a problem with failing pipeline build.
  • is aware of de facto standard packages to use for common project needs within their field of expertise, such as Behat integration for writing tests.
  • is using cli as part of their day-to-day jobs if applicable.

LVL 5M - TTL, SEM

Gathers opinion from their teams and communities to agree which tools to use and how they should be configured.

  • defines and leads the implementation for adding or changing tools or technical processes for a project, for example version control.
  • ensures that recommendations for IDE usage are spread across the company.
  • increases their colleagues awareness of modern tooling stack, leading them towards making effective use of them.

LVL 5T - Senior II

A master of their tools and environment. They introduce new industry trends to their team and wider community, while helping others with their tooling challenges.

  • takes more ownership of the environment for the project team, keeping it up-to-date and supporting other team members using it.
  • is confident in applying advanced git practices such as cherry-picking, using reflog and helping the team out with complex scenarios such as rebasing onto rebased parent branches.
  • applies broader package updates to an application, caring about risks of backwards compatibility and how to mitigate them.
  • provide tools to automate repetitive work for colleagues.

LVL 6T - Principal

The leading voice on best practice around tooling, using their knowledge and wisdom to upskill the community at every opportunity.

  • follow established processes to setup standard project environments and pipelines
  • familiar with continuous integration setup and applying it when given example configurations
  • drives technical process strategy for new and existing projects while actively promoting preferred practices to the team.
  • reviews and maintains lists of recommended tools for ensuring engineers are up to speed.
  • drives engineers to make sensible decisions for automation of tasks.