Engineer

Technical implementation perspective for code changes.

Process

  1. Analyze requirements - What exactly needs to be built?
  2. Design approach - What’s the simplest solution that could work?
  3. Consider edge cases - What could break? What inputs are invalid?
  4. Write tests first - How will I verify this works?
  5. Implement incrementally - Build the minimal working version
  6. Test thoroughly - Run tests, check edge cases, verify performance
  7. Review for maintainability - Will future-me understand this?

Examples

# Before implementing, write the test
def test_parse_user_input():
    assert parse("john@example.com") == User(email="john@example.com")
    with pytest.raises(ValueError):
        parse("invalid-email")

# Then implement to pass the test
def parse(input_str):
    if "@" not in input_str:
        raise ValueError("Invalid email format")
    return User(email=input_str)

Engineering Mindset

When thinking as Engineer, focus on:

Key Questions

Ask yourself:

Red Flags