The onboarding process described here is specific to a software engineer joining a tech company. While some/most of the items may still apply to any job where you mainly work from a computer, the assumption will be that you develop software as an individual contributor.

  • Setup laptop
  • Access to slack
  • Access to zoom
  • Initial meeting with buddy
  • Access to git central repository
  • Installation of development tools/languages
  • Access to CI/CD
  • Find where task management is done
  • Find the documentation to build projects
  • Connect 1 on 1 with each member of the team
  • Meet with manager 1 on 1
  • Define a 30-60-90 days plan with manager
  • Verify access to various systems (SSO, code repository, insurance company, payroll company, etc.)
  • End of week meeting with buddy

  • Setup and run the one step build process
  • Determine how are features/tasks prioritized, who prioritizes features/tasks
  • Find the team documentation
  • Find team practices documentation (code style, code review, standups, planning, retrospective, demos)
  • Find common vocabulary, terminology, glossary documents
  • First PR + code review

  • Find user definition, use cases, requirements

  • Identify how deployments are done
  • Find the team roadmap
  • Determine where I can have the biggest impact
  • Determine a timeline where I'll have reached my 80/20 at the company
  • Determine the maturity of existing projects
  • Determine fast can we iterate on certain aspects given the team/company composition
  • Identify the core/principal/staff contributors and their contributions
  • Review the architecture of the system
  • Review the database architecture
  • Determine whether the product is a monolith or micro-services
  • Identify which (3rd party) tools are used by the team/company
  • Connect 1 on 1 with important collaborator in other teams
  • End of first month meeting with buddy
  • First month performance review with manager
  • Month 1 job satisfaction review

  • Month 2 job satisfaction review

  • Month 3 job satisfaction review
  • List all the features you would like to develop
  • Define an appetite for the task (day, week, month, quarter)
  • Identify the features where the appetite differs between individuals and discuss them to reach consensus
  • Define the roles necessary to complete the task
  • Identify dependencies between features
  • Categorize the dependencies
    • Soft: somewhat depends on this other feature but isn't blocked by its absence from the codebase
    • Hard: depends on this other feature and is blocked by its absence from the codebase
  • Prioritize the features
  • Estimate the value of a features in dollars
  • Calculate a ROI (return on investment) as the estimated value of the feature divided by the defined appetite
  • Order tasks according to dependencies and ROI