Our mission is to accelerate progress in the medical device industry by
We do so while providing meaningful, flexible, and financially rewarding careers to our team.
This handbook describes how we develop great software while maintaining meaningful, flexible, and financially rewarding careers. We wrote it for a few different audiences.
This handbook is hosted in a git repository. If you have a question that you wish the handbook answered, let us know. Please make a suggestion in #general if you’re a team member, or email us. Team members can also submit pull requests with proposed changes.
Please note that links to the GitHub repository, Slack, and Google Drive are only accessible to Innolitics employees.
Our values guide our work. They are a starting point for conversation, although we recognize they can be in tension with one another. Our company values are to:
We suspect most of these values are not controversial. Still, if you disagree with any of them, or if you would like us to add or modify any of them, please initiate a discussion! Here are a few examples of how our values have changed over time:
After we hired our first developer, we added “We love working with talented people, regardless of their age, ethnicity, sexual-orientation, or background”. A few months later we added “gender” to the list.
We added “We financially contribute to open source projects that we use” to the list because, as a profitable company that uses many such projects, we feel we should give back.
We clarified “We write automated tests to ensure our code works (and continues to work)” by rewriting it as “We write automated tests to guide our design and ensure our code continues working.” This is to highlight our belief that tests not only help catch bugs but also improve our designs.
Originally, one of our values read: “We don’t prescribe solutions to problems; we allow developers to independently discover their solutions first”. After some discussion, we changed this to: “We avoid prescribing solutions to problems upfront; instead we prefer to let developers independently explore their ideas first.”
We did this because we realized that sometimes it’s too time consuming to let everyone to explore their solution—especially junior developers working on problems that have been solved many times already. Here, we believe it can make sense for the more experienced developer to prescribe a solution upfront. We prefer to have junior developers find their solution first because it’s educational and can lead to better solutions (perhaps a new technology was recently developed, or the junior developer comes up with a new approach).
This last example highlights that many situations we run into as developers aren’t black-and-white. Our values form a foundation for discussion, but are often in tension with one another. Another example of this tension can be seen between “We experiment with new technologies to know the best tool for the job” and “We use technologies with our client’s best interest in mind, even if said technologies are less appealing to us as developers.”
Most importantly, if you feel we aren’t following our values, say something! It’s essential that you say what you think. For example, several months after adding our commitment to contribute to open source software, we still hadn’t done so. Someone brought this up, and in response we set up our open source contribution page.
We love developing medical device software. Our work helps doctors diagnose and treat clinical patients and assists researchers in making breakthroughs in the lab. We believe that software has the potential to transform the medical device industry, and we’re excited to be front and center in this transformation.
Medical device software is a specialized field, so we don’t expect everyone who joins our team to have a strong background in it. Many of our projects have challenges that aren’t unique to the medical device industry. That being said, you do need to be interested in medical devices and have a desire to learn more to be a successful part of our software team.
Very occasionally we accept projects that are outside of the medical device domain if there is a strategic business reason to do so.
We’re a small team of fourteen full-time members as of October 2021. We plan on substantially growing the company over the next few years.
Working on a small team means we have relatively little structure and more personal responsibility. As an early member of our team, you’ll have the opportunity to grow with the company and influence how it develops.
We are a fully distributed company. We don’t have a central office, and most of our communication occurs in Slack, video calls, and email.
A fully distributed company encourages everyone to focus on their value-add instead of hours worked; value-add is more visible than extended hours in a distributed setting.
It’s more difficult to develop strong relationships with a distributed team because we can’t grab a beer after work or chat in person. There are a few ways we alleviate this. The first is via conversations on #random. Next are our 10x discussions about various medical device and programming topics. Finally, we have retreats once a year. More about these last two items in a bit.
Welcome to Innolitics!
On your first day, we will work to set up your various company accounts.
We try to get people involved on a client or internal project quickly. During your first month or so, you will spend about one day per week working through 10x lessons.
We work on projects of varying sizes. Our typical engagement lasts about a year, although we’ve been working with a few for several years. Typically, you’ll be assigned to a single project at a time.
Each project has a project lead who is ultimately responsible for its success. This person’s responsibilities include:
We usually have client progress meetings on Mondays, with additional meetings as necessary in any given week.
On Wednesdays from 2:30 – 5:00 PM CT we have 10x time (we choose Wednesdays so we can travel on Monday or Friday).
We don’t have a 10x time during the week of Thanksgiving or the Wednesday in between Christmas and New Years. Also, some weeks we’ll cancel 10x time if there is an impending deadline or a lot of people are on vacation. When this occurs everyone is expected to continue working on client projects.
For any given learning session, there’s a “10x Czar” who decides on the format and guides the discussion. Often we’ll discuss an article, video, or book chapter. Details about each 10x session are shared in the #learning channel before the call. Also, the video chat will be shared in the channel just before the meeting time.
We try to pick topics that are fun, interesting, and will make us better developers. You can see a list of our previous discussions here.
If we’re having a good discussion, we’ll often go 15 minutes or so past 5:00. If you have plans and need to duck out, but can’t get a word in to say so, just drop out of the call and leave a comment in Slack; everyone will understand.
When you join Innolitics, you will be given access to the Innolitics Library. It includes a variety of articles, standards, and books about medical device regulations, DICOM, and other topics.
In addition to 10x time, another great way to continue learning and growing is to write articles for our website. Although articles are written outside of working hours, we do provide bonuses for writing articles.
See this page for details about the process.
Meant for Innolitics employees only, we meet once each year to have some fun and get face time with one another. Each retreat usually begins Thursday afternoon and ends Saturday afternoon, with the destination usually changing. The company covers your travel, housing, and food. We discuss the dates and destinations in the #retreat channel to ensure the retreat does not conflict with anyone’s schedule. People often delay their flight back and make a long weekend or vacation out of the trip.
Unless there is a very good reason (and please let us know as soon as possible), everyone is expected to attend each retreat.
You can view (and upload) photos from previous company retreats and events here. Please do not share these photos on social media.
We usually work in a distributed environment. However, sometimes our client work also requires us to travel for kickoff or design meetings. Usually these sessions are short (just a few days), with such meetings being rare. We expect every team member to be able to travel from time to time within the US.
When you travel, keep receipts for food, transportation (e.g., flights, parking, Ubering to the airport), and accommodation expenses. We can’t reimburse you without receipts, so please be diligent in keeping them!
Please use your best judgment when purchasing food, flights, and hotels. Keep in mind your time is valuable. It’s worth spending an extra $150 to get a direct flight or to avoid having to fly out at an uncomfortably early time. Ask your manager doubt.
If you’re driving your own car, track how many miles you drive—ideally by taking a photo of your car’s odometer at the beginning and end of your trip. We use the mileage numbers to calculate the IRS standard mileage rates for reimbursements, which was $0.58/mile in 2019. Note that the standard mileage rates include the cost of gas, so please do not include fuel receipts.
If you care for a dependent (e.g., child, elderly person, person with a disability), and have to pay for care while you are on a company trip, we will reimburse up to $100 a day for the cost of care.
You must create an expense report to be reimbursed. We allow a few different ways to create these, as described below. Pick the option that works best for you. After submitting your report, expect to be reimbursed on the next payroll cycle. If you’re traveling and need to purchase a flight, send an expense report just for your flight and a second detailing all of your other travel expenses.
If you only have one or two receipts, email them directly to
firstname.lastname@example.org (note that you must use an Innolitics email address). If you have a lot of receipts, you may want to check out the free Expensify app, which can generate a nice PDF report of your receipts. Alternatively, fill out this spreadsheet and send it with your receipt images to
Part of our mission is to provide flexible working conditions for everyone on our team. This includes the flexibility to move without changing jobs.
If you move within the same state, please be sure to update your address in Gusto.
If you’re considering moving to another state, please discuss this with a partner at least two months in advance. Due to complicated labor laws and tax implications that vary by state, we can’t guarantee we can support every move. The chances are high that we can, and we’ll try hard to make it work one way or another, but the earlier you discuss your proposed move, the better.
One of the perks of working on a distributed team is enjoying a flexible work schedule. Because of this, sometimes we’ll take off during the week but then make it up over the weekend or in the evenings. Also, sometimes it’s convenient to work on a holiday and instead to take off another day. Some people like sleeping in really late and working in the evenings. Other people like working four 10-hour days instead of five 8-hour days.
While we value having a flexible work schedule, this doesn’t mean we can work anytime we wish.
Once again, although we value flexibility, we do require everyone to have a mostly distraction-free work space with fast internet. It is important to be able to take unscheduled calls with team members. This requirement is somewhat gray, so here are a few examples:
Many of our projects can be worked on using any operating system and using your computer of choice. However, some projects require specific operating systems (e.g., Windows), and others may even require us to work on a corporate laptop provided by their IT department and to follow their best practices. Other projects require some small medical equipment. In all cases we will purchase any required equipment, but be aware that your workspace might need space for an additional equipment.
Innolitics has mid-year and end-of-year reviews. NOTE: Our performance review process is in flux and will likely change soon.
When you join our team, we’ll set up a private Notion page, titled “Career Growth,” that is only visible to partners and you. This document will record notes from your reviews and any one-on-one meetings.
Reviews occur as follows:
A partner (usually the one you typically work with) will reach out on Slack and schedule a time to meet, a few days before the review.
At least one day before the review, write responses to these questions in your “Career Growth” document:
Prior to the review, the partner(s) will write responses to these questions in your “Career Growth” document:
During the review, you and the partner(s) will discuss:
At the end of the review, write important notes and action items together in the document.
We provide prompt feedback when there are performance shortfalls. Timely feedback ensures no one has to wonder if they are performing well, and problems can be addressed before they grow.
If your performance is insufficient for your position for a sustained period of time, such that you are in danger of losing your job due to the shortfall, you will be informed as soon as this becomes apparent. As part of this conversation, we will work with you to develop specific and measurable improvement goals and a realistic timeline for meeting them. We note that some performance shortfalls require a more subjective evaluation of improvement. In these cases, specific and measurable goals may not be possible, but we will be explicit about our expectations wherever possible.
Please read through our Coding Philosophy and Best Practices.
Our information security policy is on a separate page.
Email is best for non-urgent communication that requires a formal or well thought-out response.
Our preferred email signature is:
Our preferred email signature when communicating with possible sales leads is:
Helping SaMD Startups from Idea to Acquisition
Because we use Gmail, custom variations of your email can be made by prefixing an arbitrary string with a “+” character and inserting that before the “@” character. Incoming email to that address will be received along with the rest of your email where it can have filter rules applied for organization or workflow purposes. For example: email@example.com
Slack is best for most everyday communication. Here are some rules of thumb for its use:
You can set your Slack theme to Innolitics colors by copying and pasting:
slackbot chat channel!
In a distributed working environment, a Slack mention is the equivalent to walking over to someone’s desk and tapping on their shoulder. The impetus is on everyone to not overuse mentions as they can be disruptive. But when someone does mention you, you’re at your desk and not participating in a call, try to respond quickly! The best way to do so is to use Slack desktop notifications (and audible notifications, if necessary).
To avoid being inundated with notifications, we suggest configuring Slack preferences to only notify you about Direct messages, mentions & keywords. You can set this from your Slack preferences. This article has more details. If you have any channels where you want to be notified of all messages (e.g. a client’s channel), use the channel-specific notification preferences to turn them on for Every new message.
If you need a solid block of time free from interruptions to focus on a technical problem, we suggest setting your status to indicate as such. You might use the robot icon for this (e.g.,
/status :robot_face: head down coding).
We use Zoom for our most of our video calls; we use Slack as a backup.
If someone asks you if you want to jump on a call, by convention you should respond simply by starting the call.
If you schedule a Zoom call with a client, ask for a Zoom link (if this happens frequently, we can give you a Zoom account).
When on a video client call with a client, please follow some etiquette:
Quality technical work does not equal quality service.
While our clients care about the technical quality of our work, it’s often the level of service we provide that makes them enjoy working with us.
Clients really appreciate clear and prompt communication. Respond to their emails promptly during the business week, even if it’s only to say that you’ll respond in full as you’re able to do so. By promptly, we mean responding to clients is more important than nearly anything else you may be doing. It’s your responsibility to set up your email and Slack notifications so you’re able to do this.
Be sure to read client emails slowly and completely so you’re certain you address each of their questions and concerns. It’s easy to miss important details or comments after the end of a long quotation block. We strongly recommend rereading client emails twice to be sure you caught everything.
When asking questions of clients, first be sure there isn’t a simple way for you to answer each question on your own by asking another Innolitics team member or by searching Google. Our clients’ time is valuable.
Informal writing is sufficient for internal emails. But when emailing clients, please pay extra attention to your grammar and spelling. Never send any email without first rereading it. It’s all too easy to leave out a word here or there, or to use an incorrect word (e.g., affect when you mean effect). This website provides many common errors, some of which we see every day (e.g., it’s is a contraction meaning “it is,” whereas its is the possessive form of “it”). Such an error reflects poorly on the entire company; recipients may wonder about the diligence we take in working on their projects when they read anything from us that contains such mistakes.
We highly recommend using a tool such as Grammarly to double-check your writing. Let us know and we’ll set up an account for you to use.
Consider the tone of your outbound emails. Because no one can see your facial expression or body language, too often a given phrase—such as one that may possibly be interpreted as being harsh or condescending—might cause an undesired reaction from your recipient. This is why emoticons (a.k.a., emoji) were created; use them judiciously (but sparingly) to add clarity.
It’s usually best to include a time zone when indicating times. That said, assume that times are Central time (CT) in the absence of a specific time zone.
Do not specify standard or daylight time. Too many times someone might cite CST when daylight time is in effect. In that event CDT would be technically correct, but referring to the always-correct CT is adequate—recipients will know when daylight savings time is in effect. (Note that some places, such as Arizona, never adjust for daylight savings time. In relation to the rest of the US, part of the year the state is on Mountain time, the remainder it’s on Pacific time.)
Our business week starts on Monday and ends on Sunday. Week numbers follow the ISO8601 standard, which can be different from the Gregorian calendar. Keep these standards in mind when reporting billable hours.
To retain flexible work schedules, we do not have a morning “standup” unless a client requests one. Instead, we post our progress in the Slack #standup channel.
The frequency and level of detail included in your standup messages should reflect the project and team members you’re working with. If you’re tightly collaborating with several people, daily standups may be worthwhile. But if you’re the only person working on a project, a weekly update is more likely sufficient.
Please post updates at least once each week, as it’s worthwhile for everyone else on the team to be aware of your work. Even if nobody needs to know what you’re working on, writing some details about your work is worthwhile. Doing so increases opportunities for collaboration by informing everyone about what you’re working on, what you’re struggling with, and with which technologies you’re experienced.
If you’re working on more than one project at a time, please provide details about which projects you worked on during a given week or day. This will help project leads allocate time when billing our clients.
Please post standups more frequently if team members or your project lead request it.
A typical standup should include:
Paid time off (PTO) is handled using Gusto. PTO is used for vacation and sick time. If you’ve used all of your PTO for vacation and you get sick, it’s okay if you dip into negative PTO days temporarily.
Members typically receive two weeks of PTO during their first year, three weeks for year two and three, and four weeks per year thereafter.
Notify your project lead in advance when you want to take PTO, and be sure to request it in Gusto while providing as much notice as possible. If you request a day off for an appointment, but then that appointment is moved to another day, please update Gusto to reflect the new date. This is important because it affects how we handle client billing.
Most importantly, when you go on vacation we would love if you share photos or a short video in #vacation-pics 😜.
Our standard company holidays are:
If holidays fall on a weekend we usually observe them on the closest weekday. See the Gusto company calendar for the precise holiday schedule.
Everyone may exchange two standard holidays for holidays of their choice. These holidays are chosen during on-boarding, and are thus fixed. Note that our standard holiday schedule is what is shown in Gusto. Thus, you’ll need to adapt your schedule accordingly. You may also have your floating holiday listed here in the handbook:
We run payroll every two weeks using Gusto. The last payroll of the year includes any annual bonuses.
We bill most of our clients by the hour, so you’ll need to track your time if you’re on one of these projects. Some clients ask for fine-grained task descriptions while others only need the number of hours worked. Per a company survey, engineers on one project usually spend less than 15 minutes/week time tracking while people on a few projects may spend more.
We don’t require a particular time-tracking tool, but some of us like Toggl. It has several nice features, including an app with a shortcut for starting and stopping time-tracking.
Unless your project has a specific policy, any time that is spent for a client should be billed to that client.
Here are a few billable activities:
Here are few non-billable activities:
When in doubt, ask your manager.
Our work weeks go from Monday through Sunday, and week numbers follow the ISO 8601 convention. This means every 12th year or so there are 53 weeks in a year!
NOTE: This policy is in “beta” and may be changed.
Occasionally we will need to push and work extra hours to meet a deadline, but it is rare. On many projects it never happens, on others its a couple of times a year. These small pushes are an expected part of working at Innolitics.
Some of us may prefer to work longer weeks for a more extended period. For example, if you are a junior developer and want to get experience more quickly. We can’t always provide additional work. However, sometimes we have small client projects, internal projects, or simply an abundance of work on your current project. If you are working additional hours on such projects, we pay bonuses at 1.5x your equivalent hourly rate. Let us know if you are interested in working overtime, and we will keep you in mind as opportunities arise.
New hires may either opt to buy a new laptop when they join or to take an extra $1000 in equipment reimbursement when they join. Note that for Junior Engineers in particular we’ll usually require that you buy a MacBook Pro. Windows is difficult for us to support since most of us use macOS, and Linux has its own challenges. More senior engineers can use whatever type of computer they’re most productive on.
We’ll need receipts for one internet bill each year and for any reimbursable equipment expenses. If you have multiple providers, each less than $100, send receipts for both, and we’ll reimburse you up to the maximum.
The equipment expense reimbursement renews on January 1 each year. Unspent reimbursement rolls over to the next year. New employees receive full credit for the year in which they join but cannot receive reimbursement until they have been employed by Innolitics for at least 30 calendar days. The reimbursement program began in 2019. Should you leave Innolitics, you can keep the gear purchased using the equipment reimbursement.
We’ll reimburse the cost of learning material (e.g., books or courses).
We have a 401(k) plan that allows for traditional and Roth contributions. We provide an automatic 3% of your salary to the plan whether or not you choose to invest. Our 401(k) plan provider is Guideline, and it has many low-fee mutual funds available. You become eligible to contribute to the plan after six months of employment.
We offer health insurance to all full-time employees on our team. Our carrier is Blue Cross and Blue Shield of Texas, and we provide the following plans:
Innolitics will pay $1,196/year of the cost of health insurance, regardless of which plan you choose. If you opt out our company health insurance, we will provide a recurring reimbursement of an equivalent amount. The amount that we reimburse for health insurance will change from year to year, although we do not expect that it will change substantially.
Innolitics employees may contact Gusto’s Benefits Care team at firstname.lastname@example.org or (800) 683-8526 for questions about our insurance.
An aspect of our mission is to provide flexible careers for everyone on our team. We are tentatively offering the option for everyone to take unpaid sabbaticals. This benefit is tentative because we don’t yet know how this policy will work in practice.
Your manager will need to approve any sabbatical. Factors we will consider include:
If you’re considering taking a sabbatical, advise us as early as possible so we can better plan. As we better understand the implications of the policy, we’ll likely add more structure to it. There is also a chance we decide we have to remove it.
You’re entitled to take part-time leave if you’ve worked for Innolitics for a year or longer. During part-time leave you work half a normal workload; your compensation accrues at half its normal rate. On an annual basis, part-time leave is limited to one contiguous block of time ranging from two weeks to three months. To the degree possible, please communicate your part-time leave plans with your manager beforehand so we can adjust client workloads appropriately.
We offer up to two weeks of fully-paid leave to non-birthing parents (i.e., fathers and adoptive parents) and up to four weeks of fully-paid leave to birthing mothers. Parental leave is only available for full-time employees.
Depending on the project you’re on, you may be able to divide your time off into separate chunks or work part-time for twice as many weeks. Please discuss your plans with your manager beforehand.
Parental leave accrues linearly starting from when you join Innolitics or when you last returned from parental leave. Here are a few examples:
If you live somewhere that offers a government-sponsored paid family leave program, we’ll contribute the difference between what the plan offers and what we offer for as many weeks as you’re eligible through our plan. For example, if you’re eligible for two weeks as part of our parental leave but your state offers six weeks at 2/3 your salary, we’ll cover the additional 1/3 of your salary for the first two of the six weeks.
Each quarter we donate $500 to an open source project. We decide which project through discussions with everyone in the company. You can see previous projects we have donated to here.
We don’t have physical offices where we can hang labor law posters, so we store them online in a Google Drive folder. Those in the root folder are federal labor law posters. State- and city-specific documents are contained in subfolders. Please review the posters for your state; ask if you have any questions.
Severe weather or natural disasters may occasionally render it impossible for an employee to work (i.e. the employee lacks power at his or her home and surrounding area or it becomes impossible for an employee to work without putting him or herself in danger). We understand that sometimes these situations occur and are out of our control, therefore, Innolitics has established the following policy to address such issues.
In the event that a severe weather situation or natural disaster prevents an employee from working on a regularly scheduled workday, the employee will be required to use his or her accrued PTO time. In order to assist its employees during such troublesome times, Innolitics will credit employees with half the total PTO taken by an employee under this policy up to a total of one week of additional PTO per calendar year. For example, if an employee takes four days of PTO under this policy, Innolitics will credit the employee back two days of PTO, or if an employee takes three weeks of PTO under this policy, Innolitics will credit the employee up to one week of PTO.
For employees that do not have enough accrued PTO available to cover leave taken under this policy, the employee will accrue a negative PTO balance. Negative PTO balances will be replenished as the employee continues to work and earn PTO, however, if an employee resigns or is terminated prior to replenishing his or her negative PTO balance, the employee agrees to reimburse the company for the cost of the PTO advance and Innolitics reserves the right to withhold such amounts from any compensation owed to the employee.
This handbook is intended to provide a general overview of Innolitics’ policies and procedures. Nothing contained within it is to be interpreted as a contract, whether expressed or implied.
We may revise, suspend, revoke, terminate, change, or remove any of the policies or procedures of the company, whether outlined in this handbook or elsewhere, in whole or in part, with or without notice at any time, and at Innolitics’ sole discretion.