4 month at Buildkite

I joined Buildkite 4 months ago. I get to work with the people I admired working with, on a developer-oriented product I personally interested.

What’s good?

Besides these, allow me to share some things I learned in one paragraph or two for the past 4 months. Feel free to skip things you’re not interested in.

Timezones

We are currently a distributed team of 26 with everyone work remotely in Oakland, Seattle, Vancouver, Perth, Sydney, Hobart, Adelaide, Melbourne, Wellington, Berlin, and Tokyo.

Majority of folks are in Australia. We have people from Europe and west-coast America. Both parts of the world have 3+ hours overlap with Australia. We currently do not have timezone issues. Meetings are recorded for people who cannot attend. Most of things and decisions happen asynchronously in writing.

38 yet Flexible

We do not really have set hours or tracking how many hours you work. But thanks to Australia, legal workweek is 38 hours (yay!). It is only 2h less than the usual 40. It is really flexible to accommodate everyone’s priorities. Many coworkers have kids. Having kids while working 38h is still really difficult. Buildkite is really flexible allows everyone to take care of their family and still have a sustainable career.

Everyone works sensible hours. No one is putting extra work or anything. I’m not feeling the need to put in long hours to prove myself. We have two people since joined moved from 4 days a week to 5 days a week because work is not soul crashing like it used to be.

Work-life finally balanced.

Equally fair

We also have contractors. Some people chose to have a 3-day workweek or 4-day workweek. It is totally fine here and I don‘t feel contractors have any difference compares to full-time employees. In some places you can sense those differences.

Onboarding

I don’t need to spend money then expenses later during onboarding. This is great and very important1. I received a welcome box with all the things you expected, but this small photo book with everyone’s photos dedicated to me stands out. In this difficult time, this human touch was much appreciated.

welcome photo book <3

welcome photo book <3

For getting familiar with the codebase, I’m thankful to our tribe chief Keith (CTO) that ran a Code Safari for me. And other engineers for drawing and chatting with me on how Buildkite works and trust me to do things.

My buddy Eleanor is an excellent mentor. Help and guide me with so many things ❤️ (Are you reading this, hello 😊) I’ve video chatted with everyone in the company. People walked me through what they do.

We also have a "Continuous Onboarding" system which everyone can get familiar with different parts of our product, have chances to talk and listen to customers, make repetitive operations easier, and do hacks that make customers life easier.

Celebrating Achievements

Celebrating effort and achievement and all the good stuff. Celebrate people who do awesome work around you is important. Great work got recognized through our internal shout outs and wonderful writings. I am not good at receiving, but learning to say: Thank you!

I always believe in "If I do good work, I’ll get recognized eventually" and I think it is possible at Buildkite. Because I have seen many people thrive at Buildkite. 4 promotions in 4 months I joined.

No Shallow Benefits

I learned all benefits are there for a purpose. We do not have any benefit that keeps you working more. Company is not optimized to get more out of you. Company is here to help us stay in the long run. Work hard, but sustainably. Benefits are there to help us live a healthier life.

Healthier

Since joined Buildkite, I have slept more. I feel less stretched at work. From 4-5h sleep to 6.5h+ sleep. I am doing weekly yoga with lovely coworkers (warrior 2). Got introduced to Oats milk. Growing love for home plants. Buildkite constantly asks me to look after myself. We have generous self-care budget 😉

Writings trumps Chats

This is the first time I am using Basecamp for work. It is much better than Slack. Slack traumatized me and I think I finally starting to recover. Basecamp encourages more writings2. Everything on Basecamp is commentable and gets a full editor. Basecamp also has reasonable notification settings that reduce my stress greatly.

But we do have meetings.

Enjoyable Meetings

Meetings are 70% fun, 30% business 😅.

Product design catchup where I can participate and learn how things get designed. Weekly catchup is where all the fun is, 10% business. Weekly Engineering meetings we discuss how could we improve engineering-y things, then go improve those things or come up with solutions, collectively.

The virtual all-hands meeting for our Buildkite Anniversary was...phenomenal. It had llama farm tour 🦙, magic show3, and movie-quality videos in a company’s meeting! Have you heard of these 3 words when describing company all-hands?

Technical meetings with people who were here longer than me does not feel confrontational that I need to present them with solutions. Instead we collectively discuss the problem and arriving at possible solutions. Is to find a way to help Customer. No blames if you don’t know anything. Everyone tries to help someone else to get that shipped to Customer.

Although meetings are enjoyable, we do not have too many meetings. Monday usually is a no meetings day!

What my calendar looks like in a week

What my calendar looks like in a week

But remote is lonely.

Facetime mitigates Lonely Remote

We have many facetime opportunities. We pair regularly. I think it may not be most productive, but facetime does let me feel less lonely and encouraging knowledge transfer. In this difficult time, facetime is great!

That being said I feel...

Virtually Connected

People write all sorts of things by check-in and messages. I get to know more about people, know deeper about someone, compared to I used to go to the office. You are not forced to share, but you can read them. My favorites are people talking about their favored YouTube channels, music they like, Glacier report, how to make paper planes fly far, and...Astrophotography.

Besides writings, we have many events that I felt even more connected compared to work at real office. For instance, Quizzes, Gin Tasting, Cooking, Yoga, Tim Tam Slam, Minecraft, et cetera.

This is the moment I felt I’m in.

This is the moment I felt I’m in.

Cooking

I felt I cook decent food. How wrong could I possibly be! There is a long-running check-in thread of people posting amazing food they made. As a person who loves food, I think I end up in the right place. And personally I firmly believe:

People who can cook great food, they will never be bad people!
——Juanito Fatas

Development Environment

Once setup (1h), rarely has any issue. It is not dockerized development environment, but it is manageable. I use overmind to run everything like Nginx, puma, Sidekiq, etc.

Our app is a proud Monolith with organized pieces. Run the whole suite locally is 35 minutes. Test suite runs in 10 minutes on Buildkite with parallelizations. Deploy is very safe and stable. Running a single test’s feedback loop is snappy. Most of the codebase is manageable, easy to change, and organized. The codebase is full of playful ASC-II art. If you encounter a dragon in the codebase, you know it is a file requires more attention:

Here comes the dragon

Here comes the dragon

Development Work

We work on shaped projects in six-week cycles with two-week cool-down. Pull Request must have reviews to ship. Default branch is always deployable. Everyone can deploy. The product engineering team is small, things move quickly.

Code Review is great. No one is nitpicking. People genuinely try to help other people to help customers, so get things shipped is our common goal. As a result of this, out of 131 Pull Requests I‘ve opened, 118 merged (90.1%), 13 closed (9.9%) so far 🎉

Building Buildkite by Buildkite

Employees get a free Buildkite account for life. I have since been using it to run my personal projects. The code I write directly impacts Buildkite. Building X by X is a pattern leads to great software.

We are building and using Buildkite. Building the platform while using the platform has many byproducts like documents are up-to-date, many things would be fixed because we are also using it.

Blameless Incidents

There were many incidents after I joined (coincident…?). During the incidents, I joined all the war room, to see how to handle it. Not because I forced to. People are not pointing fingers during the incident. Everyone was trying to help each other to get this sorted out. Even still making jokes while thing is on fire!

Everyone on Support

We all do support in turns for a week. You really only need to focus on support for that week. Doing support can help to find recurring problems for customers. It is a learning engine! I had first Customer Support rotation in my 2nd month. It is my first time doing support, so was not easy. Really built up my empathy towards customers and remind me I still don’t know almost anything. Reinforce what’s important for any company, your customers.

Learning and Growing

I learned a lot reading internal messages, Pull Requests and look at how people are doing things. I also attended a training for 5 afternoons on PostgreSQL. People were all supportive during my time in training. Either writing more things down for me to pick up later or help cover my support tickets.

I am currently the worst musician. Learning every day, happily. Yet Buildkite is still small, I feel the people who is currently thriving are very close to me and I have so much to learn from them and I could be one of them one day.

No Competitions, No Politics

There are no competitions and politics unlike other workplaces I have worked for. No one is chasing promotions. The ideas are being challenged, not the people. Healthy debates about things, not about the people. It is not zero-sum. It is more like if someone is winning, then we all win.

Managers and 1:1s

I feel Manager at Buildkite is gem install active_support, that they work with you and support you. Removes the roadblocks for you on the way ahead. No micromanagement. I had 1:1 every week. My manager listens to me patiently. Understanding, sympathizing, and encouraging me, unblock me when I’m blocked. Even at our size, during managers transfer (because my first manager is now on baby leave), we have a proper transitioned meeting of 1:1:1.

I think we only missed 1:1 less than 3 times, because my manager needs to take care of kids or takes vacations. One on one are quality conversations and does not feel stressed at all.

I have massive self-doubt. I think my problem is something called Super-Impostor syndrome no one has heard before. I always try to hide it and keep it to myself. But that’s wrong and I finally learned to be vulnerable about how I’m doing. It is always not easy to share for me. After showing vulnerabilities. I feel safer. The relationship gets better. Not struggling alone.

Feedbacks In, Actions out

The company constantly asks for feedback. Many company does that. But often no actions come out. And those employers who pretend to care for you and do nothing is even worse than who never says they care. But at Buildkite, we provide feedback and we see concrete actions coming to address our situations.

I once been told: Don’t do things that is easy for the company. Do things for the people.

Together in the time of COVID

Company has given 14 more days for anyone who needs extra time to cope with the situations. Work hours are really flexible to help with school closed and no child care. Additional budget to get equipment needed to work better from home.

The entire company feels like a tribe, not a family, with a very good vibe. People are constantly showing vulnerabilities and support each other. I haven’t seen anyone got mad in 4 months. Especially in these difficult times, really feeling we are in this together.

Finally I want to talk about 3 feelings.

I feel safe

As a new workplace, I feel I belong here. As a learner, I feel I am learning. As a contributor, I feel I am contributing. I made a mistake once that took down production. I did not get blame. I could go do something first without thinking about consequences. During serious incident I can ask questions. Seeing people especially CEO shows vulnerability also makes me feel safe.

I feel trusted

I feel muchly trusted. For material things, after 2 interviews, so many things company bought for me with no question asked. But material things every company with money can do. What increases trust more is transparency.

I can read almost everything in Basecamp.
I can see all of our metrics and revenue charts.
I can speak up for things without consequences.

I feel valued

My first day was a meeting with 2 people telling me how they already knew so much about me. They walk me through all the things at Buildkite. It is very comparable to real-world onboarding camp.

I was prepared to be a sort of freelancer that will likely be a contractor of Buildkite based in Japan and figured out health care, pension, and taxations by myself. But Buildkite has hired a professional global expansion company that removes all the overhead just for me.

After joined, I found this message that my lovely colleague Cath was preparing how to pronounce my name and other people were practicing too 😭

Cath practiced my real Chinese name <3 <3 <3

Cath practiced my real Chinese name <3 <3 <3

My Favourite Moments

Fin

So all in all. I love it, so much!

Buildkite puts people first. I feel lucky I am in this wonderful company and surrounding by wonderful mates. People are really really kind and supportive. Team is in very happy vibes. They treat me so well. Everyone treats everyone so well. I feel respected. I think this is the first time I’ve been treated this well. Now I feel I can actually acknowledge my feelings and have people support me.

Buildkite is still relatively small. We are doing interesting things and relatively sustainable. It is easy to get to know people. I feel I can do so much more with the product. I feel I can actually make significant progress.

Loving it!

Onwards

I only explored a bit of the Buildkite, a lot of them still covered by fog. I am looking forward to telling better jokes, stucking on difficult problems, hearing new puns, combating a dragon, attending our online offsite week, reading other people’s writings, experiencing people’s culture, cooking things together online (in real life later), saving an incident, making a big change, owning a big part of something, and continuing to explore everything else in the fog.

My map at Buildkite

My map at Buildkite

That was more words than I anticipated. Thanks for reading all the way to the end. For Buildkiters who are also reading this, thank you very much for being you and amazing human!

Cheers,
Juanito


If the above sounds good to you, we do have some rare openings at the moment. We are currently looking for designers and marketing friends.

Do you want to know more about anything? Happy to answer all of your questions if you’re thinking to apply, send me an email: juanito@hey.com.

  • 0

    Everyone deserves to work comfortably, safely, and productively. Investing in good work equipment and environments is one way Buildkite invests to let everyone has a good home office so job is sustainable.

  • 1

    People team person has a purchasing card and bought everything I need for me. This is particularly useful for people at career transition points. A lot of companies miss this one and had their employees cover $1000-$5000 first (international business travel and accommodations). Expense them 60-90 days later is not good. Company should do this at Onboarding stage is very important, because the candidate may not be in good financial situations. They also have not had success in your payment timeline yet.

  • 2

    Although Basecamp’s text editor should have better support of messages with code. And multi-line sentences should not turn into quote...

  • 3

    The llama named Ruby. The magic show was done with video and card tricks that tell a great story connected everyone in the company...Very thoughtful. Really really good.