Skip to content

Cultural Guide

Philosophy: How we work together

Team Values

1. Async-First Communication

  • Default to written communication
  • Respect deep work time
  • Document decisions
  • No expectation of immediate response (unless urgent)

In practice: - Update Slack/Discord async, don't expect instant reply - Schedule meetings only when necessary - Write design docs before meetings - Record meetings for those who can't attend

2. Quality Over Speed

  • Ship working software
  • Don't rush at cost of quality
  • Technical debt is intentional, documented
  • Tests are not optional

In practice: - Code reviews are thorough - Tests required for all PRs - Refactor when needed - Don't merge broken code to "fix later"

3. Continuous Learning

  • Everyone is still learning (even seniors)
  • Share knowledge openly
  • Ask questions without shame
  • Teach and be taught

In practice: - "I don't know" is acceptable answer - Pair programming encouraged - Team knowledge shares - Document what you learn

4. Kindness & Respect

  • Be kind in code reviews
  • Assume good intent
  • Disagree respectfully
  • Celebrate each other

In practice: - No personal attacks - Constructive feedback - Say thank you - Recognize good work publicly

5. Ownership & Accountability

  • Own your work end-to-end
  • If you break it, you fix it
  • Don't throw problems over wall
  • Help unblock teammates

In practice: - Monitor your PRs after merge - Fix bugs you introduced - Help with on-call incidents - Support other teams

Work Patterns

Meetings

  • Minimize: Meetings are expensive
  • Agenda: Every meeting has agenda shared 24h before
  • Notes: Every meeting has notes shared after
  • Optional: Most meetings are optional (know when to skip)
  • No-meeting blocks: Wednesdays 9am-12pm (example)

Focus Time

  • Deep work: 4-hour blocks for focused coding
  • DND: Use Slack/Discord status when focused
  • Headphones: Signal for "don't interrupt" (if on-site)
  • Interrupt protocol: Ping in chat first, only tap shoulder if urgent

Working Hours

  • Flexible: Core hours 10am-4pm (overlap time)
  • Async: Work when you're most productive
  • Timezone-aware: Note timezone in calendar, Slack
  • PTO: Take time off, disconnect completely
  • Boundaries: Don't work evenings/weekends (unless on-call)

Remote Work

  • Default: Remote-friendly (even if some on-site)
  • Video: Camera optional for most meetings
  • Communication: Over-communicate in text
  • Timezone: Coordinate across timezones thoughtfully
  • Presence: Use Slack status to show availability

Decision-Making

RFCs (Request for Comments)

For major decisions: 1. Author writes proposal doc 2. Share with team async (3-5 days feedback period) 3. Discussion in comments/chat 4. Meeting if needed (but try async first) 5. Author makes final decision (after considering feedback) 6. Document in ADR

Consensus

  • Aim for consensus on important decisions
  • Don't require unanimity (can't please everyone)
  • Disagree and commit (if you're outvoted, support decision)
  • Escalate if truly stuck (team lead, architecture group)

Speed

  • Bias to action: Make reversible decisions quickly
  • Delay irreversible: Take time on one-way doors
  • Ship and iterate: Don't wait for perfect
  • Learn from mistakes: Retrospect, improve

Code Review Culture

Reviews Are For

  • Catching bugs
  • Sharing knowledge
  • Maintaining quality
  • Teaching and learning

Reviews Are Not For

  • Gatekeeping
  • Showing off
  • Asserting dominance
  • Nitpicking

How We Review

  • Timely: Within 24 hours
  • Kind: Assume competence
  • Specific: Explain the "why"
  • Balanced: Praise + feedback
  • Actionable: Clear what to change

See review_etiquette.md

Communication Norms

Slack/Discord

  • Threads: Use them (keep channels organized)
  • @mentions: Use sparingly (they interrupt)
  • Status: Update when away/busy/focused
  • Async: Don't expect immediate reply
  • Social: Balance work and fun (but respect boundaries)

Email

  • Rare: Most communication in Slack/Discord
  • External: Email for external communication
  • Formal: Email for formal announcements
  • Reply: Within 48 hours expected

GitHub

  • Issues: For tracking work
  • PRs: For code review
  • Discussions: For open-ended questions
  • Mentions: Tag specific people for attention

Feedback Culture

Giving Feedback

  • Timely: Don't wait months (give feedback soon)
  • Specific: "You did X well" not "good job"
  • Private: Critical feedback 1-on-1, not public
  • Actionable: Clear what to change
  • Balanced: Positive + constructive

Receiving Feedback

  • Listen: Don't get defensive
  • Clarify: Ask questions if unclear
  • Consider: Reflect before reacting
  • Thank: Appreciate the feedback
  • Act: Change behavior if warranted

Retrospectives

  • Regular: After every sprint
  • Safe: No blame, focus on improvement
  • Actionable: Create action items
  • Follow-up: Actually do the action items

Incident Response

When Things Break

  • Stay calm: Panicking helps no one
  • Communicate: Update status in #incidents
  • Fix first: Root cause analysis after restoration
  • Postmortem: Blameless, focus on systems
  • Learn: Improve processes, don't punish people

On-Call

  • Rotation: Everyone shares burden (with buddy system for new)
  • Handoff: Clear documentation
  • Support: Team has your back
  • Compensation: Time off or pay for on-call work

Career Growth

How We Grow Engineers

  • Autonomy: Increase scope and responsibility
  • Mastery: Deep expertise in area
  • Mentorship: Help others grow
  • Impact: Bigger, harder problems

Levels (Example)

  • Junior: Learning, mentored heavily, clear tasks
  • Mid: Independent, own features end-to-end
  • Senior: Mentor others, design systems, ambiguous problems
  • Staff+: Cross-team impact, strategy, technical leadership

Promotion

  • Merit-based: Based on impact, not tenure
  • Transparent: Expectations clear at each level
  • Advocate: Manager advocates for you (but you must show work)
  • Patience: Promotions take time (1-2 years between levels typical)

Diversity & Inclusion

We Value

  • Different backgrounds
  • Different perspectives
  • Different work styles
  • Different communication styles

We Don't Tolerate

  • Discrimination
  • Harassment
  • Exclusion
  • Microaggressions

If You Experience Issues

  1. Talk to manager (if comfortable)
  2. Talk to HR/people ops
  3. Anonymous reporting (if available)

Work-Life Balance

Sustainable Pace

  • 40 hours: Standard work week
  • Crunch: Rare, temporary, with recovery time
  • Burnout: Watch for signs, speak up
  • Rest: Necessary for productivity

Time Off

  • PTO: Take it, all of it
  • Sick days: Stay home when sick
  • Mental health: Counts as health
  • No guilt: Don't feel bad for taking time off

Boundaries

  • Email: Don't check outside hours (unless on-call)
  • Slack: Mute notifications evenings/weekends
  • Disconnect: Truly disconnect on PTO
  • No badge of honor: Working 80 hours is not impressive

Anti-Patterns to Avoid

❌ Hero Culture

Problem: Individual saves the day, rewarded for firefighting Instead: Prevent fires, build systems, share knowledge

❌ Brilliant Jerk

Problem: Smart but mean, toxic to team Instead: Smart AND kind, collaborative

❌ Not Invented Here

Problem: Reject external solutions, rewrite everything Instead: Use proven libraries, build what's unique

❌ Analysis Paralysis

Problem: Endless discussion, no decision Instead: Decide, ship, iterate

❌ Cowboy Coding

Problem: Merge without review, break things, "fix later" Instead: Reviews, tests, quality gates

Questions New Members Ask

"How do I know what to work on?"

  • Check sprint board
  • Ask team lead or buddy
  • Look for good-first-issue labels
  • Attend sprint planning

"Is it okay to ask questions?"

  • YES! Ask questions
  • Better to ask than spin for hours
  • "No dumb questions" rule
  • Everyone was new once

"How do I get help when stuck?"

  1. Try for 30 minutes
  2. Ask in team chat
  3. Tag specific person if no response
  4. Pair program with buddy

"What if I disagree with a decision?"

  1. Voice your opinion respectfully
  2. Provide reasoning and data
  3. If outvoted, disagree and commit
  4. Don't relitigate endlessly

"How do I make impact as a new person?"

  • Ship small things consistently
  • Help with documentation (you have fresh eyes!)
  • Ask good questions (challenge assumptions)
  • Be reliable and kind

Resources


Remember: Culture is what we do, not what we say. Model the values.