Lessons 🔗

Overview 🔗

Here we provide a number of training lessons, each consisting of:

  1. Purpose
  2. Learning Material
  3. Exercises
  4. Discussion
  5. Improvements and Completion Pull Request

The purpose section of the lesson explains its importance.

The learning material is usually external articles, book chapters, and videos. If you skim familiar material, do so judiciously.

The exercises are meant to strengthen your understanding and help you identify holes in your knowledge. Some are questions, others are tasks. Nobody will see your answers, but you must write your answers to them in a notebook before revealing the provided answers. If there is an exercise that doesn’t seem worthwhile, write a brief justification as to why. After completing the lessons, you will discuss the lesson with another Innolitics team member.

Finally, you will contribute improvements to the lesson via a pull request. As part of this pull request, you will also record in the article’s YAML front-matter, that you completed it.

Innolitics Culture 🔗

These lessons are meant especially for new members of the Innolitics team. We are excited to have you on board!

Our Mission, Values, and Handbook

Innolitics is mission driven. In this lesson we examine our mission, how we attempt to fulfill it, and our values. We familiarize you with our company handbook and its most relevant policies.

Contributing to Our Website

One of the best ways to contribute to Innolitics outside of client work—writing articles, improving our training program, or polishing our handbook—is to update our website. This lesson will introduce you to Jekyll, the static site generator that produces our website, and show you how you can contribute to website updates.

Improving at all Levels

We strive to empower everyone to improve themselves, their teams, and the company. In this lesson we discuss how.

Learning to Learn 🔗

These “meta” lessons focus on how to effectively learn new technologies.

Reading Protocols and Standards (WIP)

While not as precise as computer source code, protocols and standards can be a great resource from time to time. In this lesson, we spend some time learning about RFCs, how to read them, and then explore RFC 3986, Uniform Resource Identifier (URI): Generic Syntax, in detail.

Process 🔗

These lessons focus on the design and development processes we follow at Innolitics.

Figma, White-Boarding, and UI Design

In this lesson we discuss Figma, a collaborative drawing tool, and how we use it for UI design and diagrams.

User Centered Design: Writing Personas, Journey Mapping, and Conducting User Interviews (WIP)

This lesson will cover the foundations of user-centered design as it applies to medical user interface design. User-centered design is the iterative design process focusing on the end-users experience. This lesson is inspired by usability experts in UX research, and medical device manufacturing. You will learn to apply usability techniques from each area of expertise into your work at Innolitics.

Information Security

In this lesson we guide you through our Information Security policies. These policies protect our client’s intellectual property and patient’s health information.

Requirements Gathering (WIP)

In this lesson we discuss requirements gathering within the context of medical device software.

Core Technologies 🔗

These lessons focus on the fundamentals of technologies we use frequently at Innolitics.

The Linux Command-Line (WIP)

This lesson provides an introduction to the Linux command-line.

Git and GitHub (WIP)

This lesson introduces Git, a popular version control system, and GitHub, a popular Git hosting platform.

HTML, the DOM, and Browsers (WIP)

This lesson introduces the core components involved in rendering a basic web page.

Programming 🔗

Intermediate Python: Dunder-Methods, Decorators, and Context Managers

In this lesson we learn about dunder methods, decorators, and context managers in Python. These tools, when used properly, can help us to write concise, readable, and expressive code when working with complex objects, higher-order functions, or scoped side-effects.


In this lesson, we provide some reading material for someone learning CSS.

Relational Databases (WIP)

In this lesson, we provide some reading material for someone learning relational databases for the first time.

JavaScript (WIP)

This lesson provides several resources for learning the web’s oft-maligned scripting language, JavaScript.

React (WIP)

This lesson curates resources for gaining basic familiarity with React.


This lesson is designed for experienced software developers who haven’t used MATLAB before.

Qt (WIP)

In this lesson, we provide some reading material for someone learning Qt.

Medical 🔗

DICOM Basics (WIP)

In this lesson, we provide an introduction to DICOM.

Introduction to HL7

This lesson will introduce you to the HL7v2 standard, which is used to exchange data between healthcare IT systems. After you have completed this lesson, you will be familiar with a few core concepts. You will also know where to look for more information.

Medical Device Software Regulations (WIP)

In this lesson we guide you through an introduction to regulations

Future Lessons 🔗

Learning - How to Read 🔗

Learning - Source Code 🔗

Learning - Man Pages 🔗

Writing - Removing Clutter 🔗

Writing - Comments, Commit Messages, and Documentation 🔗

Client Matters - Quality Work is not Quality Service 🔗

Client Matters - Requirements vs Specifications 🔗

Medical - DICOM Quirks 🔗

Medical - HL7 Quirks 🔗

Medical - Imaging Physics Overview 🔗

Medical - Image Processing Basics 🔗

Quality - Risk Analysis 🔗

Quality - Usability Engineering 🔗

Core Tech - Linux Fundamentals 🔗

Core Tech - Bash 🔗

Process - Agile 🔗

And Many More!