fleet/handbook/business-operations
2023-02-20 18:21:16 -06:00
..
ceo-handbook.md Update ceo-handbook.md (#9707) 2023-02-06 13:35:08 -07:00
README.md add year prefix for temp channels (#9965) 2023-02-20 18:21:16 -06:00
security-policies.md Handbook: security migration to bizops (#9450) 2023-01-23 10:17:11 -07:00
security.md handbook: security account recovery process update (#9804) 2023-02-13 11:15:26 -07:00

Business Operations

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 being present and making small talk. Since we are all remote, it's easy to miss out on hallway chatter and human connections that happen in meatspace. Use this time together during the first minute to say "Hi!" Then you can jump into the topics to be discussed.
  • Turning on your camera allows for more complete and intuitive verbal and non-verbal communication. Feel free to leave your camera on or turn it off when joining meetings with new participants you might not be familiar with yet. Turn your camera on when you lead or cohost a meeting.
  • In an all-remote company, “face time” matters. Remember: even if someones 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" 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 in Google Calendar and block out any personal time/events/PTO, so that team members do not inadvertently schedule a time when you are not available. Many team members use the free tier of 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.

Modifying an event organized by someone else

To edit an event where someone else at Fleet is the organizer, you can first subscribe to their calendar in Google Calendar and then edit the event on their calendar. Your edits will automatically apply to all attendees.

This works because every Fleetie grants edit access to everyone else at Fleet as part of onboarding.

External meeting scheduling

When scheduling external meetings, provide external participants with a Calendly link to schedule with the relevant internal participants. If you need a Calendly account, reach out to @charlottechance via Slack.

Scheduling a Zoom meeting

We use the Zoom add-on for Google Calendar to schedule Zoom meetings when we create calendar events. To add a Zoom meeting to a calendar event, click the "Add video conferencing" dropdown and select "Zoom Meeting." Google Calendar will automatically add the Zoom meeting details and instructions to join the event. We configure our Zoom meetings to let participants join before the host starts the meeting. We do this to make sure meetings start on time, even if the host isn't there.

Key reviews

Every release cycle, each department leader prepares a key review deck and presents it to the CEO. In this deck, the department will highlight KPI metrics (numbers measuring everyday excellence) and progress of timebound goals for a particular quarter (OKRs). The information for creating this deck is located in the "🌈 Fleet" Google drive using "How to create key review"(internal doc).

Spending company money

As we continue to expand our company policies, we use GitLab's open expense policy 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 to do your job effectively.
  • Feel free to make purchases in the company's interest 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.

Attending conferences or company travel

When attending a conference or traveling for Fleet, please make a post in #help-brex on Slack with the following information:

  • The start and end dates for your trip.
  • The price of your flight (feel free to optimize a direct flight if there is one that is less than double the price of the cheapest non-direct flight).
  • The price of your hotel per night (dry cleaning is allowable if the stay is over 3 days).
  • The price of the admission fees if attending a conference.
  • $100 allowance per day for food and beverage (please use your personal credit card for movies, mini bars, and entertainment, except when entertaining guests who contribute actively in code/community on a quarterly basis, or who are Salesforce contacts on an open, qualified opportunity with a budget of at least $160k+ ΔARR).
  • Customer/Partner Facing Events:
    • Gala/Black Tie Events: Tuxedo or Gown Rental, $150-$225 USD per event is reimbursable. (The event must be customer specific and the invitation must state black tie only). The monthly limit on your Brex card will be increased temporarily as necessary to accommodate the increased spending associated with the conference. We highly recommend you order a physical Brex card if you do not have one before attending the conference.

Non-travel purchases that exceed a Brex cardholder's limit

For non-travel purchases that would require an increase in the Brex cardholder's limit, please make a post in #g-business-opeartions) on Slack with the following information:

  • The nature of the purchase (i.e. SaaS subscription and what it's used for)
  • The cost of the purchase and whether it is a fixed or variable (i.e. use-based) cost.
  • Whether it is a one time purchase or a recurring purchase and at what frequency the purchase will re-occur (annually, monthly, etc.)
  • If there are more ideal options to pay for the purchase (i.e. bill.com, the Fleet AP Brex card, etc.) that method will be used instead.
  • In general, recurring purchases such as subscription services that will continually stretch the spend limit on a cardholder's Brex card should be paid through other means.
  • For one time purchases where payment via credit card is the most convenient then the card limit will be temporarily increased to accomodate the purchase.

Reimbursements

We provide all of our team members with Brex cards for making purchases for the company. Fleet will reimburse team members who pay for work-related expenses with their personal funds. Team members can request reimbursement through Gusto if they're in the US or Pilot if they are an international team member. When submitting an expense report, team members need to provide the receipt and a description of the expense. Operations will review the expense and reach out to the team member if they have any questions. The reimbursement will be added to the team member's next payroll when an expense is approved.

Pilot handles reimbursements differently depending on if the international team member is classified as an employee or a contractor. If the reimbursement is for a contractor, Operations will need to add the expense reimbursement to an upcoming recurring payment or schedule the reimbursement as an off-cycle payment. If the reimbursement is for an employee, no other action is needed; Pilot will add the reimbursement to the team member's next payroll.

Benefits

Coworking

Your Brex card may be used for up to $500 USD per month in coworking costs. Please get prior approval from your manager. Once approved, get started by reaching out to Charlie Chance via direct message in Slack.

Paid time off

What matters most is your results, which are driven by your focus, your availability to collaborate, and the time and consideration you put into your work. Fleet offers all team members unlimited time off. Whether you're sick, you want to take a trip, you are eager for some time to relax, or you need to get some chores done around the house, any reason is a good reason. For team members working in jurisdictions that require certain mandatory sick leave or PTO policies, Fleet complies to the extent required by law.

Taking time off

When you take any time off, you should follow this process:

  • Let your manager and team know as soon as possible (i.e., post a message in your team's Slack channel with when and how long).
  • Find someone to cover anything that needs covering while you're out and communicate what they need to take over the responsibilities as well as who to refer to for help (e.g., meetings, planned tasks, unfinished business, important Slack/email threads, anything where someone might be depending on you).
  • Mark an all-day "Out of office" event in Google Calendar for the day(s) you're taking off. If you cant complete the above because you need to take the day off quickly due to an emergency, let your manager know and they will help you complete the handoff. If you ever want to take a day off, and the only thing stopping you is internal (Fleetie-only) meetings, dont stress. Consider, “Is this a meeting that I can reschedule to another day, or is this a meeting that can go on without me and not interfere with the companys plans?” Talk to your manager if youre unsure, but it is perfectly OK to reschedule internal meetings that can wait so that you can take a day off. This process is the same for any days you take off, whether it's a holiday or you just need a break.

Holidays

At Fleet, we have team members with various employment classifications in many different countries worldwide. Fleet is a US company, but we think you should choose the days you want to work and what days you are on holiday, rather than being locked into any particular nation or culture's expectation about when to take time off. When a team member joins Fleet, they pick one of the following holiday schedules:

  • Traditional: This is based on the country where you work. Non-US team members should let their managers know the dates of national holidays. Or
  • Freestyle: You have no set schedule and start with no holidays. Then you add the days that are holidays to you. Either way, it's up to you to make sure that your responsibilities are covered, and that your team knows you're out of the office.

New parent leave

Fleet gives new parents six weeks of paid leave. After six weeks, if you don't feel ready to return yet, we'll set up a quick call to discuss and work together to come up with a plan to help you return to work gradually or when you're ready.

Relocating

When Fleeties relocate there are vendors that need to be notified of the change.

Team member directions:

Performance feedback

At Fleet, performance feedback is a continuous process. We give feedback (particularly negative) as soon as possible. Most feedback will happen during 1:1 meetings, if not sooner.

Compensation changes

Fleet's founders evaluate and update compensation decisions yearly, shortly after the anniversary of a team member's start date.

CEO handbook

The CEO handbook details processes specific to Mike McNeil, CEO of Fleet.

Open positions

Please see handbook/company#open-positions for a list of open job postings at Fleet.

Interested in joining the team at Fleet, or know someone who might be? The company handbook page is a short read with more information about the company, including our vision, values, and history.

Team member onboarding

Training

It's important that every team member at Fleet takes the time to get fully trained and onboarded. When a new team member joins Fleet, we create an onboarding issue for them in the fleetdm/confidential repo using this issue template. We want to make sure that the new team member will be able to complete every task in their issue. To make sure the new team member is successful in their onboarding, we customize their issue by commenting on any tasks they won't need to complete. We believe in taking onboarding and training seriously and that the onboarding template is an essential source of truth and good use of time for every single new hire. If managers see a step that they don't feel is necessary, they should make a pull request to the onboarding template.

Expectations during onboarding:

  • Onboarding time (all checkboxes checked) is a KPI for the business operations team. Our goal is 14 days or less.
  • The first 3 weekdays (excluding days off) for every new team member at Fleet is reserved for completing onboarding tasks from the checkboxes in their onboarding issue. New team members should not work on anything else during this time, whether or not other tasks are stacking up or assigned. It is OK, expected, and appreciated for new team members to remind their manager and colleagues of this important responsibility.
  • Even after the first 3 days, during the rest of their first 2 weeks, completing onboarding tasks on time is a new team member's highest priority.

Sightseeing tour

During their onboarding at Fleet, new team members are asked to schedule a sightseeing tour call with People operations. During this call, the new team member will participate in an interactive tour that includes:

  • GitHub issues: the living bloodstream of the company.
  • Kanban boards: the bulletin board of quests you can get and how you update status and let folks know things are done.
  • Google Calendar: the future.
  • Gmail: like any mailbox, full of junk mail, plus some important things, so it is important to check carefully.
  • Salesforce: the Rolodex.
  • Google Docs: the archives.
  • Slack:
    • The "office" (#g-, #general).
    • The walkie talkies (DMs).
    • The watering hole (#oooh-, #random, #news, #help-).

Contributor experience training

During their first week at Fleet, new team members are asked to schedule a contributor experience training call with People operations. During this call, the new team member will share their screen, and People operations will:

  • make sure emails will get seen and responded to quickly.
  • make sure Slack messages will get seen and responded to quickly.
  • make sure you know where your issues are tracked, which kanban board you use, and what the columns mean.
  • make sure you can succeed with submitting a PR with the GitHub web editor, modifying docs or handbook, and working with Markdown.
  • talk about Google calendar.
  • give you a quick tour of the Fleet Google drive folder.

Directly responsible individuals

Please read "Why direct responsibility?" to learn more about DRIs.

Levels of confidentiality

  • Public (share with anyone, anywhere in the world)
  • Confidential (share only with team members who've signed an NDA, consulting agreement, or employment agreement)
  • Classified (share only with founders of Fleet, peepops, and/or the people involved. e.g., US social security numbers during hiring)

Email relays

There are several special email addresses that automatically relay messages to the appropriate people at Fleet. Each email address meets a minimum response time ("Min RT"), expressed in business hours/days, and has a dedicated, directly responsible individual (DRI) who is responsible for reading and replying to emails sent to that address. You can see a list of those email addresses in "Contacting Fleet" (private Google doc).

GitHub labels

We use special characters to define different types of GitHub labels. By combining labels, we organize and categorize GitHub issues. This reduces the total number of labels required while maintaining an expressive labeling system. For example, instead of a label called platform-dev-backend, we use #platform :dev ~backend.

Special character Label type Examples
# Noun #platform, #interface, #agent
: Verb :dev, :research, :design
~ Adjective ~blocked, ~frontend, ~backend

Tools we use

There are a number of tools that are used throughout Fleet. Some of these tools are used company-wide, while others are department-specific. You can see a list of those tools in "Tools we use" (private Google doc).

Here is an overview of a few of the most important and generally-applicable tools we use at Fleet:

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 make sure everyone knows when they can get in touch with others.

Slack channel prefixes

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" or "group").
  • 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.
  • 2023-: for temporary channels (Note: specify the relevant year in four digits, like "YYYY-`)

Slack communications and best practices

In consideration of our team, Fleet avoids using global tags in channels (i.e. @here, @channel, etc). 1. What about polls? Good question, Fleeties are asked to post their poll in the channel and @mention the teammates they would like to hear from. 2. Why does this matter? Great question! The Fleet culture is pretty simple: think of others, and remember the company Values.

Zoom

We use Zoom for virtual meetings at Fleet, and it is important that every team member feels comfortable hosting, joining, and scheduling Zoom meetings. By default, Zoom settings are the same for all Fleet team members, but you can change your personal settings on your profile settings page. Settings that have a lock icon next to them have been locked by an administrator and cannot be changed. Zoom administrators can change settings for all team members on the account settings page or for individual accounts on the user management page.

Salesforce

We consider Salesforce to be our Rolodex for customer information. During the onboarding process, you may need to add a license for the new hire. Here are the steps we take:

  1. Go to “Your account.”
  2. View contracts -> pick current contract.
  3. Add the number of licenses.
  4. Sign DocuSign sent to the email.
  5. The order will be processed in ~30m.

Gong

Capturing video from meetings with customers, prospects, and community members outside the company is an important part of building world-class sales and customer success teams and is a widespread practice across the industry. At Fleet, we use Gong to capture Zoom meetings and share them company-wide. If a team member with a Gong license attends certain meetings, generally those with at least one person from outside of Fleet in attendance.

  • While some Fleeties may have a Gong seat that is necessary in their work, the typical use case at Fleet is for employees on the company's sales, customer success, or customer support teams.
  • You should be notified anytime you join a recorded call with an audio message announcing "this meeting is being recorded" or "recording in progress." To stop a recording, the host of the call can press "Stop."
  • If the call has external participants and is recorded, this call is stored in Gong for future use. To access a recording saved in Gong, visit app.gong.io and sign in with SSO.
  • Everyone at Fleet has access, whether they have a Gong seat or not, and you can explore and search through any uploaded call transcripts unless someone marks them as private (though the best practice would be not to record any calls you don't want to be captured). If you ever make a mistake and need to delete something, you can delete the video in Gong or reach out to Nathan Holliday or Mike McNeil for help. They will delete it immediately without watching the video.
  • Note that any recording stopped within 60 seconds of the start of the recording is not saved in Gong, and there will be no saved record of it.

Most folks at Fleet should see no difference in their meetings if they aren't interfacing with external parties. Our goal in using Gong and recording calls is to capture insights from sales, customer, and community meetings and improve how we position and sell our product. We never intend to make anyone uncomfortable, and we hope you reach out to our DRI for Gong, Nathan Holliday, or Mike McNeil if you have questions or concerns.

Troubleshooting Gong:

  • In order to use Gong, the Zoom call must be hosted by someone with a Fleet email address.
    • You cannot use Gong to record calls hosted by external parties.
  • Cloud recording in Zoom has to be turned on and unlocked company wide for Gong to function properly, because of this, there is a chance that some Gong recordings may still save in Zoom's cloud storage even if they aren't uploaded into Gong.
    • To counter this, Nathan Holliday will periodically delete all recordings found in Zoom's storage without viewing them.
  • For those with a Gong seat or scheduling a call with someone in attendance that has a Gong seat who does not wish for their Zoom call with an external party to record:
    • A complete list can be found here.
      • 1 on 1, 1:1, confidential, interview, internal and no shadows are some commonly used words that will disable Gong.
    • If you need words added to the list of exlusionary words, please reach out to Nathan Holliday.
  • We have excluded anyone with an email domain from @cooley.com or @pilot.com from Gong's recording feature. These are professional services firms working with Fleet on internal matters, and calls with them are considered internal.

If you need help using Gong, please check out Gong Academy at https://academy.gong.io/.

Zapier and DocuSign

We use Zapier to automate how completed DocuSign envelopes are formatted and stored. This process ensures we store signed documents in the correct folder and that filenames are formatted consistently. When the final signature is added to an envelope in DocuSign, it is marked as completed and sent to Zapier, where it goes through these steps:

  1. Zapier sends the following information about the DocuSign envelope to our Hydroplane webhook:
    • emailSubject - The subject of the envelope sent by DocuSign. Our DocuSign templates are configured to format the email subject as [type of document] for [signer's name].
    • emailCsv - A comma-separated list of signers' email addresses.
  2. The Hydroplane webhook matches the document type to the correct Google Drive folder, orders the list of signers, creates a timestamp, and sends that data back to Zapier as
    • destinationFolderID - The slug for the Google Drive folder where we store this type of document.
    • emailCsv - A sorted list of signers' email addresses.
    • date - The date the document was completed in DocuSign, formatted YYYY-MM-DD.
  3. Zapier uses this information to upload the file to the matched Google Drive folder, with the filename formatted as [date] - [emailSubject] - [emailCvs].PDF.
  4. Once the file is uploaded, Zapier uses the Slack integration to post in the #peepops channel with the message:
    Now complete with all signatures:
       [email subject]
       link: drive.google.com/[destinationFolderID]
    

Hiring

Creating a new position

Every new position being created goes through this process before interviewing, accepting applicants, or extending offers.

  1. Add the proposed position to "Fleeties" as a new row, with a blank start date. Be sure to include job title, manager, and department.
  2. Add a job description to the "Roles." Include only "Responsibilities" and "Experience." (You will insert these into the existing job description template.)
  3. Create a private "#hiring-xxxxxx-2022" Slack channel (where "xxxxxx" is the job title) and invite the CEO (Mike McNeil) and People Operations (Charlie Chance).
  • People Ops is the DRI for all #hiring-xxxxx-2022 Slack channels.
  1. In that channel, post a message proposing the position:
  • At-mention CEO (@mikermcneil) and Charlie (@charlie).
  • Include a link to the job description in "Roles."
  • Include a link to the Fleeties document.
  1. People Ops will:
  • Confirm the "Roles" document has the job description, consisting only of "Responsibilities" and "Experience," and that both look accurate, grammatically correct, and otherwise ready to post in a public job description.
  • Confirm the "Fleeties" document has a manager, job title, and department, and that the start date is not entered yet (so we can tell the position is proposed but not planned, yet).
  • Using Pave, determine an anticipated salary and equity range, then add that research to "Compensation decisions" as a new heading.
  • Share a direct link to the new heading in "Compensation decisions" with the CEO.
  1. The CEO will then:
  • Determine whether this fits into the budget and equity plan.
  • Decide whether Fleet will open this position at this time.
  • Set tentative compensation in the budget and equity plan.
  • Set a tentative start date in the Fleeties doc to indicate this position is now part of the hiring plan.
  • Reply in the #hiring-xxxxx-2022 Slack channel, at-mentioning the original proposer, to let them know the new position is approved. After getting CEO approval, create a position in Breezy.

Creating a new position in Breezy

Review Breezy positions video on how to post a job on fleetdm.com/apply using Breezy. Collect candidate feedback from the team and manage the hiring process.

Breezy is being replaced at the end of Feb 2023. TODO: Update this section with new instructions for posting the job.

Recruiting

Fleet maintains a list of companies with whom Fleet has do-not-solicit terms that prevents us from making offers to employees of these companies. The list is in the Do Not Solicit tab of the BizOps spreadhseet.

Recruiting progress checkup

Weekly, Charlie looks in the Fleeties spreadsheet and reports on each open position:

  • Is the position in BreezyHR?
  • Is the position listed on fleetdm.com/jobs?
  • What is the total # applicants?
  • Total # interviews?

Interviewing at Fleet

We're glad you're interested in joining the team! Here are some of the things you can anticipate throughout this process:

  • We try to reply by email within one business day from the time when the application arrives.
  • You may receive a rejection email (Bummer, consider applying again in the future).
  • You may receive an invitation to "book with us." If you've been invited to "book with us," you'll have a Zoom meeting with the hiring team to discuss the next steps.

Hiring a new team member

Fleet is unable to hire team members in some countries. See this internal document for the list.

  1. Manager: At-mention People Operations in the #hiring-xxxxx-2022 channel and indicate that you would like for Fleet to make an offer to the candidate. Include the candidate's name, personal email address, the timeframe for their start date, and the country where they will be working.
  2. People Ops: People Operations will research compensation using Pave, making sure to adjust for the cost of living where the candidate will do the work. If People Ops is unsure of their findings, ask for help from the CEO. People Ops will then document this decision in the compensation decisions document for future reference.
  3. People Ops: After you have determined compensation, make copies of these two templates and customize them for this candidate:
  4. People Ops: Next, prepare the informal offer email. Post in the #g-people Slack channel and at-mention the CEO for assistance with determining the number of shares. You'll then need to add the following information to the template:
    • Candidate's name and email address
    • Candidate's start date
    • Candidate's compensation
    • Candidate's manager (the person they report to)
    • Equity offered to the candidate (specify the number of shares, and highlight it with a link to the candidate's exit scenarios spreadsheet)
    • Benefits (determined by the candidate's location)
  5. People Ops: Prepare the exit scenarios spreadsheet. Enter the number of shares 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.

  6. People Ops: Once both documents are complete, share the offer email draft, exit scenarios copy, and a link to the compensation decision with the CEO for approval by mentioning @mikermcneil in #g-people.
  7. CEO: Confirm:
  • The compensation decision has been documented sufficiently and adjusted for the cost of living.
  • The equity plan and budget are up to date with the actual offer that is about to be sent.
  • The Fleeties doc now reflects the actual start date from the offer email, as well as the candidate's name, LinkedIn URL, and preferred pronoun.
  • It still makes business sense to make this offer by reviewing the budget and equity plan. The CEO will then reply in #g-people to indicate that the offer is approved.

Note: When hiring an international employee, Pilot.co recommends starting the hiring process a month before the new employee's start date.

  1. People Ops: After obtaining CEO approval, confirm everything is correct one more time, then mention the CEO or CTO, who will send the offer email.
  • The offer email is copied directly from Google Drive into Gmail before being sent to the candidate.
  • When sending the offer, the CEO or CTO will edit the permissions of the exit scenarios sheet so it is accessible to the candidate.
  • People Ops is cc'd on the offer email but will not participate in the email thread until after the offer is accepted.

Hiring a new consultant

The words "consultant" and "contractor" are used interchangably, where appropriate. Some Fleet team members are contractors and others are employees.

Consultant agreements are sent through DocuSign, using the "Consulting Agreement" template. To send a new consulting agreement, you'll need the new consultant's name, the term of the service, a summary of the services provided, and the consultant's fee. There are some defaults that we use for these agreements:

  • Term: one month
  • Services rendered: use this doc
  • Work will commence and complete by dates: Start date and end of term date
  • Fee: Get from the contractor
  • Hours: Default to 10 hr/week - 40 hr/week Then hit send! After all of the signatures are there, the completed document will automatically be uploaded to the appropriate Google Drive folder, and a Slack message will appear in the #g-people channel.

Steps after an offer is accepted

  1. Once an applicant accepts an offer in writing, People Ops replies to the candidate.
  2. People Ops creates a hiring issue for the new team member in the fleetdm/confidential repo. People Ops will use this issue to keep track of the hiring tasks for the new team member.
  3. People Ops reaches out to the new team member via email to get any information they will need to prepare an agreement and add them to our payroll system.
    • US team members: People Ops will send the new team member's agreement through DocuSign. After signing and storing an in the correct Google Drive folder, People Ops will invite the new team member to onboard in Gusto. People Ops will reach out to them if the new team member is a W-2 employee and schedule an I-9 verification meeting.

    If we're hiring in a new state, we'll have to register for state taxes and unemployment. Gusto usually handles this process.

    • For international team members: People Ops enters the new team member's information into Pilot to kick off their hiring process. Pilot creates an agreement for the new team member, and People Ops reviews it to make sure everything looks correct. After People Ops confirms the information about the new hire, Pilot invites the new team member to enter the rest of their information and informs People Ops via email when a new Fleetie signs their agreement.
  4. As soon as we have a signed agreement with a new team member: People Ops reaches out to the new team member to provide them with a work device and a pair of YubiKeys. People Ops then requests a screenshot or link to the new Fleetie's preferred device and configuration. People Ops orders their device and Yubikeys using his Brex card and has them shipped directly to the new team member.

    If the new team member is in the US and requests a MacBook, It will be purchased using our Apple business account. For MacBooks purchased with this account, Apple will ship pre-configured and enrolled in our MDM.

  5. Two weeks before their first day at Fleet: People Ops creates a Google Workspace account for the new team member and invites them to join the FleetDM GitHub organization. When the new team member's work email is active, People Ops will send invitations to join Fleet's Slack and to create Fleet-managed 1Password and Zoom accounts with their Fleet email. People Ops sends the sign-in instructions to the new team member, accompanied by a brief explanation of the invitations sent.
  6. Before a new team member's first day: People Ops creates an onboarding issue in the fleetdm/confidential GitHub repo for the new team member. Before creating the issue, People Ops will go through it and comment on any steps that the new team member will not have to complete.

Purchasing a company-issued device

Fleet provides laptops for team members to use while working at Fleet. As soon as an offer is accepted, @charlottechance will reach out to the new team member to start this process. @charlottechance will work with the new team member to get their laptop purchased and shipped to them. Most of the team at Fleet uses 16" MacBook Pros, but team members are free to choose any laptop or operating system that works for them, as long as the price is within reason. When selecting your new laptop, we ask that you optimize your configuration to have a large hard drive and be available for delivery or pickup quickly, without waiting for customization. New equipment for projects are requested in #help-business-operations, please tag @charlottechance in your post. Include device requested (specs), reason for request, and timeline for when the device is needed. When a device has been purchased, it's added to the spreadsheet of company equipment where we keep track of devices and equipment, purchased by Fleet. When the team member receives their computer, they will complete the entry by adding a description, model, and serial number to the spreadsheet.

Celebrations

Weekly updates

We like to celebrate our achievements weekly in #general.

  • Every Thursday night, Charlie creates a thread in #help-manage requesting weekly updates, and managers will reply to the thread with their weekly updates.
  • Friday afternoons, Charlie updates the KPIs in the weekly updates spreadsheet, and Friday nights, Charlie will post the updates in #general. Weekly update principles
  • Each department's update is 20-40 words or less.
  • Erring on the side of referring to items that are completely done and/or mentioning news that is potentially very exciting to folks throughout the company.

Workiversaries

We're happy you've ventured a trip around the sun with Fleet. Let's celebrate!

  • Each Friday, if there are any upcoming workiversaries in the next seven days, Charlie posts about them in #g-people and tags @mikermcneil to let them know.
  • Founders discuss during their 1:1, reviewing performance and the latest compensation benchmarks for this person's role and geography.
  • If a compensation change is decided, Mike or Zach posts to Slack in #g-people with the change to compensation and effective date, if any.
  • Charlie makes sure that a copy of the compensation change is added to the ¶¶People Operations folder for record keeping.
  • Charlie updates the respective payroll platform (Gusto or Pilot) and update the Equity spreadsheet (internal doc).
  • If additional follow-up is required for the compensation change, Charlie works with the business operations team to take care of it.

Departures

Communicating departures

Although it's sad to see you go, Fleet understands that not everything is meant to be forever like open-source is. There are a few steps that we'll need to take to communicate to the team of your departure.

  1. Direct team: The CEO will reach out to the departing teammember's direct reports in 1:1 calls.
  2. Key stakeholders: The CEO will reach out to his direct reports about the departing teammember's departure.
  3. Announcement: Charlie will make an announcement during the "🌈 Weekly Update" post on Friday in the #general channel on Slack.

Onboarding a new advisor

Advisor agreements are sent through DocuSign, 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 you send the agreement, add a new row to the advisory board spreadsheet 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 you complete the agreement, make sure it is in the correct Google Drive folder, update the advisory board spreadsheet to show that the agreement has been signed, and ask the new advisor to add us on Linkedin, Crunchbase, and Angellist.

Security

At Fleet, we care about security. Here are a few resources about Fleet's security policies and best practices.

  1. Security policies
  2. Human resources security policy
  3. Account recovery process
  4. Personal mobile devices
  5. Hardware security keys
  6. More details about internal security processes at Fleet are located on the Security page.

Finance

Monthly accounting

Create a new issue for the current month and year named "Closing out YYYY-MM" using the monthly accounting issue template in GitHub and complete all of the tasks in the issue.

Payroll

Many of these processes are automated, but it's vital to check Gusto and Pilot manually for accuracy.

  • Salary employees are automated in Gusto and Pilot
  • Contractors are a manual process in Gusto and Pilot
Unique payrolls Action DRI
Commissions "Off-cycle" payroll Nathan
Sign-on bonus "Bonus" payroll Charlie
Performance bonus "Bonus" payroll Charlie
Ramp "Off-cycle" payroll Nathan
Accelerations "Off-cycle" payroll Nathan

Add the amount to be paid to the "Gross" line. For Fleet's US contractors, running payroll is a manual process. The steps for doing this are highlighted in this loom, TODO.

  1. Time tools
  2. Time tracking
  3. Review hours
  4. Adjust time frame to match current payroll period (the 27th through 26th of the month)
  5. Sync hours
  6. Run contractor payroll

Commission payroll

  • Update commission calculator with new revenue from any deals that are closed/won (have a subscription agreement signed by both parties) and have an effective start date within the previous month.
  • Contact Charlie Chance in Slack and let her know she can run the commission payroll. Use the off-cycle payroll option in Gusto. Be sure to classify the payment as "Commission" in the "other earnings" field and not the generic "Bonus."
  • Once commission payroll has been run, update the commission calculator to mark the commission as paid.

Updating a consultant's fee

  • Direct message Charlie with hourly rate change information.
  • Charlie will post the information to #g-people and tag the CEO for approval.
  • After CEO approval, Charlie will issue a new contractor agreement with the updated fee via DocuSign.

Annual reporting for capital credit line

  • Within 60 days of the end of the year:
    • Provide Silicon Valley Bank (SVB) with our balance sheet and profit and loss statement (P&L, sometimes called a cashflow statement) for the past twelve months.
    • Provide SVB with our annual operating budgets and projections (on a quarterly basis) for the coming year.
    • Deliver this as early as possible in case they have questions.

Quarterly Quickbooks Online (QBO) check

  • Check to make sure bookkeeping quirks are all accounted for and resolved or in progress toward resolution.
  • Check balance sheet and profit and loss statements (P&Ls) in QBO against the monthly workbooks in Google Drive.

Taxes and compliance

From time to time, you may get notices in the mail from the IRS and/or state agencies regarding your companys withholding and/or unemployment tax accounts. You can resolve many of these notices on your own by verifying and/or updating the settings in your Gusto account. If the notice is regarding an upcoming change to your deposit schedule or unemployment tax rate, Charlie will make the change in Gusto. Including:

  • Update your unemployment tax rate.
  • Update your federal deposit schedule.
  • Update your state deposit schedule. Important Agencies do not send notices to Gusto directly, so its important that you read and take action before any listed deadlines or effective dates of requested changes. Notices you should report to Gusto. If you can't resolve the notice on your own, are unsure what the notice is in reference to, or the tax notice has a missing payment or balance owed, follow the steps in the Report and upload a tax notice in Gusto. In Gusto, click How to review your notice to help you understand what kind of notice you received and what additional action you can take to help speed up the time it takes to resolve the issue. For more information about how Fleet and our accounting team work together, check out Fleet - who does what (private doc).

State quarterly payroll and tax filings

Every quarter, payroll and tax filings are due for each state. Gusto can handle these automatically if Third-party authorization (TPA) is enabled. Each state is unique and Gusto has a library of State registration and resources available to review. You will need to grant Third-party authorization (TPA) per state and this should be checked quarterly before the filing due dates to ensure that Gusto can file on time.

CorpNet state registration process

In CorpNet, select "place an order for an existing business" well need to have Foreign Registration and Payroll Tax Registration done.

  • You can have CorpNet do this by emailing the account rep "Subject: Fleet Device Management: State - Foreign Registration and Payroll Tax Registration" (this takes about two weeks).
  • You can do this between you and CorpNet by selecting "Foreign Qualification," placing the order and emailing the confirmation to the rep for Payroll registration (this is a short turnaround).
  • You can do this on your own by visiting the state's "Secretary of State" website and checking that the company name is available. To register online, you'll need the EIN, business address, information about the owners and their percentages, the first date of business, sales within the state, and the business type (usually get an email right away for approval ~24-48 hrs). For more information, check out Fleet - who does what.

Rituals

The following table lists the People group's rituals, frequency, and Directly Responsible Individual (DRI).

Ritual Frequency Description DRI
Weekly update reminder Weekly On Thursday, Charlie starts a thread in the #help-manage channel and asks managers to reply to the thread with a summary of what their team did in the past week. Charlie Chance
Weekly update Weekly On Friday, Charlie updates the KPIs in the "🌈 Weekly updates" spreadsheet and posts a single message recognizing each of the week's on-duty people for each of the on-call rotations, along with any hiring and departure announcements. Charlie posts the company update in the #general channel. Charlie Chance
AP invoice monitoring Daily Look for new accounts payable invoices and make sure that Fleet's suppliers are paid. Nathanael Holliday
Hours update Weekly Screenshots of contractor hours as shown in Gusto are sent via Slack to each contractor's manager with no further action necessary if everything appears normal. Charlie Chance
Prepare Mike and Sid's 1:1 doc Bi-weekly Run through the document preparation GitHub issue for Mike's call with Sid. Nathanael Holliday
Brex reconciliation Monthly Make sure all company-issued credit card transactions include memos. Nathanael Holliday
Monthly accounting Monthly Use the monthly accounting template in GitHub to go through the process of validating Fleet's books. Nathanael Holliday
Commission payroll Monthly Use the commission calculator to determine the commission payroll to be run in Gusto. Nathanael Holliday
US contractor payroll Monthly Sync contractor hours to payments in Gusto and run payroll for the month. Charlie Chance
550C update Annually File California 550C. Charlie Chance
Workiversaries Weekly/PRN People Operations posts in #g-people and tags @mikermcneil about any upcoming workiversaries. Charlie Chance
Investor and Advisor updates PRN People Operations tracks the last contact with investors and coordinates outreach with CEO. Charlie Chance
CEO inbox sweep Daily unless OOO Charlie does a morning sweep of the CEO's inbox to remove spam and grab action items. Charlie Chance
Recruiting progress checkup Weekly Charlie looks in the Fleeties spreadsheet and reports on each open position. Charlie Chance
Payroll Monthly before payroll runs Every month, Charlie audits the payroll platforms for accuracy. Charlie Chance
Calendar audit Daily Daily Charlie audits CEOs calendar and set notes for meetings. Charlie Chance
TPA verifications Quarterly Every quarter before tax filing due dates, Charlie audits state accounts to ensure TPA is set up or renewed. Charlie Chance
Revenue report Weekly At the start of every week, check the Salesforce reports for past due invoices, non-invoiced opportunities, and past due renewals. Report any findings to Mike Mcneil and Alex Mitchell in the #g-sales channel and follow up with customers as necessary to resolve. Nathanael Holliday
Capital credit reporting Annually Within 60 days of the new year, provide financial statements to SVB. Nathanael Holliday
QBO check Quarterly The first month after the previous quarter has closed, make sure that QBO is accurate compared to Fleet's records. Nathanael Holliday
Business Ops key review every three weeks Every release cycle a key review deck is prepared and presented. Nathanael Holliday
YubiKey adoption Monthly Track YubiKey adoption in Google workspace and follow up with those that aren't using it. Charlie Chance
MDM device enrollment Quarterly Provide export of MDM enrolled devices to the ops team. Luke Heath
Access revalidation Quarterly Review critical access groups to make sure they contain only relevant people. Charlie Chance
Security policy update Annually Update security policies and have them approved by the CEO. Nathanael Holliday
Security notifications check Daily Check Slack, Google, Vanta, and Fleet dogfood for security-related notifications. Nathanael Holliday
Changeset for onboarding issue template Quarterly pull up the changeset in the onboarding issue template and send out a link to the diff to all team members by posting in Slack's #general channel. Charlie Chance

Roadmap

https://github.com/orgs/fleetdm/projects/51/views/1

Slack channels

These groups maintain the following Slack channels:

Slack channel DRI
#g-business-operations Nathan Holliday
#help-onboarding Charlie Chance
#help-login Nathan Holliday
#help-manage Charlie Chance
#help-brex Nathan Holliday
#help-ceo Charlie Chance
#help-mission-control (¶¶) Charlie Chance
#g-people (¶¶) Charlie Chance
#help-open-core-ventures (¶¶) Mike McNeil