Onboarding Guide
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 Google code review guide 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:
Test doubles: Fakes, mocks and Stubs
Mobius
Functional Core and Imperative Shell
Imperative and functional programming basics
Boundaries Talk by Gary Bernhardt - YouTube / Original Website
Usage of Functional Core & Imperative Shell in above talk - Video Link
Introduction to State Machines
Introduction to Mobius
Pairing activity using Counter example
Test-driven development
Introduce the login example
Pair on drawing the state diagram for login screen
Introduce
Effect
andEffectHandler
Introduce to Views and View Renderers
Introduce
Init
and wire Mobius loop
Individual Activity: Re-write the take-home exercise in Mobius
Last updated