I'm Kollin Francis.

Senior Full-Stack Engineer at Impact.com.

I like TypeScript and React.

I dabble in Japanese.

work

Impact.com

Senior Full-Stack Engineer I  ·  May 2021 – Present

Senior Full-Stack Engineer I, June 2025 – Present · Full-Stack Engineer III, February 2024 – June 2025 · Full-Stack Engineer II, February 2023 – February 2024 · Full-Stack Engineer, May 2021 – February 2023

Part of the data visualization team, I work across our stack to develop features that allow our customers to view in depth analysis of their data through completely customizable and dynamic report building.

  • Modernized the Data Lab tool with a focus on developer experience and performance by integrating React 19, TypeScript, Redux Toolkit (RTK), Radix UI, dnd-kit, and Storybook; eliminated all critical dependency vulnerabilities through aggressive upgrade strategies
  • Built a framework-agnostic chart component library, adopted by 5+ internal teams. Enabling consistent, reusable, and accessible visualizations across Impact’s diverse front-end tech stacks
  • Led a greenfield internal project that empowered teams to define data models and generate customer-facing reports; scoped the tech stack, developed a proof of concept, designed UI mocks, and mentored engineers for successful delivery
  • Worked with GenAI squad to integrate with Data Lab querying technology to power performance reporting questions through Ask Impact AI chat bot
  • Improved bundle deployment by re-architecting the delivery pipeline to publish assets to a global Cloudflare CDN, significantly reducing load times for end users
  • Authored comprehensive Storybook stories for core UI components to streamline testing and reduce regression during development
  • Migrated Spring Boot services to use Spring Security more heavily and integrated Google Cloud Secret Manager for secure, scalable secret management
  • Facilitated technical knowledge-sharing sessions for full-stack engineers, covering advanced JavaScript topics including the event loop, the V8 engine, and usage of internal component libraries

CGI Inc

Associate Consultant  ·  January 2021 – May 2021

  • CGI acquired the professional services division of HMB and my responsibilities remained largely the same

HMB Inc

Associate Consultant  ·  June 2019 – January 2021

While working at HMB I worked with various technologies and clients.

ABB

  • Researched and implemented file storage using Azure blob storage
  • Implemented report document generation using OpenXml 2.5
  • Improved search algorithm to better rank search results
  • Designed database schema changes for part management application
  • Worked with React, TypeScript, C#, ASP.NET Core, SQL, Docker, and Kubernetes

ImproveIt! Home Remodeling

  • Developed a custom Salesforce solution that improved the client’s sales tracking system in both customization and performance. Wrote scripts to ensure new functionality was compatible with preexisting data as well as unit tests for all code written by the HMB team

HMB Inc

  • Developed an Azure Cloud Function to automate internal recruiting processes. Written in C#, this cloud function would automatically poll a 3rd party API and pull any new candidate information into the recruiting team’s SharePoint list

Mercer Inc

  • Upgraded a legacy application from PHP 5.3 to PHP 7.3 and converted all Perl code to PHP. Improved maintainability by implementing object-oriented design patterns and writing new documentation for all upgraded code. Entirely containerized using Docker

Miami University

Student Associate, IT Services  ·  2017 – 2019

  • Working in the Enterprise Operations department I came into contact with a variety of languages and services. On a daily basis I performed data center walkthroughs to check for abnormalities and worked with Puppet, Facter, and Ruby to satisfy the needs of managing the various servers the department controls

projects

AWS Discord Bot

A Discord bot that starts and stops an EC2 game server on demand. Deployed to a Raspberry Pi.

TypeScriptDocker

Developed a simple Discord bot to manage an AWS EC2 instance. The primary purpose is to host a game server, which the bot will stop or start based on user commands. Developed using TypeScript and deployed locally to a Raspberry Pi with Docker.

Brewed Awakening Website

Ecommerce site and admin portal for a local coffee shop, fully integrated with their Square account.

ReactReduxTypeScriptNode.jsMongoDBDocker

Worked with a local coffee shop to design and implement a web application to help expand their online presence. For easy management the application integrates entirely with their Square account. The front end consisted of a user-facing ecommerce application and an administrator portal. Both were developed using React, Redux, and TypeScript. The backend is a Node.js RESTful API. Basic information is stored in a MongoDB database hosted on MongoDB Atlas. Deployed using Docker to an AWS EC2 instance with NGINX acting as a reverse-proxy.

KanjiDraw

A WaniKani companion app for browsing kanji, vocab, and radicals. Built when no existing app felt right.

React NativeTypeScript

One of my hobbies is learning Japanese and one of the tools I use is WaniKani, a website focused on one of the Japanese writing systems, kanji. Given there is no official app and the unofficial apps always left something to be desired, I started work on developing my own. Still in early stages of development, KanjiDraw is written using React Native and TypeScript. Current functionality is limited to basic statistics around lessons/reviews and browsing the various kanji, vocab, and radicals that WaniKani has to offer.

Order Display System

Custom order ahead system for mobile coffee shop orders

PythonTypescript

Order Display System

I wrote an order display system for Brewed Awakening Vermilion to notify workers when new online orders were placed for local pickup. This system runs on a Raspberry Pi Zero that hosts a Node JS web server. I used the Express and Bootstrap frameworks to display the orders page. Orders are read by a Python script which passes the data to the server through a websocket which would then pass it along to the front end. I also took advantage of the onoff node module to manage buttons wired directly to the Raspberry Pi. This allowed for employees to interact with the system to remove orders when they have finished fulfilling them