Experienced software engineer specializing in computer graphics and computational geometry, with expertise in electron native applications, mobile apps, and full-stack web development.
- Jan 2021 - Present
Chief Executive Officer; FoamFactory.io (Burnsville, MN)
- Developed a web application for brewery management using Javascript/Ecmascript and React.
- Developed a REST-based API for data management to support web applications using Ruby/Rails and Rust.
- Developed a component library for React components for the web application using Storybook and custom open-source deployment and packaging tools.
- Created and manage business plan, accounts, budget, pitch deck, and other business documents.
- Pitched ideas and concepts to potential investors to acquire funding to enable growth of the business.
- Sep 2021 - Jun 2022
Consulting Software Engineer; Various Organizations
- Assisted clients with software development using Javascript/Ecmascript, Rust, React, WebGL, WebSockets, and related technologies.
- Assisted in planning future development cycles within the context of Agile/Scrum.
- Assisted with project management using JIRA.
- Mentored and train full- and part-time employees.
- Assisted in solving issues for which I have tactical expertise, such as font rendering, web-based rendering via browsers and path rendering
- Dec. 2019 - Jan. 2021
Principal Engineer; Medal, B.V. (Remote; Company based in Long Beach, CA)
- Added features for audio and video control to an existing Electron application for gamers to record gameplay and share with others.
- Advised leadership on technical architecture for build systems, code review, asset management, and agile methodologies.
- Developed code in a “special projects” role, assisting the company in a number of different areas, including research and development, build systems, integrations, hardware graphics recording, and application development.
- Dec. 2016 - Dec. 2019
Lead Graphics Engineer; InVision App, LLC (Remote; Company based in New York, NY)
- Migrated existing functionality to a Skia-based rendering engine using WebAssembly.
- Developed a GPU-based rendering platform using Electron, Javascript, and WebGL.
- Develop a fast, memory-efficient, high-quality rendering system for Bézier paths, shapes, surfaces, and text utilizing the full power of the GPU.
- Utilized GLSL to write vertex and fragment shaders for multiple effects within the WebGL programmable pipeline.
- Developed highly efficient, cutting-edge implementations of antialiasing for incredibly crisp and appealing visual output.
- Utilized JIRA to maintain a task list and burndown chart using agile software development methodologies.
- Advised with application-level concerns, such as UI configuration, code correctness, HTML5 best-practices and documentation.
- Sept. 2014 - Dec. 2016
Engineering Team Lead; When I Work (Mostly Remote; Company based in St. Paul, MN)
- Developed a suite of Android applications for scheduling/workplace management.
- Improved ratings in the Google Play store from 2.9 to 4.0.
- Architected an overarching platform and code strategy for the Android platform.
- Advised with server-side REST architecture.
- Assisted in documentation of Android and REST server codebase.
- Interviewed, mentored and trained 3 other developers to work underneath me.
- Managed the automated test and continuous integration environment (TravisCI, Jenkins).
- Peer reviewed code from others and set forth coding standards.
- Managed application lifecycle from initial feature design to release within the Google Play Store.
- Monitored crash statistics and customer feedback.
- Conducted standup meetings for feature-based team and coordinate agile methodology.
- Nov. 2013 - Sept. 2014
Android Engineering Lead; Jingit (Bloomington, MN)
- Develop an Android application for a retail rewards system.
- Assist in documentation of Android codebase.
- Mentor and train four other developers working underneath me.
- Manage the automated test and continuous integration environment (Jenkins).
- Peer review code from others and set forth coding standards.
- Manage application lifecycle from initial feature design to release within the Google Play Store.
- Monitor crash statistics and customer feedback.
- Jun. 2011 - Oct. 2013
Platform Engineer, Layout and Rendering; Mozilla (Remote; Company based in Mountain View, CA)
- Develop code in the Gecko platform behind Mozilla Firefox, Firefox for Android, Firefox OS, Thunderbird, and Seamonkey products using C++, Java, Python, Javascript, HTML, and CSS.
- Design and implement software rendering systems to conform to specifications set forth by the W3C.
- Develop code related to layout on Firefox for Android within the Gecko platform using the Android Native Development Kit (NDK).
- Develop user interfaces within Java for Firefox for Android using Java and the Android Software Development Kit (SDK).
- Support inter-process communication for Firefox and Firefox for Android between Java, Native (C/C++ platform) and script (Javascript) using JNI and COM.
- Advise on issues related to advancement of multi-party specifications.
- Write and maintain unit tests within the Mozilla codebase and respond to test failures within the Mozilla continuous integration system.
- Gain expertise in areas related to web rendering, both within the Mozilla system, as well as knowledge on the state of the art, in order to maintain a foundation from which to augment the Firefox browser.
- Oct. 2009 - May 2011
Sr. Software Engineer; General Dynamics Advanced Information Systems (Bloomington, MN)
- Develop and maintain features within the Multi-Int Analysis and Archive System (MAAS), a software product that assists intelligence analysts in analyzing video.
- Write documentation and provide support for MAAS products.
- Write object-oriented code in Java, coordinating with Microsoft SQL Server using Hibernate.
- Advise on issues related to software design and development process.
- Sept. 2006 - May 2009
Teaching/Research Assistant; Department of Computer Science, University of Minnesota (Minneapolis, MN)
- Assist with the development and planning of assignments.
- Assist with the grading of student submissions.
- Help students learn material from course and provide insight from personal experience and background not attained in a lecture setting.
- Courses:
- Graduate Computer Graphics I (CSCI 5107)
- C/C++ Programming (CSCI 1113)
- Undergraduate Computer Graphics (CSCI 4107).
- Development of a wave-based simulation for use in realistic rendering of images using C/C++, OpenGL, OpenGL Shading Language, and user-interface development in Qt.
- Optical simulation of sub-surface scattering of light and rendering of complex materials using innovative ray-tracing techniques, C/C++, Perl, and Python.
- Review of literature surrounding rendering of wave-based effects in Computer Graphics.
- Presentation of findings and discussion of possible alternative methods with faculty members.
- Oct. 2003 - Aug. 2006
Assistant System Administrator; John D. Odegard School of Aerospace Sciences, University of North Dakota (Grand Forks, ND)
- Assist in installation, maintenance and monitoring of UNIX- and Linux-based servers.
- Development of maintenance scripts using Perl, bash, sh, and zsh scripting languages.
- Development of web applications for user and system maintenance using PHP.
- Construction of a Linux lab image for Computer Science students using Red Hat and Debian Linux.
- Development of documentation and training materials for reference of current state of systems using TWiki and Perl.
- Advise faculty, staff, and students with technical problems related to UNIX/Linux servers and clients.