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
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¶
- Talk to manager (if comfortable)
- Talk to HR/people ops
- 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-issuelabels - 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?"¶
- Try for 30 minutes
- Ask in team chat
- Tag specific person if no response
- Pair program with buddy
"What if I disagree with a decision?"¶
- Voice your opinion respectfully
- Provide reasoning and data
- If outvoted, disagree and commit
- 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.