Communication
We prioritise clear, consistent, and intentional communication so that teams can stay aligned, make effective decisions, and collaborate smoothly, no matter where they are.
Tools
E-Mail communication should only be used for external communication, or when you need a written record of internal communication, e.g. topics like compensation, underperformance, or other formal decisions where clarity and traceability matter.
All e-mail for the company should be sent from your official company e-mail address. We use Google's Gmail for this.
Slack
Slack is our primary tool for internal communication.
Best Practices
- Appropriate Channels: When posting messages, please make sure you are posting in an appropriate channel (see some Useful Channels and their purposes below). This prevents over-notifying people that don't need to be made aware, and makes discoverability of conversations easier in the future.
- Threads: You should try to use threads in Slack where possible to save pollution (and over-notifying) the primary channels.
- Public over Private: Prefer public channels over direct messages. Public channels help everyone stay informed and make it easier for others to join or support the conversation.
Useful Channels
#afk: Things come up throughout the day that need your attention, that's fine, just let the wider team know if you're going to be away from keyboard (AFK) for any reasonable amount of time so that they know they can't get hold of your quickly if they need to.#announcements: This channel is used by senior leadership to communicate important company-wide updates.#daily-standup: When conducting our async Daily Standups, GeekBot will report everyone's standups into this channel.#thanks: A place to be appreciative of the help you recieve from your colleagues and the hard work they put in.
GitHub
We use GitHub for our project management operations. Any discussion and communication about a particular item of work should be conducted in that item's thread on GitHub directly. Communication in Slack channels or DMs can be lost. Using GitHub as a central source of conversation support collaboration and helps team members quickly get up to speed on new issues they may not have been involve with previously.
Company Announcements
In Slack we have an #announcements channel. This is used for important company-wide announcements. Whilst some announcements may be made in meetings, all announcements should then be shared here too so that everyone can get up-to-date in their own time if they have missed the news.
Meetings
Agenda
Each meeting should have an agenda. An agenda helps participants prepare and decide whether they need to attend. Any participant may add items to the agenda. Please prefix your item with your name or initials so it is clear who will introduce and lead that topic.
It is fine to add new items while the meeting is happening. Doing this can keep the discussion focused and help the group stay on track.
Note Taking
TBC
Daily Standups
We operate with asynchronous standups, meaning that everyone is responsible for reporting their standup status in the mornings but we have no fixed meeting/call on which status is shared.
For this, we use GeekBot, which provides a Bot in Slack that will ask you for status updates each morning. It has been configured to message each employee at 9am each morning asking for a "Daily Standup" status. Standups should be reported before 10:15 each day, it helps get everyone aligned and helps the development team and leadership keep an eye on what everyone is working on.
You will be prompted with the following questiions:
- Anything from yesterday's plan that is left over?
- What are you planning on working on today?
- Any Blockers?
- Anything else you would like to share?
When submitted, you can then view yours, and others, standup status' in #daily-standup channel.
Best Practices
- Mention colleagues that have items blocking you if appropriate
- Link to GitHub issues where possible, so that others can follow up and see the detail of what you're working on
Shortcuts
The following commands can be sent directly to the GeekBot App in Slack:
/geekbot report- Manually triggers the Daily Standup prompts, instead of waiting for the 9am auto-prompt
You can just edit messages you've already sent in order to update your standup report too.
1:1 Meetings
Each employee at ESPROFILER should have regular one-on-one meetings with their manager. For individual contributors, 1:1s should happen at least once a month. Depending on role, tenure, and current needs, a biweekly (every two weeks) or weekly cadence may be more appropriate and should be agreed upon by the manager and direct report.
The direct report owns the agenda. Use this time to talk about anything that helps you succeed, such as personal updates, challenges, feedback, or decisions you need support with.
Keep your agenda in a shared Google Doc. Both you and your manager should add items as they come to mind, instead of waiting until the day before. During the meeting, you can walk through the topics in whatever order is most useful.
A 1:1 should not turn into a status update meeting. Share status updates in GitHub issues, standups, or other async channels. Use your 1:1 to get alignment, talk through difficulties, or brainstorm solutions.
When preparing your agenda, you can reflect on questions like:
- What went well in the last few weeks?
- What did not go well?
- Which problems were difficult, and what would have made them easier?
- What important but not urgent tasks need attention?
- How did you receive feedback, and did that approach work for you?
- Where do you want to improve, and do you want help creating a plan?
- Include an “Action Items” section in your agenda to track follow-up tasks from the meeting. Add timelines when they are helpful.
Checking Availability
For internal meetings with colleagues, rather than always having to ask for their availability, you can check this via Google Calendar in one of two ways:
- When you setup a calendar invite, and assign the invitees, you will be shown when they are busy/available
- You can subscribe to colleagues/calendars and overlay them in your calendar view.
Subscribing to Calendars
- In Google Calendar click the "+" next to "Other Calendars" in the left-hand side menu, then click "Subscribe to calendar".
- Type in the e-mail of the person who's calendar you would like to subscribe to.
- This person's calendar will now be viewable in your calendar view, and can be toggled on/off in the "Other Calendars" list.
Asynchronous Communication
Even though ESPROFILER is runs a hybrid working practice with employees often working in-office, we operate with the best practices in place to support full remote/async working. We do this because it is easier to do in-person working with those practices, than it is to do async/remote working whilst having best practices align to requiring in-person contact.
Information should always be stored so it is easy to find later. Important information should live in places that are persistent and searchable.
Information should thus be stored in:
- The Handbook: Used for storing company policies and procedures.
- Google Drive: Should be used to store meeting notes (in Docs), financial planning (in Sheets), sales pitch decks (Slides), etc.
- GitHub: Items and discussion about a Work Item should happen in the work item.
Do not store information in:
- Slack DMs/Channels
Not Everything Needs a DM
It can be an easy trap to fall into, direct messaging a colleague asking them to take an action on something. Consider though, have they already been notified, does this require immediate action?
You should try to limit requests for action in a DM when you only need action taken as a priority. If it's urgent, call them.
Such examples include:
- Assigning someone as a Reviewer for a Merge Request: Ensure you've actually requested them as a reviewer on the MR, if so, they would have already been e-mailed/notified that's the case. No need to DM them too, unless it's urgent.

