What Matters in Company Culture
"Company Culture" is so much more than a buzzword. In my opinion, it's what makes or breaks your experience at company. Here are a few points you may want to consider when choosing a company. I also sprinkle in some of my my personal preferences.
To sum it up — I believe that workplace culture is the key to achieving flow. And flow is the key to not just productivity, but happiness and fulfillment. No two engineers are the same. And the best companies see each engineer as a dynamic piece of the puzzle, with unique strengths, weaknesses, passions, motivation. Engineering isn’t about engineering, it’s about people.
Here’s a quick guide to what makes Toli flow:
- Friendly/Collaborative Coworkers: When my coworkers and I build personal relationships, we are able to drop our egos and truly collaborate. Feedback is not seen as a "personal attack". Instead it is seen as a way to grow and learn together. Companies that foster personal relationships (via frequent events, on-sites, pair programming, etc) tend to be the ones I’m most successful in.
- No Silos: It makes an enormous difference when coworkers aren't "protective" of their jobs and roles. Everyone is seen as a cross-functional part of the company. Of course, each employee has their own responsibilities and owns respective parts of the workload. But if they see something in the company that needs fixing or improving, or if they see that another coworker is struggling, there are empowered and encouraged to step out of their roles and help.
- No Two Engs are The Same: I've learned that matching engineers to the role/product/environment that fits them best makes a huge difference in productivity. There are all sorts of different work styles, interests, and passions. For example, I prefer infrastructural work, that is making toolings, boilerplate, and libraries that helps other engineers be most efficient. I thrive on open ended problems, where the solution is not yet specced out. For example, I wrote an open source testing framework (PickleJS.com), which had a huge impact in HOVER and outside of it. Nobody gave me a requirements list. I built it, because the nature of my job at HOVER was to solve a broad problem — how do we make our app more stable, and make engineers more productive
- Type of Problem: Other problems I tend to enjoy include writing common libraries, design systems, infrastructural work (where FE meets DevOps), solving complex/unique bugs, refactoring old code, data architecture, system architecture, and documentation (yes I’m one of the few engineers who actually loves documentation)
- Loose Timelines, Great Expectations: Some people need tight deadlines to motivate them. The type of work I excel at (large open ended problems), tends to require more rough timelines. Often times I’ll be at the gym, or skiing down a slope, or just laying in bed listening to music, and suddenly I think of an elegant solution to something I’ve been working on for weeks. I refactor often, consult and work with many members of the team, and don't stop until I have a solution that truly fits everyone, in a simple and elegant way.
- Direct Feedback: you don’t need to sugar coat things for me. Really. My strongest relationships are with people who aren’t afraid to tell me the truth as they see it. I will take what you say at face value, so with me, say what you mean. Likewise, I will be very direct about what I say to you.
- 1:1 interaction: I’ve found that I personally get more out of small (ideally 1:1) meetings.
- Positive Affirmation: if you’re already thinking “wow, Toli reminds me of my dog” you’re not wrong. I love community, challenges, direct feedback, and last but not least, positive affirmation. Nothing makes me happier or perform better than someone saying “good job, this really helped me out!” It’s so simple, yet, often forgotten.
No two company cultures are alike. Similarly, no two engineers are alike. Engineers who thrive in one culture, might do quite poorly in others.
In my opinion, the best cultures don't focus on one "opinionated" one size fits all approach, but rather create the space for each engineer to do their best work. If some of your employees are most productive when WFH, an effective company won't have policies to restrict those employees. On the other hand, the company would provide office space for employees who are productive in an office setting.
I've learned that matching engineers to the role/product/environment that fits them best makes a huge difference in productivity. There are all sorts of different work styles, interests, and passions which will dictate what type of role the engineer best fits in. For example, I prefer infrastructural work, that is making toolings, boilerplate, and libraries that help other engineers be most efficient. I tend to prefer open ended
For me, this is probably the most important part of culture and by far makes the greatest difference for me. When your coworkers become your personal friends, you are able to drop your ego. Feedback is not seen as a "personal attack". Instead it is seen as a way to grow and learn together.
Companies can do a lot to foster this type of environment including
The second week I joined a certain startup, there was a company wide offsite to Lake Tahoe. The company sponsored a huge ski cabin, food
It makes an enormous difference when coworkers aren't "protective" of their jobs and roles. Everyone is seen as a cross-functional part of the company. Of course each employee has their own responsibilites and takes ownership. But if they see something in the company that needs fixing or improving, or if they see that another coworker is struggling, there are no political barriers to step out of their roles.