Working remotely as an engineer at Weave

Remote work became more normal in 2020. The coronavirus pandemic has forced many companies to adopt remote work. We have been working remotely for more than 2 years now. Instead of spending hours commuting to an office every day, planning chores for before or after work hours, and arranging alternative care for children and pets, people gained more flexibility and freedom in their daily lives. However, remote work is not an easy job. It requires a lot of self-discipline and motivation. It is easy to get distracted and lose focus. It is also easy to feel isolated and lonely. However, if you are able to overcome these challenges, remote work can be a great way to work.

This blog post will give you a glimpse of what it is like to work remotely as an engineer at Weave.

TeamDevX (Developer Experience)
Total number of people on the team8
Total number of people working remotely8
TimezonesMDT, IST

How our day starts/ends

Weave engineers are distributed across the U.S. and India. We have team members in many time zones, so it is important to be flexible and adjust our schedule according to the team. We have a daily 30-minute stand-up meeting at 9 am MDT or 8:30 pm IST. This meeting is a great method to catch up with the team and discuss what everyone is working on, what they are planning to work on, and if they need any help. For some, the day starts with team standup, however for others (developers working from India), the day ends with team standup. It’s a cycle that keeps repeating itself.

Working remotely can be a challenge when your peers are in different time zones. However, when you work asynchronously, you can plan your tasks according to your own schedule and come up with your concerns, questions, and ideas at any time.

Planning

Regular planning is important for any project, however it is essential when you are working remotely. We have a weekly planning/retrospective meeting on Monday 9 am MDT OR 8:30 pm IST for one hour. We start with any quick wins from the last cycle and then discuss the tasks for the next cycle. It is a great way to discuss and plan the tasks for the week, vet any new ideas, and share any feedback with the team.

Regular One on Ones(1:1s)

We have regular 1:1s with our managers, where we discuss our progress, blockers, feedback, ideas, goals, career growth opportunities, do code reviews, pair on projects, etc. 1:1 meetings give you the safety of always knowing where you stand based on constant feedback from your manager. It also creates a space for you to bring up things that are difficult to bring up during busy work days.

If you add up all the meeting times mentioned above, it comes to less than 6 hours a week. We prioritize focus time and having less meetings, so you have a lot of time to work on your tasks. The question is, how do you communicate when you are stuck, need help, or want to discuss something with your team? We use Slack for communication. We have different channels for different topics. We have a channel for each project, a channel for each team, a channel for each topic, etc. It is easy to find the right channel and discuss your doubts, questions, and ideas with your engineers across the organization.

Slack and Github are your best friends

Slack and GitHub are some of the most important tools we use, and we use them a lot. They provide a great way to communicate with your team and get things done. You can drop a message in the team channel or message your team member directly, and they will get back to you as they receive the message. Not everyone is available at the same time, however you can always find someone to help you.

Asking questions is not a sign of weakness. It is a sign of strength! It shows that you are willing to learn and grow as an engineer so, don’t hesitate to ask questions. Asking questions is an art as well. You shouldn’t message Hello and then wait for someone to reply, rather you should be specific about your doubts, questions and blockers. You should also mention what you have tried so far. It will help your team members to help you faster.

A quick huddle(Slack call) can save you tons of time. Sometimes you have to reach out to your team members to discuss something without any calendar invites, meetings or emails. You can directly call them through Slack and discuss your doubts or ideas. Utilising slack statuses is also a great way to communicate with your team. You can set your status to In a meeting, Out of office, Focus time, Breakfast/Lunch/Dinner, etc. It will help your team members know when they can reach you and when they can’t. It will also help them to plan their tasks accordingly. (Tip: to quickly set a status, use Command + Shift + Y on Mac and Control + Shift + Y on Windows.)

Communicating with Code - Pull Requests

We use GitHub for code reviews, code pairings, and code merges. We have a separate Slack channel for pull requests, where we solely focus on pull requests and code reviews. Reading code is not easy, however it is a great way to learn. You can learn a lot from your teammates code and through pull request discussions. Sometimes you will find a better way to solve a problem or write a piece of code. Sometimes you will find a bug in the code. So, don’t hesitate to review the code. It is the ultimate tool to becoming an awesome engineer.

What to do when you are stuck

Errors are part of software development. You will face a lot of errors, bugs, issues and doubts. But when working remotely, your teammates may not always be available at the time you have a questions.

  • Search Slack - Often the error you are facing has already been discussed in the team channel. You can get the solution from there.
  • Weave Docs - We have a lot of guides, knowledge base articles, style guide and meetings recordings stored in our self-made GitHub based internal documentation system. You can find the solution to your problem there.
  • GitHub - We use GitHub for code, documentation, code reviews, actions, etc. A GitHub search can potentially save your hours of googling.
  • Logs - Logs are an engineer’s best friend. It is a great way to find out what is happening in your code and why it is happening. Never stop yourself from reading logs.
  • Googling - You can find a lot of solutions to your problems on the internet. However, you should be specific about your problem and make sure that when you do find a solution that works, adapt it to fit your needs.

Sometimes, even after trying all the above methods, you are still stuck. It’s not that you are unable to solve the problem, it’s just that you are not aware of the solution. In that case, never hesitate to reach out to your team members, managers or drop a message in your team channel. They will definitely help you once they are available.

Managing expectations and trust

To successfully manage your expectations, you have to build trust between yourself, your peers and your leaders. This helps them to know that you will be doing your best even if you are in a different location or timezone. You have to be honest with yourself and your team about what you can and cannot do. One of the best suggestions you will receive to increase transparency is to turn on your camera. It is a great way to build trust, manage expectations and build a strong team culture.

Healthy Work-life Balance and Flexibility

Work-life balance is not a myth. The toughest part of maintaining a healthy work-life balance is knowing when to stop. You don’t get hints from your colleagues when you are working too much. You have to be aware of your own limits and set boundaries for yourself. There can be many problems if you don’t set boundaries for yourself. You will get burned out, stressed and anxious. Working remotely means you need to know how to manage your time. You can make the most from remote work by:

  • Working in your pajamas, shorts, or whatever you want.
  • Working from your bed, balcony, terrace, or garden.
  • Working from your favorite coffee shop or restaurant.
  • Setting up your own office at home.
  • Saving a lot of money on travel and food.
  • Giving more time to your family, friends, hobbies, etc.

There are a lot of things you can do when you work remotely and create your work-life balance.

Stay social and connected

Weave organizes regular office visits and fun events. Events like these allow us to join the events and meet our peers, managers, and leaders. There are other timezone meetups happening as well. Recently Weave India organized a meetup for all the developers working from India. There is always a way to stay social and connected with your peers. You can participate in various fun and meme-related channels in Slack. There are a lot of communities out there. Attending meetups, conferences, and hackathons in your timezone is another great way to connect with people outside your company.

Conclusion

Working remotely can be tough but with the company great vision and their core values can decide their people future and make people helps easier as Weave is always a People-First organization. Our engineers resonate with all of Weave’s core values significantly. These values are The Customer is everything, Do the right thing, Think creatively, Care More and Stay Hungry.