Engineering
  • Welcome!
  • First Principles
  • Communication tools
  • Acronyms
  • Vital reading material
  • Engineering Onboarding
    • Onboarding Guide
    • Mobius onboarding Guide
    • Lessons
      • 001 - Function Purity
      • WIP - Shared Mutable State
  • System design & Architecture
    • Introduction
    • Refactoring
    • Architecture Decision Records
  • Meetings
    • Iteration Planning Meetings
    • Daily Standup Meetings
    • Retro meetings (retrospective)
  • Release Engineering
    • Introduction
    • Git commit messages
    • Code reviews & pull requests
    • Trunk-based development
      • Our methodology
    • Service Dependencies
    • Tooling & infrastructure
    • Git commands & workflows
  • Project Management
    • Product Requirements Document
    • Pivotal Tracker
Powered by GitBook
On this page
  • Non-Technical
  • Consulting vs Contracting
  • Engineering Philosophy
  • Technical
  • Mobius

Was this helpful?

  1. Engineering Onboarding

Onboarding Guide

PreviousVital reading materialNextMobius onboarding Guide

Last updated 5 years ago

Was this helpful?

Non-Technical

Consulting vs Contracting

  • Greenfield vs Brownfield

    • Greenfield software is the software that we design and develop from scratch. Brownfield software is one where something already exists and we have to add functionality and/or features to it.

    • Obvious mostly works in greenfield software development but we occasionally work with brownfield stuff too.

Engineering Philosophy

  • Documentation practices (ADR, project documentation etc.)

Technical

    • Use of feature flags for features that span over multiple PRs

    • Habit of raising PRs everyday

    • Prioritising review over writing new code (dropping everything to review a PR)

    • Show the Simple repo for daily branches, continuous integration and Github Actions for having checks in place

    • Read the and highlight some important practices that we follow as a team

  • Estimation Practices

    • How engineers get estimations wrong?

    • Estimation based on complexity and not time

  • Testing

      • Unit and Integration testing

      • Importance of testing

    • Testing codelabs for beginners:

    • : Fakes, mocks and Stubs

Mobius

  • Functional Core and Imperative Shell

    • Imperative and functional programming basics

  • Introduction to State Machines

      • Pairing activity using Counter example

      • Test-driven development

      • Introduce the login example

      • Pair on drawing the state diagram for login screen

      • Introduce Effect and EffectHandler

      • Introduce to Views and View Renderers

      • Introduce Init and wire Mobius loop

    • Individual Activity: Re-write the take-home exercise in Mobius

Boundaries Talk by Gary Bernhardt - /

Usage of Functional Core & Imperative Shell in above talk -

Introduction to

First Principles
Trunk Based Development (TBD)
Code Reviews & Pull Requests
Google code review guide
Testing pyramid
Covariance and contra-variance in tests
Testing basics
Test doubles and dependency injection
Test doubles
Pure functions
YouTube
Original Website
Video Link
Mobius
Mobius onboarding