Career Profile
Christopher Wininger has fourteen years of experience developing software solutions. He enjoys learning and is constantly seeking to improve his process by evaluating the newest technologies and methods for application design. He flourishes in a team setting and has experience working with large code bases through the duration of the software life cycle. Christopher greatly values well managed, maintainable code. He strives to bring consistency and a well planned structure to all of his projects.
Experience
Sonatype helps companies build better software, offering dependency management and risk reduction services.
As Sr Software Engineer and Team Lead, Chris has contributed to multiple code bases, working on the frontend, backend, data pipelines and infrastructure as code.
- Lift -- Bringing Sonatype SaaS to Small Development Teams Lift was a company effort to develop a product more suitable for small teams and open source organizations. It offered many of the capabilities or our traditional enterprise offerings as well as new static analysis features geared towards developers. As team leader Chris worked closely with design and project management to scope new features and shape the product direction. Chris was one of the primary developers of the frontend and also contributed to the refinement of the underlying static analysis pipeline and backend APIs. Self Recorded Demo
- AVD -- Client Side Modernization and Unification: As part of the AVD team Chris worked to standardize update and unify several web applications. He spoke regularly with internal end users and coordinated with a team of of developers to improve the user experience and maintainability of the software.
- Vista Hackathon: Chris was selected to be part of a team that participated in a hackathon sponsored by the parent company Vista. He helped the data science researcher with scripts for data acquisition and transformation needed to train Machine Learning models and worked to produce a mock UI of the proposed features that was used during the demonstration.
- Lead Innovation Week Effort to Train Machine Learning Models: A project proposed by Chris was selected for "Innovations Week" where employees are given a week to form teams and develop ideas formed from the bottom up. This project was an effort to use large amounts of proprietary data amassed by the AVD team to train ML models to assist Sonatype security researchers. Chris worked with participants form across Sonatype to study the feasibility of the project. The team produced a several prototype models and prototype web service built around one of the models showing how it can be incorporated into existing architecture. The teams finding were documented and published on internal wikis as well as through recorded talks.
Chris worked with 16 other developers on a large NodeJS application called airSpring. AirSpring is a web application which allows customers and in house developers to rapidly build dynamic web applications using a low-code drag-and-drop interface. Chris lead development efforts on back-end web services, developing and maintaining several NodeJS applications. His role began as a senior developer and grew to include administrative tasks such as performing interviews and representing the company at conferences.
- Offline Storage: Designed and implemented storage and synchronization mechanism allowing applications developed on the airSpring platform to function offline (used Application Cache, LocalStorage, IndexDB, and Socket.io)
- Database Storage: Worked on persistence mechanisms, helping to create and implement the architecture used to track changes, serialize and transmit deltas to the server, and convert requests into MongoDB operations
- Multi-Server Deployment Process: Helped develop application packaging and deployment processes including server pool management functionality involving server to server communication
- Process Management: Created a module for managing an arbitrary number of child processes communicating over ZeroMQ to support isolation of blocking tasks
- API Design Features: Implemented both the back-end and initial user interface for airSpring’s Web API Builder allowing customers to design web APIs, which leverage pre-built actions as well as allow customers to supply custom functions
- Authentication and Access Control: Developed much of the authentication and access control code handling integrations for SAML, LDAP, and Google Auth (also handles token based auth for api end points)
- Maintenance and Bug Fixing: Resolved concurrency issues and race conditions in highly asynchronous multi-process distributed code paths
- Performance Analysis: Optimized hot JavaScript code paths and identified memory leaks in long running JavaScript applications
- Worked Booth at the BoxWorks Conference: Spoke with potential customers and strategic partners, giving demos and feilding questions
- Assisted with Hiring: Conducted technical interviews and participated in selection of new developers
- Training: Gave technical talks and feature demonstrations to team members and assisted in bringing new developers up to speed with code base
- Documentation: Provided internal documentation for the features and processes I worked on
Worked closely with a client in the health care sector to update and implement software solutions for the finance department, participated in regular scrums and meetings with members of the development team, created custom web applications to meet the needs of the client, and updated and maintained existing applications
- Registration Application (.Net web application used to handle registration in training courses): Made extensive updates to the database schema, created administrative modules, and implemented changes to the user interface to improve performance and user experience; Maintained the application, fielded bugs and performed upgrades
- Control Documents Application (MVC web application used to track supplies as they enter the dock and move through processing queues): Redesigned the legacy ASP .Net 2.0 application as an MVC 3.0 application; Added new functionality and corrected bugs; Maintained SSIS packages used to integrate and merge data extracted from proprietary systems; Improved user experience by implementing client side logic including the use of AJAX calls
- RVU Application (Used to track and adjust Relative Value Units against budget and expense data): Automated data imports for the system, replacing a manual processes previously carried out by IT; Rewrote portions of the application to integrate better with other Aspect products used by the client; Created administrative modules to allow the client staff to adjust application behavior and user access; Enhanced functionality, adding new calculations and changes to the visual presentation of data
- Ask A Question Application (Used by staff on the clients network to ask and receive responses to questions): Created tables and interfaces to implement tiered access restrictions on the system; Corrected bugs and improved interaction with the SMTP server used to deliver notifications and updates
- Capital Request SharePoint Feature (A SharePoint 2007 solution used to handle Capital Equipment acquisition requests): Created an InfoPath form with multiple views and code behind; Wrote web services to facilitate communication with other Aspect products; Designed web features to create the necessary lists, content types, site columns, and associations on the clients SharePoint site; Created a process to convert legacy data to the new format; Created Nintex work flows to handle item level security and deliver e-mail update
- Budget Exception and Budget Adjustment Forms (SharePoint 2007 web feature used to submit information regarding exceptions to the budget): Created InfoPath form and necessary code behind; Created web feature, web services, and implemented work flows using Nintex workflows
- Position Management Proof Of Concept: Worked with another program to define the technologies to be used for a product rewrite of an application used to deal with staffing and meta data regarding job positions; Created a proof of concept for the rewrite making use of Microsoft MVC 4, Microsoft Web API, Ninject (dependency injection for .net), Enterprise framework, JQuery, and KnockoutJS
- Keeping Clients Happy: Participated in regular meetings with the client and responded to feedback and bug reports from the field.
- Redesigned and implemented software for the intake and processing of phone messages while maintaining legacy support
- Worked with a team on the design, implementation, testing, and deployment of a tiered system for the drafting and management of bills as they move through the legislative process
- Implemented an API to rapidly convert between documents stored in Rich Text format and our own proprietary document format based on Open XML
- Created specialized forms in the Bill Drafting application to handle the import of Redistricting Plan data generated by GIS software
- Developed algorithms to index the language in the Kentucky Revised Statutes
- Designed and implemented both desktop and web based graphical user interfaces through which agency staff can search the existing laws and quickly identify references to terms
- Supported a legacy application used by senior legislative staff to assign legislative committee appointments
- Rewrote and supported the application used to assign legislative committee appointments
- Designed and implemented agency tools used by staff to accomplish daily administrative tasks
- Created tools for analyzing and testing data generated by the Bill Drafting system
- Conducted meetings and training to familiarize staff with newly developed applications
- Fielded phone calls, responded to error reports and new feature requests in enterprise applications
- Managed code for a modular .Net application designed to handle intake, processing, storage and retrieval of data for the child welfare system in the state of Indiana
- Worked with Microsoft Team Foundation Server to handled the migration and building of code as it moved throughout the testing cycle
- Improved communication between development and testing staff and supported the tracking of solutions as they moved from developer machines into the testing code base
- Worked with the quality assurance team to ensure adherence to design and specification as the software system migrated through testing and production environments
- Performed administrative duties such as purchasing the domain name and setting up the hosting service
- Designed and built a website to advertise services of the studio
- Maintained and updated the website over several months
Volunteer Positions
Infinite Industries is a Lexington KY based non-profit founded by Dima Strakovsky Infinite Industries works to promote local art and cultural events in Lexington and surrounding areas. Chris has been donating time and technical services to Infinite Industries since its inception. Chris designed the architecture of the web application, chose the technology stack, helped build the production delivery pipeline, and participates in regular maintenance and feature work for the application. He has helped onboard multiple new contributors all of whom have shaped and enriched the project.
Personal Projects
- Fong Phone: A synthesizer in your pocket intended for performance art, soundscapes, and teasing pets. Written in Cordova with a non-traditional UX the app is available on IOS and Android
- Every Picture Tells a Story: A gallery piece written in NodeJS and targeting POSIX, this application converts images to ASCII art containing fragments of text in real time, presenting the viewer with an interactive mirror of words
- Call and Response: A collaborative project with Ainsley Wagoner and Andrew Alred, Call and Response leverages Electron, the Web Audio API, some fun fractal analysis, and good old CSS to present a moving field of colored dots that participants interact with by speaking, singing, and clapping
- Fong Tron: A a multi-user interactive sound scape presented at The Living Arts and Science Center based on the Fong Phone application. The user interface from my Phong Fone app was wrapped by a web socket layer and served to touch devices allowing each user to control different aspects of the sound and visual dispaly on a large screen
Skills & Proficiency
JavaScript
TypeScript
NodeJS
HTML & CSS
React
Java
Kotlin
Vue
Backbone
Angular
C#.Net / MVC
C/C++
Ruby on Rails
Scheme
MongoDB
SQL (Postgres, T-SQL, MySQL)
Jenkins
Selenium/Nightwatch
Jasmine
Share Point
Box
Apache
nginx
Linux Admin
Docker
Skills & Proficiency
-
Languages and Platforms:
JavaScript, TypeScript, NodeJS, HTML & CSS, React, Java, Kotlin, Vue, Backbone, Angular, C#.Net / MVC, C/C++, Ruby on Rails, Scheme -
Database Technologies:
MongoDB, SQL (Postgres, T-SQL, MySQL) -
Build Toos and Testing Frameworks:
Jenkins, Selenium/Nightwatch, Jasmine -
CMS Platforms:
Share Point, Box -
Devops:
Apache, nginx, Linux Admin, Docker
Education
-
BA in Computer Science
Indiana University
2002-2006 -
BA in Russian Language
Indiana Univeristy
2002-2006 -
Study Abroad
St. Petersburg State University
2005
Certifications
- Programming in HTML5 with JavaScript and CSS3 – Microsoft Certified Professional (MCP)