Justin Osterholt

Software Engineering Manager, Full Stack Engineer

  • Hello đź‘‹, I'm Justin, a software engineering manager and full stack developer with 18+ years of experience developing web applications. I strive to find ideal customized solutions for enterprise problems.


    I lead and enable engineering teams. I work hands-on coding/designing, as well as offering guidance and coaching. I love collaboration, curiosity, and communication.


    I manage applications from infrastructure to code, including the build pipeline and testing. In my effort to build quality performant systems that scale, I use best-practice design patterns, object-oriented programming principles, and strive for well documented readable code.

  • Team Stats Dashboard

    2020 - PRESENT
    Description:
    The main focus of this dashboard was the burndown chart and breakout of tasks with effort points. This assisted in giving information on how a sprint was progressing. A secondary feature is a tab that displays the number of changes in a Github commit. This was used to detect potential instances where features needed to be broken up.
    Technologies: 
  • Web Infrastructure Updates

    2020 - PRESENT
    Description:
    In an effort to improve uptime and resilience, I've been leaning more heavily on load balancers an Amazon's CDN, Cloud Front. This has made it possible to do server maintenance with no downtime that would normally have interrupted services without.
    Technologies: 
  • Ignition Exchange Community Hub

    2019 - PRESENT
    Description:
    The Exchange is a place for integrators to share reusable Ignition resources (ex. components, projects, assets, etc.). Resources can be shared publicly, restricted to organization, or be private. Versioning is also supported, allowing users to download older versions if needed. This new product was revealed in a live demo in our annual community conference.
    Technical Description:
    This project was one of the more complex React applicatins I've developed and was extra challenging due to the tight time frame. Redux was utilized for app-level state management and RxJs was used to help relay global events to components.
    Technologies: 
    Roles: 
  • Docker/Fargate Integration Effort

    2019 - PRESENT
    Description:
    With a growing development team, we often run into a bottleneck with staging servers for testing and reviewing features. In addition, spinning up a new web servers into production takes a significant amount of time. Containerization is a solution that will address both of these problems. This effort has passed the first phase, using Docker in our local development environments.
    Technical Description:
    Container instances are managed with Docker Compose. For non-development environments, an additional NGINX container is used as a reverse-proxy to the web applications. To help avoid unnessary image builds, code and database data are mounted as a volumes and reside on the host.
    Technologies: 
    Roles: 
  • Inductive Automation

    2016 - PRESENT
    Description:
    Multi-purpose corporate website that serves as an entry point for Inductive Automation, Ignition products, services, and community. Some sections rely on external web services to obtain and record data.
    Technical Description:
    Over time there have been a series of projects that entail the fullstack, including modifying the database for new content, Python/Django coding for new pages and web services, and HTML/CSS coding for new pages and styling. This website is oriented to marketing, so appearance and responsiveness for tablet and mobile have been a focus.
    Technologies: 
    Roles: 
  • Inductive University 8.0 Revamp

    2019 - 2019
    Description:
    With the new major version release of 8.1, the IU learning platform was revamped with a simplified and cleaner look and feel. The database schema was also cleaned up and restructured to be streamlined, moving away from an inheritance pattern.
    Technologies: 
    Roles: 
  • React Integrator Search

    2016 - 2017
    Description:
    React based web app that allows users to search for integrators, filtering by account name, location proximity, and certification level. Interfaces with CRM and utilizes Google Maps and Geolocation apis.
    Technologies: 
    Roles: 
  • Module Showcase

    2016 - PRESENT
    Description:
    Search based web app that allows users to find third-party modules for the Ignition platform. Search includes text search and category filters, as well as sorting options.
    Technical Description:
    Uses React.js and Cerebral.js for client side functionality. All search, filtering, and sorting is executed client-side through the Cerebral.js framework. Django provides a restful interface to provide the module data and allows integrator application submissions.
    Technologies: 
  • Ignition Community Conference

    2016 - PRESENT
    Description:
    The Ignition Community Conference website allows users to purchase and manage tickets and workshops for the annual Ignition Community Conference event. Includes discount system for purchasing tickets early, additional tickets, and bulk purchases. Allows attendees to manage their profile information for the event.
    Technical Description:
    This was a pretty typical ecommerce solution allowing web users to securely order tickets and workshops online with varying quantities and pricing based on the date and quantity. Peak traffic was not pressing so a basic mySQL setup with Python/Django was sufficient. There were some challenging areas, such as syncing orders with the internal CRM. The primary issue was safely associating orders to existing accounts and contacts without compromising data integrity or generating duplicate account and contact records. Special checks on user generated data were put in place to achieve this, and tools were added to the CRM to merge any duplicates that were unable to be verified when the order was placed.
    Technologies: 
    Roles: 
  • Account.InductiveAutomation.com

    2014 - PRESENT
    Description:
    Centralized customer facing account system, a web application that ties all web/software products to a single sign on and account management service/website. Implemented core website and services. Assisted programmers with integrating SSO into their own products.
    Technologies: 
    Roles: 
  • Inductive University (Initial Launch)

    2014 - 2015
    Description:
    Education-oriented media website built on Python/Django and Elasticsearch. Implemented course progress widgets, SQL queries, and Elasticsearch aggregation function. Advised on technical implementation of database schema, website infrastructure, and programming practices.
    Technologies: 
    Roles: 
  • RPG Slots

    2016 - PRESENT
    Description:
    Three reel slots game with horizontal and adjacent matching. Includes on-click spin start and score that persists across play sessions.
    Technical Description:
    Written in C++ using the Cocos2d framework. Custom code handles the spinning of each individual reel, stopping the reels at a given row, and processing matches and scoring.
    Technologies: 
  • Out of Phase

    2015 - PRESENT
    Description:
    Adventure-puzzler RPG game that combines real-time action combat and puzzle elements that take place through outdoor environmental terrain and dungeon chambers. Support a two-player mode with a authoritarian server that manages state integrity and events. Implements a custom event management system that can be managed through Tiled map editing software.
    Technical Description:
    In it's current implementation, the game client is built with Phaser.JS and runs in the browser. Communication with the server is accomplished through websockets. The server was originally a Python based websockets server using Tornado websocket server, but was later ported to C++ with the libwebsockets library to utilize multithreading. A custom event system was implemented to handle environmental triggers that involve either the player or another environmental object interacting with triggers. When a trigger is activated, an event is triggered which will alter game state.
    Technologies: 
  • Unity Object Inspect

    2016 - 2016
    Description:
    Coded feature to allow user to inspect an object on click. Created during a 48 hour game jam for local Game Development meetup group.
    Technologies: 
  • CRM

    2014 - 2016
    Description:
    Customer Relationship Management solution. Consists of Java based desktop application and server built on the Ignition Platform. Allows staff to manage customers and associated information, place orders include credit card processing, employee management, and training and certification management. Many other services communicate with CRM through webservices to retrieve and write data.
    Technologies: 
    Roles: 
  • Support Portal

    2014 - 2016
    Description:
    Web based support ticket/help desk solution, heavily customized third-party web software with new features, providing department with time logging, dashboard reports, and notifications. Integrated helpdesk with internal CRM to allow synchronized contact details and support plan status.
    Technologies: 
    Roles: 
  • Unity Android Push Notifications

    2014 - 2014
    Description:
    Unity plugin for sending push notifications to an Android device.
    Technologies: 
  • Interactive Map Kiosk

    2013 - 2013
    Description:
    The client needed an interactive kiosk for their mall to help their customers locate stores and points of interest. Customers needed the ability to filter locations, as well s directly select them from the interactive map.
    Technologies: 
    Roles: 
  • Government Navigator

    2012 - 2013
    Description:
    Navigator is a paid web service that gives private sector businesses tools to search and keep track of government bids and related information. The product holds hundreds of thousands of content items that make up jurisdictions (states, counties, cities, etc), contacts, bids, and other data.

    A website was needed that would allow users to efficiently search and filter Government bids and related information based on several verticals. In addition, content needed to be filtered based on product subscription type and level.
    Technologies: 
    Roles: 
  • e.Republic eCommerce Site

    2009 - 2013
    Description:
    There were several products that e.Republic needs a simple or custom eCommerce form. This system has had several uses from selling books, event registration, and downloadable products.
    Technologies: 
    Roles: 
  • Govtech.com / DigitalCommunities.com / Governing.com

    2009 - 2012
    Description:
    First iteration of the sites on the Clickability platform, a proprietary Java based CMS. Initial launch involved a redesign of Govtech.com, DigitalCommunities.com, and Governing.com.
    Technologies: 
    Roles: 
  • Real Estate Websites

    2006 - 2012
    Description:
    This was a collection of feature rich Realtor websites and full-service hosting. They contained searchable real estate listings and daily e-mail notifications. The sites also had common tools such as sharing and calculators. Data was mainly populated from IDX and RETS feeds.
    Technologies: 
    Roles: 
  • Information Repository

    2011 - 2011
    Description:
    Internal information tracking app utilizing publicly available government data. Initial design needed to support the ability to report trends based on various data points in a second phase.
    Technologies: 
    Roles: 
  • Eloqua Form Enhancements

    2011 - 2011
    Description:
    There was a need to extend the existing lead capture system so that sales could retain more form submissions, and offer product downloads. This was accomplished through exploiting Eloquas support for custom JavaScript, and tapping into external content sources. Enhancements include a two-step registration, display of product information into the form pages, and form population using an account lookup mechanism.
    Technologies: 
    Roles: 
  • NavigatorGov.com / NavigatorEd.com

    2009 - 2009
    Description:
    This is a data-centric website, and an earlier iteration of what the Navigator products.
    Technologies: 
    Roles: 
  • Govtech.com Maintenance

    2008 - 2008
    Description:
    Maintenance and feature implementation on custom PHP framework.
    Technologies: 
    Roles: 
  • Internal Applications

    2014 - PRESENT
    Description:
    There are various applications or extensions needed internally to address business needs so that staff throughout the company can efficiently fulfill their duties.

    Zimbra Plugin
    Javascript widget with Java backend extension of Zimbra email system allowing contacts to be associated to accounts in the internal customer database by sales representatives.

    Quickbooks Java Module
    Ignition module that synchronizes data between CRM system and Quickbooks for accounting purposes.

    Services Downtime Notification System
    An Ignition project that notifies staff when a website or service is down. This utilizes the notification feature that is a part of the Ignition platform.
    Technologies: 
    Roles: 
  • WoW Wishlist

    2014 - PRESENT
    Description:
    Allows users to search and favorite items they desire from World of Warcraft. Uses World of Warcraft API to populate searchable items.
    Technologies: 
  • Mobile Survey

    2014 - 2014
    Description:
    Tablet app for Utility company to record customer information and signatures. Solution was comprised of HTML5 mobile hybrid framework utilizing Phonegap and AngularJS. LocalStorage was used to support offline mode.
    Technologies: 
    Roles: 
  • Govtech Event System

    2012 - 2012
    Description:
    A robust and extensible event management system was needed that would hook into Salesforce and the companie’s web CMS platform. Events are customizable, supporting custom registration options, “Early bird” pricing, and independent sessions.
    Technologies: 
    Roles: 
  • Password Protected Journal

    2016 - PRESENT
    Description:
    Password project journal entry desktop app
    Technologies: 
  • Well Played Party

    2014 - PRESENT
    Description:
    Event website for Blizzard game fan community. Prime purpose is to supply information for the annually held Well Played Party at BlizzCon.
    Technologies: 
    Roles: 
  • Tauren Think Tank

    2013 - PRESENT
    Description:
    Website for weekly Blizzard games fan podcast. Allows users to play Youtube and audio only version of episodes from website.
    Technical Description:
    This is a pretty standard blog style website. In place of blog posts there are podcast episodes. Pulling in the episodes and Youtube content is through an update script that first pulls in the podcast episode through libsyn, and then retrieves the associated Youtube video using the Youtube API.
    Technologies: 
    Roles: 
  • Because of WoW

    2013 - 2014
    Description:
    World of Warcraft fan site that highlights fan based content regarding how World of Warcraft has positively affected their lives through friendship and life events. Displays user submitted stories and social media posts with #becauseofwow.
    Technologies: 
    Roles: 
  • Minecraft Fix Script

    2013 - 2013
    Technologies: 
  • Node Portal

    2013 - 2014
    Description:
    Reddit clone with Facebook style activity feed. Allows users to log in with Facebook credentials and make top level posts or reply to an existing post. Posts are separated across different categorized sections.
    Technical Description:
    Powered by Node.js and the Express framework. Posts and replies are all stored in a single MongoDB document.
    Technologies: 
  • Transcription Service Solution

    2003 - 2003
    Description:
    Website and secure upload engine that ran on the website as an ActiveX component. The engine would encrypt a transcribed document with 256 bit encryption, and then transmit it to the web server using SSL.
    Technologies: 
    Roles: