How we work

At BigBinary, we work differently and care about uninterrupted time, async work, ability to read etc. We have written here what has worked for us for the last 12+ years.

Remote first

BigBinary has been a 100% remote first company since it started in 2011. Working in a 100% remote environment is challenging and not for everyone. In the beginning, we struggled with it. Over the years, we have built tools and habits to support our 100% remote environment.

Writing

At BigBinary, we care a lot about how we write. This is because in an engineering company like BigBinary we typically write once, and many people read it. Hence it's essential that whatever is written has clarity and conciseness.

Whatever is written should also be grammatically correct English sentences all the time. Even in our internal chat, BigBinary folks are cannot write like "i will attend the call five minutes late.". Here "i" should have been spelled as "I".

Reading

We want BigBinary folks to have the capacity to read long articles without getting distracted. In this social media age, where videos are consumed mostly, people are getting worse at reading long articles. We want BigBinary folks to be able to read in a concentrated manner.

In many companies, a common excuse is that I didn't read the documents because they were too long. That will not fly here. You must be able to read articles, blogs and comments with concentration. Here is an example of an article which is long and you should be able to read it.

Sense of urgency

It's a known human trait that when we work with a sense of urgency then not only we get more done, but we also get more satisfaction from the work that is done.

Working with a "sense of urgency" doesn't mean working more hours. It means getting more done in those hours. It means working with deep concentration because there is an urgency to get things done.

Asynchronous communication

In an office environment, you can have an in-person chat with your team members anytime. This strategy doesn't work in a remote environment. We can't ask co-workers to jump on a Zoom call for every small thing. It would be exhausting and the logistics would take up a lot of time.

So, how do we get answers to our questions? Asynchronous communication is the answer.

Let's say I have a small question about a billing feature I'm working on. This is not a pressing matter at the moment. If I get an answer to this question 4 hours late, then it's ok. In that case, I won't ping my co-worker to hop on a Zoom call. I'll make a video recording of my question using NeetoRecord for my team member.

My team member will look at the message at their convenience and will reply accordingly. My team member can respond by posting a message or making a video and posting that video for me.

We believe this change in behavior alone will go a long way toward making "remote work" a success.

Maximize uninterrupted time

Being constantly interrupted is terrible for getting high-quality work done. We cannot stop the work and resume work anytime we want. When we are doing creative work, setting up the mind in the proper work zone and understanding the context of the problem itself takes quite some time. Whether you are writing code, writing a blog, performing QA or doing UI/UX work, we can do quality work if and only if we have uninterrupted time for a long stretch of time.

There are many ways to spend time. One can spend 60 minutes in one of the two ways. No disturbance for 60 minutes. Six interruptions in 60 minutes. If a person is interrupted six times in 60 minutes because of the pings from Whatsapp, Slack, imessages, email notifications, GitHub notifications then on an average, that person has only 10 minutes of uninterrupted time. That's too little to get any quality work done.

Nothing gets done when we are constantly interrupted. The Worst part is that these interruptions are disguised as work itself. A ping on Slack, an email notification and a ping from GitHub seem like work. However, these interruptions do not let us do "focused work". To get work done, we need to have a long stretch of uninterrupted time for ourselves.

So, how do we reconcile these two needs? A need to have "a long stretch of uninterrupted time," and then there is a need to "answer the questions others are asking".

Asynchronous work and long stretches of uninterrupted time strike the right balance. We focus on getting work done, and then, after an hour or so, we need a break. For some, it could be a few hours before they need the break.

When we are out of our "no interruption time zone," that's a good time to check Slack, email etc. The main point is that it is up to us to decide if we want to check Slack or if we want to do work. When this choice is taken away then that's an interruption. I didn't want to be interrupted in the middle of my work but I had no choice in the matter. Those types of interruptions are really bad for work and those types of interruptions should be minimized.

Handling Slack interruptions

At BigBinary, we use Slack. However, we use it a bit differently. One of the common problem people run into with Slack is that there are too many notifications.

If someone is using @channel, @everyone or sending DM messages, these notifications will appear on your laptop and mobile. We call these types of notifications iping. Here "i" stands for "interruption".

We call them iping because these messages will appear without regard for your actions. In other words, these messages scream, "I don't care what you are doing; pay attention to this message". Typically, people get so many ipings that they need to put their notifications on snooze.

Here, part of the problem is how Slack has designed communication. When I receive an email, whether I want to get interrupted or not is under my control. Slack takes this control away. If anyone sends a message to me in Slack, then by default it's a DM, and that's an interruption. That's the biggest flaw of Slack.

We overcame this issue by altogether banning DM. For each person, we communicate we create private channels. In those channels, we can post messages and the other person can read the message as and when they get time. This is how we overcame the interruption issue in Slack.

Flexible Timing

At BigBinary, people are free to work when they are most productive. Some folks start work early in the day, and some start late at night. Some constraints do apply. You can't work at a time, which would make it difficult to have a call with you. We provide 3/4 hours of overlap with our clients, so please consider your flexible timing.

Work-life balance

We believe that life is bigger than work. We work so that we can have a good life. We all are much more than what we bring to work. We are all part of our society, culture and surroundings and want you to be engaged with your community. Work should not be all life-consuming.

BigBinary is not a family

These days, companies are falling over each other to claim they are part of your family. Not at BigBinary. We are very clear about who we are. If we work together, then we are colleagues. Some of your colleagues will participate in your family function, and some won’t. And that’s OK. BigBinary is not a family. We are supporters of the family.

No micro-management

At BigBinary, we don’t have any managers. Here, no one’s job is just to manage people. We don’t believe in that. We believe that upon being given a responsibility, most folks rise to the challenge and do the right thing.

No monitoring software

BigBinary doesn't use any monitoring software, and we don't work with any client that forces us to use monitoring software.

Handling conflicts

When we work in a team, then conflicts are bound to happen. In a way, conflicts are desirable. If there is no conflict ever and everyone agrees with everyone on everything then that means people are not being sincere and not forthcoming with their ideas.

We don't need to optimize to avoid conflict. The key here is to ensure that the conflict related to work, design, and engineering does not cross over and become a personal conflict. Don't do a personal attack on the other person just because that person pointed out design flaws. We need to handle conflicts professionally and never let them cause any disharmony at a personal level.

The goal should be that at the end of the meeting, even if you disagree with someone, you are impressed by how cogently, thoughtfully and respectfully the other party presented their point of view.

Raising the bar

BigBinary has many engineers, and the average of those engineers is called the "bar". Every new person joining BigBinary should raise the bar. That's possible only if we keep hiring folks who are better than the average.

This is why most people are rejected at BigBinary. We don't want to compromise on our standards, and we will only hire the folks who raise the bar.