Backend

Purpose

The Backend Team is responsible for Rocket.Chat's core development, being responsible for things like the REST and real-time APIs, login integrations such as OAuth, LDAP and etc, mobile and desktop notifications and so on.

Calls

We have some recurring calls to talk about our work:

  • Planning (Mondays 10am BRT)

    • We have a quick update in our progress and plan out the activities for the week

  • Retrospective (Every other Friday 10am BRT)

    • It happens once every two weeks, we go over our workflow for the last two weeks and identify what we did well, what didn't go so well, and define action items on how we can improve those points

Dailies

Our dailies are not synchronous; instead we fill out a doc in ClickUp. Some best practices when writing up your daily sync:

  • Describe how you progressed in the last day

    • This does not necessarily mean "code you've written" - it can be any type of progress:

      • an RFC you've drafted;

      • a flowchart you've sketched in your notebook;

      • new sub-tasks you've realised are going to be needed for you current task;

      • Anything, really!

    You should not say the tasks you're working on, but instead say what you've been doing to finish the task. A bit of context is important here, but not too much is required, as we should have discussed the task in detail in the planning previous to it;

  • Highlight any items that look like a blocker

    • This is really important - if you've identified anything that hasn't been brought to light during the planning, share it. If you got into some code you've found confusing, share it. If you don't feel confident in the approach you're following now, definitely share it. This way the team will be able to help you out and the blockers will be clear to everyone.

Team members should fill out the doc in ClickUp when they start working. At 10:30am (BRT) the full excerpt for the day will be shared in our internal channel in the Open server, at which time all members should review what others have written and start any applicable discussion.

Forum

There's an internal category in our forums. It's encouraged that everyone share ideas and problems there in form of discussion. It's the preferable way to communicate long discussions with your team. All discussions on this category are private.

Community

Everyone on the team is responsible for taking care of the community issues and questions. Everyone has the same responsibility and we value very much being clear and responsible to them. Our community is super important to the company.

Other Activities

  • You SHOULD check Rocket.Chat for announcements or to answer any pending questions when you start working and before you finish your shift at least. You are, of course, encouraged to engage in any conversation on your channels whenever you like. Please note you are not expected to be always active in chat. Everyone needs time to focus on the task at hand, this is just a rule of thumb so you don't miss out or leave anyone hanging/blocked.

  • You SHOULD push your code to the upstream before you finish your working hours. This way, if anything critical happens, someone else can take over the task you were working on if needed.