Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Culture handbook updates #10241

Merged
merged 17 commits into from
Jan 10, 2025
41 changes: 41 additions & 0 deletions contents/handbook/company/Lore.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
title: Lore
sidebar: Handbook
showTitle: true
---

## Lore of PostHog / inside jokes

A beginner's guide to some of our custom Slack emojis and various anecdotes you'll see and hear about.

* <Emoji name="bad-internet" src="/images/emojis/bad-internet.png" /> Yakko always had bad internet when demoing. <em>Always.</em>

* <TeamMember name="James Greenhill" photo /> wore a skin tight green all-body suit for months to improve his Zoom background game without us realizing.

* <Emoji name="ben-peace" src="/images/emojis/ben-peace.png" /> <TeamMember name="Ben White" photo /> has the same pose in 90% of PostHog photos. It's a reference to a meme.

* <Emoji name="hype-X" src="/images/emojis/lottie-hype.gif" /> where X is a team member. Used in times of extremely impressive performance, unless used sarcastically.

* Mr Blobby. We once changed how we ingest session recording data, to use S3 blob storage. We called it Mr Blobby. [Mr Blobby](https://en.wikipedia.org/wiki/Mr_Blobby) is a creepy '90s TV character from the UK. This project was nightmarishly hard, which is why this character was fitting.

* <TeamMember name="Paul D'Ambra" photo /> will make you eat gelato at every offsite.

* Sometimes people screenshot each other's faces and Zoom screens and use them as their backgrounds. Usually when an all-hands is too dry.

* <TeamMember name="Charles Cook" photo /> wore a suit to his performance review. He is the only person in history to wear a suit to anything PostHog-related. Unsure if he was making a point, we later abandoned the practice of performance reviews regardless.

* We took lots of buses at an offsite in Portugal. The roads were incredibly twisty, the driver was in a bad mood, drove too quickly, and people threw up. It was bad.

* <Emoji name="sparksjoy" src="/images/emojis/sparksjoy.png" /> / <Emoji name="does_not_spark_joy" src="/images/emojis/does_not_spark_joy.png" /> A reference to <a href="https://konmari.com/marie-kondo-rules-of-tidying-sparks-joy/">Marie Kondo's book</a> on tidying your house, generally used to describe things that are particularly good or bad from a user's perspective

* <Emoji name="eu-thumbsup" src="/images/emojis/eu-thumbsup.png" /> / <Emoji name="thumbs-down-eu" src="/images/emojis/thumbs-down-eu.png" /> We once made <a href="https://www.isgoogleanalyticsillegal.com">isgoogleanalyticsillegal.com</a> when there were privacy rulings about Google Analytics. We put it on Hacker News, got the top of the front page, and it was our biggest <em>ever</em> day of signups at the time. The website was supposed to be tongue in cheek, but the internet took it seriously. The person in the emoji is Ursula von der Leyen, who introduced the GDPR legislation.

* IPO promises. There is a list of these that is brought out at certain moments. You may see.

* <TeamMember name="Marius Andra" photo /> will train you on Post-it notes if you go to an offsite with him. Success of a good Post-it note posting is in the lift away from the surface – the most important thing is to peel off the Post-it note, as opposed to pulling.

* Three finger rule - another Marius invention, if someone holds up three fingers while you're talking, it means you aren't being concise enough. We don't actually use this much as it's predictably awkward and distracting, so ruins any meeting it could have otherwise helped.

* When we hit 10,000 GitHub stars, <TeamMember name="Ian Vanagas" photo /> read every username on a live stream that took over six hours.

* We like to nail things. It's not uncommon to see a GitHub issue titled "Nail [feature name]". Sometimes we'll even assign an absurd version number like "3000". (The codename for the next generation UI of the PostHog app is referred to as PostHog 3000, and other projects have also adopted this naming convention as well.)
51 changes: 28 additions & 23 deletions contents/handbook/company/culture.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,30 +6,28 @@ showTitle: true

So, what's it like working at PostHog?

<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/rRwzJiljpSA" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
## We're 100% remote

## All remote
[Our team](/people) is 100% remote, and distributed across more than 15 countries.
andyvan-ph marked this conversation as resolved.
Show resolved Hide resolved

Our [team](/people) is 100% remote, and distributed across over 10 countries.
In addition to all the equipment you'll need, we provide [a budget to help you find coworking space](/handbook/people/spending-money#work-space), or to cover the costs of coffees for those who prefer not to work at home.
andyvan-ph marked this conversation as resolved.
Show resolved Hide resolved

As well as the equipment you'll need, we provide [a budget to help you find coworking space](/handbook/people/spending-money#work-space) or to cover the costs of coffees for those who prefer not to work at home.

All remote has a bunch of advantages:
Being all remote has a bunch of advantages:

* We can hire [amazing people](/people) from a global talent pool.
* Being remote encourages a deeper level of personal thought and writing things down.
* It allows for uninterrupted work.
* It makes results clearer, which helps us hold people to account for outcomes rather than hours spent in the office.
* It encourages thoughtful, and intentional, written communication
* It creates space for lots of uninterrupted work.
* We judge performance based on real outcomes, not hours spend in the office.
andyvan-ph marked this conversation as resolved.
Show resolved Hide resolved
andyvan-ph marked this conversation as resolved.
Show resolved Hide resolved

## Extremely welcoming
## We're extremely welcoming

This is actually so important to us that it has [its own dedicated page](/handbook/company/grown-ups).
This is so important to us that it has [its own dedicated page](/handbook/company/grown-ups).

## Extremely transparent
## We're extremely transparent

As the builders of an open-source product, we believe it is only right that we be as transparent as possible as a company.

This isn't just a meaningless corporate statement. Most of our communication happens publicly on GitHub, our roadmap is open for anyone to see, and our open source handbook explains everything from how we hire and pay team members to how we email investors!
This isn't just a meaningless corporate statement. Most of our communication happens publicly on GitHub, our roadmap is open for anyone to see, and our open-source handbook explains everything from how we hire and pay team members to how we email investors!

Almost everything we do is open for anyone else to edit. This includes things like the contents of this very Handbook. Anyone can give direct feedback on work they think could be improved, which helps increase our responsiveness to the community.

Expand All @@ -48,31 +46,38 @@ To accomplish this, we use [asynchronous communication](/handbook/company/commun

Putting things in writing helps us clarify our own ideas, as well as allow others to provide better feedback. It has been key to our development and growth.

## Don't let others fail
## We don't let others fail
andyvan-ph marked this conversation as resolved.
Show resolved Hide resolved
andyvan-ph marked this conversation as resolved.
Show resolved Hide resolved

Everyone should help everyone else raise their game. Fatigue sets in when you complete a task, so it's easier for outsiders to help those creating the work to raise their game.

We are direct about the quality of work. That doesn't always mean work needs to be completely polished, as it depends on the speed and impact of a task. Being great at [giving and receiving feedback](/handbook/people/feedback) is a key part of our culture.

## Bias for impact
## We bias for action
andyvan-ph marked this conversation as resolved.
Show resolved Hide resolved

If given a choice, go live. If you can't go live, reduce the task size so you can.
If given a choice, go live. If you can't go live, reduce the task size, so you can.
andyvan-ph marked this conversation as resolved.
Show resolved Hide resolved
andyvan-ph marked this conversation as resolved.
Show resolved Hide resolved

* We are small, and can only win based on speed and agility.
* Going live forces a level of completion, on which you can build.

Default to _not_ asking for permission to do something if you are acting in the best interests of PostHog. It is ok to ask for more context though.

## Have fewer meetings
## We on the maker's schedule
andyvan-ph marked this conversation as resolved.
Show resolved Hide resolved

We're big believers in the importance of the [maker's schedule](http://www.paulgraham.com/makersschedule.html). If we have meetings at all, we'll cluster them around any stand-ups, so our day doesn't get split up.

![Screenshot of an engineer's calendar at PostHog](https://res.cloudinary.com/dmukukwp6/image/upload/a0d634a2_bd3e_4229_ae8f_f98269a6c4f7_2268x1473_06595e2e80.jpg)
<Caption>The typical calendar of a product engineer at PostHog</Caption>

On Tuesdays and Thursdays, we don't have internal meetings at all. Occasionally an external meeting will slip in on those days, such as interviews, but we try to keep those to an absolute minimum.

We're big believers in the importance of the [maker's schedule](http://www.paulgraham.com/makersschedule.html). If we have meetings at all (which we try to avoid, see _"Write stuff down"_ above), we'll cluster them around any standups so our day doesn't get split up. On Tuesdays and Thursdays, we don't have internal meetings at all. Occasionally an external meeting will slip in on those days such as interviews, but we try to keep those to an absolute minimum.
## We're structured for speed and autonomy

## Structured for speed and autonomy
Hiring high-performing and self-sufficient team members means we don't need the typical corporate processes that are designed to slow teams down. Instead, we're organized into [small teams](/handbook/team-structure), which prioritize speed by delegating decision-making autonomy as much as possible.

One of the benefits of hiring high-performing, self-sufficient, empowered team members is that we don't need to put in place some of the typical corporate structures and processes that can slow teams down.
Our [management approach](/handbook/company/management) is super simple - James Hawkins, Tim, and the team leaders are the only managers, and everyone else reports to one of them. We don't want to create a fancy hierarchy of titles, as we believe this can lead, consciously or not, to people feeling less empowered to make changes and step on toes, especially if they are not in a 'senior' role.
andyvan-ph marked this conversation as resolved.
Show resolved Hide resolved

We have optimised for this by introducing [Small Teams](/handbook/team-structure), which prioritise speed by delegating decision-making autonomy as much as possible.
It's up to you how to get things done. If you want to make a change, feel free to just create the pull request. If you want to discuss something more widely for a bigger piece of work, it might make sense to use an RFC for a change inside your team.
andyvan-ph marked this conversation as resolved.
Show resolved Hide resolved

Right now, our [management approach](/handbook/company/management) is super simple - James H, Tim and the team leaders are the only managers, and everyone else reports to one of them. We don't want to create a fancy hierarchy of titles, as we believe this can lead, consciously or not, to people feeling less empowered to make changes and step on toes, especially if they are not in a 'senior' role.
If your RFC could significantly impact other teams as well, it usually works best to book a call with them as well as it usually saves time – "fewer meetings" doesn't mean "no meetings", just that they should be meaningful and intentional, not routine.

It's up to you how to get things done. If you want to make a change, feel free to just create the pull request. If you want to discuss something more widely for a bigger piece of work, it might make sense to use an RFC for a change inside your team. If you want to ship something that could significantly impact other teams, it usually works best to book a call - communicating with the relevant team (and using this to particularly focus on who you're building for, the goals of your idea before you get into the tactics) as a meeting tends to work better and usually saves time.
Read [How you can help](/handbook/help) to understand how you can contribute to this culture.
77 changes: 65 additions & 12 deletions contents/handbook/help.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,15 @@ sidebar: Handbook
showTitle: true
---

## Getting yourself up and running – your first week
People who work at PostHog have come from all sorts of different backgrounds – large companies, small companies, agencies, single-founder startups, and so on.

Their modes of working necessarily differ from each other and from PostHog, but we expect you to work in some fairly specific ways.

Being the transparent company that we are, we want to let you know about those expectations, because you can only meet expectations when you are aware of them!

Generally, our [values](/handbook/values) are a great place to start, as is as the [handbook page on culture](/handbook/company/culture), but here are a few specific ways to apply those values, and reinforce our culture as we grow:

## Getting yourself up and running quickly

If you're new, the default goal is to be able to get work done autonomously.

Expand All @@ -16,21 +24,65 @@ This will require:

Everything else is a means to this end! We often do onboarding in person to accelerate all the above. This usually takes around a week.

## General etiquette
## Ask for help, but only after you've tried first

### Don't assign issues to people
If you've just joined us, there's a lot you probably don't know. That's okay! However, we _do_ expect that you try to help yourself. Here's a framework to use as a guide:

- If it's one of our own products that we build and sell
- We expect you to [read our docs](/docs).
- We expect you to search through GitHub or Slack.
- If it's in beta, it might be buggy or missing features. Definitely request/report them, but also figure out how to do your job with plan B and plan C if it won't be fixed quickly - this is what we generally call grit.
andyvan-ph marked this conversation as resolved.
Show resolved Hide resolved
- If it's an external product
andyvan-ph marked this conversation as resolved.
Show resolved Hide resolved
- We expect you to read the docs
- If it takes you more than 10 mins to figure it out, then ask someone internally.

You can also try self-serving an answer in our [#ask-max](https://posthog.slack.com/archives/C07TQR0V16U) Slack channel. It's trained on our handbook and documentation, so it's capable of answering both questions about internal processes and procedures, as well as product-related questions.
andyvan-ph marked this conversation as resolved.
Show resolved Hide resolved
andyvan-ph marked this conversation as resolved.
Show resolved Hide resolved

If you don't get the context you're looking for, try [#ask-posthog-anything](https://posthog.slack.com/archives/C02E3BKC78F) where team members are willing to point you in the right direction. Take a moment to explain how you've tried to help yourself and linking to resources. That saves others valuable time searching the docs again, or typing up a suggestion to do just that.
andyvan-ph marked this conversation as resolved.
Show resolved Hide resolved

## Don't expect perfection

PostHog is a startup. As solid as our stack / product / CI / dev experience is for a company of our size (super solid, tbh), it might not be the extremely-well-oiled machine you had at BigCo. If something doesn't Just Work, follow the framework above to get help.

## Make it better

If you run into something you found that is confusing or needs fixing, we expect you to update the docs or handbook at minimum, and if you're keen then definitely improve the experience yourself. For example, CI is _everyone's_ job. If it sucks, fix it.

That being said, there is often a _reason_ why things are the way they are. That reason might be "because no one wanted to fix it," but it also might be "because it broke yesterday and we're on it" or "we've carefully considered this before and decided to make it this way."

We encourage you to step on toes, but don't be a bull in a china shop. Context is oftentimes your best friend – gather it up and keep it close.

## Don't wait for someone else

We expect you to be proactive about answering questions in your domain, even very early on after you are hired – e.g. after the first week. Look in the code. Read the docs. Find the answer.

Being wrong is way better than being silent – if you are wrong, someone will correct you. If you are silent, you're not doing your job.

andyvan-ph marked this conversation as resolved.
Show resolved Hide resolved
You can list and categorize issues.
## Have an opinion

If you want someone to see an issue, @mention them and/or Slack them the link.
You definitely don't need to have opinions on everything, but you should absolutely have opinions on your area of expertise.

If you don't have opinions on your area, you are realistically then just waiting for someone to tell you what to do, which is very much at odds with our autonomous way of working.

Opinions can take a bit to form, and that's okay – you don't need to have them on day one. But we expect you to start forming them rather early on, even if it's just on little things.

## Look around corners

We expect you to be thinking through not only the one change you're making right now, but also how that change plays out down the road. What might happen with this code / process / thing in 6 months? Where will that leave my change today?

We do have more senior people on the team (both in industry experience and in their tenure at PostHog), but they shouldn't be the only ones looking ahead – you should be the primary one looking ahead for _your_ changes.

### Don't assign issues to people
andyvan-ph marked this conversation as resolved.
Show resolved Hide resolved
andyvan-ph marked this conversation as resolved.
Show resolved Hide resolved

You can list and categorize issues. If you want someone to see an issue, @mention them and/or Slack them the link.

### Don't yolo merge
andyvan-ph marked this conversation as resolved.
Show resolved Hide resolved

Do not "yolo merge", i.e.: force a change to our website or platform without someone else checking it. This should _only_ happen in emergencies, _even_ for simple changes. It is _so_ frequent that we find issues. If you have _any_ doubt, get someone else to look at it first.
Do not "yolo merge" i.e.: force a change to our website or platform without someone else checking it. This should _only_ happen in emergencies, _even_ for simple changes. It is _so_ frequent that we find issues. If you have _any_ doubt, get someone else to look at it first.

### PRs > issues > Slack
andyvan-ph marked this conversation as resolved.
Show resolved Hide resolved

Bias for impact. If you can just pick up the work, do so. We want a culture of individual contribution _not_ of delegation.
Bias for action. If you can just pick up the work, do so. We want a culture of individual contribution _not_ of delegation.

It is fine (and encouraged) to pick-up side quests, or to deviate from your goals if you think you should. Especially if something is a quick fix, do it yourself as part of our value that _Everyone Codes_.

Expand All @@ -50,6 +102,11 @@ Don't _only_ help the community when you're the person on support hero in your s

You can find these in [posthog.com/questions](/questions).

## And if you don't work here...

[Apply for a job at PostHog](../careers)!


## Lore of PostHog / inside jokes

A beginner's guide to some of our custom Slack emojis and various anecdotes you'll see and hear about.
Expand Down Expand Up @@ -84,8 +141,4 @@ A beginner's guide to some of our custom Slack emojis and various anecdotes you'

* When we hit 10,000 GitHub stars, <TeamMember name="Ian Vanagas" photo /> read every username on a live stream that took over six hours.

* We like to nail things. It's not uncommon to see a GitHub issue titled "Nail [feature name]". Sometimes we'll even assign an absurd version number like "3000". (The codename for the next generation UI of the PostHog app is referred to as PostHog 3000, and other projects have also adopted this naming convention as well.)

## And if you don't work here...

[Apply for a job at PostHog](../careers)!
* We like to nail things. It's not uncommon to see a GitHub issue titled "Nail [feature name]". Sometimes we'll even assign an absurd version number like "3000". (The codename for the next generation UI of the PostHog app is referred to as PostHog 3000, and other projects have also adopted this naming convention as well.)
Loading
Loading