# People ## Directly responsible individuals At Fleet we use the concept of directly responsible individuals (**DRI**s), a person who is singularly responsible for a given aspect of the open source project, the product, or the company. This person is responsible for accomplishing goals and making decisions about a particular aspect of Fleet. DRIs help us collaborate efficiently by knowing exactly who is responsible, and can make decisions about the work they're doing. | Aspect | DRI | | ----------------------------------------------------| ------------ | | Wireframes (Figma)| Noah Talerman | | How the product works | Noah Talerman | | fleetctl CLI interface (and other tools) | Tomás Touceda | | REST API interface design | Luke Heath | | [REST API docs](https://fleetdm.com/docs/using-fleet/rest-api) | Luke Heath | | Postman | Luke Heath | | Terraform | Ben Edwards | | Customer PoV deployments like acme.fleetdm.com | Ben Edwards | | dogfood.fleetdm.com | Ben Edwards | | Quality of core product UI | Luke Heath | | Quality of tickets after Noah's done with them | Luke Heath | | ["Escaped work"](https://docs.google.com/document/d/1vXL_WSUqASJWuNnQhUVrkudIeG4zlaiOCqJEa7xB2do/edit) | Luke Heath | | Customer Slack channels | Tony Gauda | | Customer renewals | Tony Gauda | | Quality of core product backend | Tomás Touceda | | Quality of fleetctl (and other tools) | Tomás Touceda | | Final cut of what goes into each release | Zach Wasserman | | When we cut a release, version numbers, and whether to release | Zach Wasserman | | Release notes | Noah Talerman | | Publishing release blog post, and promoting releases | Mike Thomas | | fleetdm.com | Mike Thomas | | Self-service Fleet Premium license dispenser | Mike Thomas | >You can read more about directly responsible individuals in [Gitlab's handbook](https://about.gitlab.com/handbook/people-group/directly-responsible-individuals/) ## Spending company money As we continue to expand our own company policies, we use [GitLab's open expense policy](https://about.gitlab.com/handbook/spending-company-money/) as a guide for company spending. In brief, this means that as a Fleet team member, you may: * Spend company money like it is your own money. * Be responsible for what you need to purchase or expense in order to do your job effectively. * Feel free to make purchases __in the interest of the company__ without asking for permission beforehand (when in doubt, do __inform__ your manager prior to purchase, or as soon as possible after the purchase). For more developed thoughts about __spending guidelines and limits__, please read [GitLab's open expense policy](https://about.gitlab.com/handbook/spending-company-money/). ## Taking time off Taking time off is essential to maintaining a healthy work-life balance. Fleet's unlimited vacation policy encourages team members to schedule time off to avoid burnout. When a team member takes time off at Fleet, they should create an "Out of office" (OOO) event in Google Calendar for the days they will be out. If you're taking time off, you should plan who will cover your responsibilities for those days. Make sure to take your scheduled meetings into consideration, especially those where you're the event organizer. Communicate with your manager and other team members to ensure they can cover those meetings and that any Zoom links will still work for attendees. ## Meetings * At Fleet, meetings start whether you're there or not. Nevertheless, being even a few minutes late can make a big difference and slow your meeting counterparts down. When in doubt, show up a couple of minutes early. * It's okay to spend the first minute or two of a meeting to be present and make small talk, if you want. Being all-remote, it's easy to miss out on hallway chatter and human connections that happen in [meatspace](https://www.dictionary.com/browse/meatspace). Why not use this time together during the first minute to say "hi"? Then you can jump in to the topics being discussed. * Turning on your camera allows for more complete and intuitive verbal and non-verbal communication. When joining meetings with new participants who you might not be familiar with yet, feel free to leave your camera on or to turn it off. When you lead or cohost a meeting, turn your camera on. * In an all-remote company, “face time” matters. Remember: even if someone’s calendar is open, they have other work to do. Limiting (or batching up) internal meetings can enable longer, uninterrupted stretches of deep work. ### Internal meeting scheduling Use the Google Calendar [find a meeting time](https://support.google.com/calendar/answer/37161?hl=en&co=GENIE.Platform%3DDesktop#zippy=%2Cfind-a-meeting-time) feature to coordinate meetings with Fleet team members. Enter the `@fleetdm.com` emails for each participant into the "Meet with..." box in Google Calendar and the calendar availability for each participant will appear in your view. Then, when you select a meeting time, those participants will automatically be invited and a video conference will be attached to the invite. Please prefer this strategy over negotiating meeting times via chat -- This can save a lot of communication overhead, especially when scheduling with multiple participants. It is important to [set your working hours](https://support.google.com/calendar/answer/7638168?hl=en&co=GENIE.Platform%3DDesktop) in Google Calendar, and block out any personal time/events/PTO so that team members do not inadvertently schedule time when you are not available. Many team members use the free tier of [reclaim.ai](https://reclaim.ai/) to synchronize personal event times (without event details) into their work calendars. It is also common practice to block out time for focused work. ### External meeting scheduling When scheduling external meetings, provide external participants with a [Calendly](https://calendly.com) link to schedule with the relevant internal participants. If you need a Calendly account, reach out to `@eashaw` via Slack. ## Slack At Fleet, we do not send internal emails to each other. Instead, we prefer to use Slack to communicate with other folks who work at Fleet. We use threads in Slack as much as possible. Threads help limit noise for other people following the channel and reduce notification overload. We configure our working hours in Slack to ensure everyone knows when they can get in touch with others. ### Slack channels We have specific channels for various topics, but we also have more general channels for the teams at Fleet. We use these prefixes to organize the Fleet Slack: * ***g-***: for team/group channels. *(Note: "g-" is short for "grupo")* * ***oooh-***: used to discuss and share interesting information about a topic. * ***help-***: for asking for help on specific topics. * ***at*** or ***fleet-at***: for customer channels. ## People Ops ### Performance feedback At Fleet, performance feedback is a continuous process. We give feedback (especially negative) as soon as possible. Most feedback will happen during 1:1 meetings, if not sooner. We evaluate and update compensation decisions yearly, shortly after the anniversary of a team members' start date. ### Hiring a new team member 1. Reach out to Mike and Zach and give them an opportunity to meet the candidate. 2. Research compensation using [Pave](https://www.pave.com), making sure to adjust for the cost of living where the candidate will do the work. *If you're unsure of your findings, ask for help from Mike.* 3. Share the compensation information you've gathered with Eric. Eric will confirm the information with Mike and document this decision in the [compensation decisions document](https://docs.google.com/document/d/1NQ-IjcOTbyFluCWqsFLMfP4SvnopoXDcX0civ-STS5c/edit) for future reference. 4. After compensation has been determined, create two documents for the candidate: - "Exit scenarios" spreadsheet - "Informal offer email" template. If you need these templates, reach out to Eric on Slack, and he will provide you links that automatically create copies. Change the name of the documents accordingly (e.g., "[candidate's name]'s copy of exit scenarios,") and link to the exit scenarios spreadsheet from the offer email. 5. Prepare the informal offer email. You'll need to add the following information to the template: - Candidate's name and email address - Candidate's start date - Candidate's compensation - Candidate's reporting manager - Equity offered to the candidate (make this information a link to the candidate's exit scenarios spreadsheet) - Benefits (determined by the candidate's location) 6. Prepare the exit scenarios spreadsheet. Enter the percentage of equity offered to the candidate, and the spreadsheet will update to reflect this. >**_Note:_** *Don't play with numbers in the exit scenarios spreadsheet. The revision history is visible to the candidate, and they might misunderstand.* 7. Once both documents are complete, share the offer email draft, exit scenarios copy, and a link to the compensation decision, with Eric for confirmation. 8. After Eric confirms that everything is correct, Mike or Zach will send the offer email. The offer email is copied directly from Google drive and sent to the candidate. When they send the offer, Mike or Zach will edit the permissions of the exit scenarios sheet and share with the candidate. >**_Note:_** *When hiring an international employee, Pilot.co recommends starting the hiring process a month before the new employee's start date.* ### Steps after an offer is accepted 1. Once an offer is accepted in writing, reply to the candidate, CCing Eric via his Fleet email address to introduce the candidate to him. 2. If the new team member is in the United States, Eric will reach out to them and get any information needed (typically the new team member's home address and phone number) and send them a consulting or employment agreement through [Docusign](https://www.docusign.com/). If the new team member is an international employee or contractor, Eric will start the hiring process in [Pilot](https://pilot.co/). >**_Note:_** *International contractor and employment agreements are handled by the Pilot.co when you start the hiring process.* 3. **For US employees/contractors** After an agreement is signed and stored in the correct Google Drive folder, Eric will start onboarding the new team member in [Gusto](https://www.gusto.com/). If the new team member is a W-2 employee, Eric will reach out to them and schedule an I-9 verification meeting. >**_Note:_** *If we're hiring in a new state, we'll have to register for state taxes and unemployment. This process can be handled by Gusto. Usually.* 4. Before their first day at Fleet, Eric will create a [Google Workspace account](https://admin.google.com/ac/users) for the new team member, add them to the [Fleet Github organization](https://github.com/fleetdm), create an onboarding issue in the [fleetdm/confidential](https://github.com/fleetdm/confidential/issues) Github repo, and invite them to join the Fleet Slack. If the new team member needs to purchase a work computer, Eric will set them up with a [Brex](https://dashboard.brex.com/team/invite-user) card. ### Onboarding a new advisor. Advisor agreements are sent through [DocuSign](https://www.docusign.com/), using the "Advisor Agreement" template. To send a new advisor agreement, you'll need the new advisor's name, and the number of shares they are offered. Once the agreement is sent, add a new row to the [advisory board spreadsheet](https://docs.google.com/spreadsheets/d/15knBE2-PrQ1Ad-QcIk0mxCN-xFsATKK9hcifqrm0qFQ/edit#gid=1803674483) and enter the new advisor's information. Use this spreadsheet to track the advisor's progress through the onboarding process. >**_Note:_** *Be sure to mark any columns that haven't been completed yet as "TODO"* When the agreement is completed, make sure it is in the correct Google Drive folder, and ask the new advisor to add us on [Linkedin](https://www.linkedin.com/company/71111416), [Crunchbase](https://www.crunchbase.com/organization/fleet-device-management) and [Angellist](https://angel.co/company/fleetdm).