Welcome to RichardPringle.com

The Home of Richard Pringle II on the Web
Page Not Found
Languages
  • Python
  • C/C++
  • Golang
  • PlantUML
  • Java
  • SQL
  • Bash
  • Perl
  • PHP
  • CSS
  • Javascript
  • JQuery
  • JSP/JSTL
  • Haskell
Software
  • Akka Toolkit
  • Visual Studio Code
  • Windows
  • Jira
  • Confluence
  • Fedora
  • Ubuntu
  • Microsoft Office
  • OpenOffice
  • Adobe Photoshop
  • GIMP
  • VIM
  • Apache
  • Django
  • Samba
  • NIS/NFS
  • Eclipse
  • Notepad++
Goals / Current Aspirations
  • Making progress on my dynamic console ui application.
  • Work through some of the example applications for the DSL book I am reading.
  • Continue working towards mastery at Golang
  • Working on the design for creating a generic Golang plugin system powered by Javascript using otto.
08/2010 - 08/2011
  • MS in Computer Science
  • GPA : 3.58
08/2006 - 05/2010
  • BS in Computer Systems Science
  • GPA : 3.63
  • Graduated in May 2010 with Cum Laude Honors.
  • Upon graduation, 1/3 of the credits for my graduate degree were completed.
Dematic, Grand Rapids, MI
03/2013 - Present
Software Engineer II
  • Design and implement a new Java based simulation tool to be primarily used for performance testing for our fulfillment execution systems.
  • Participate in design and implementation of our Java server based fulfillment execution solutions.
  • Side Project: Yaml configured Golang command sequencer that recovers or proceeds to automate repetitive cyclical tasks.
  • Directed the design of a new Java based automated integration testing framework.
  • Directed the design of a new Java based performance testing simulator to replace the Python based one.
  • Supported the Python based simulator used across multiple teams.
  • Side Project: Golang program to record then replay published messages to generate a complete Python integration test.
  • Continued to lead the feature development the Python simulator (i.e. statistics, order generation, product solutions).
  • Involved in the design and implementation of new features for our Python workflow solution and our C++ server based fulfillment application.
  • Side Project: Various Golang and Python tools/utilities/scripts: parallel, sendMessages, rest clients (jira, acc, planning)
  • Heavily involved in the design and implementation of our next generation voice fulfillment solution and its framework.
  • Side Project: Ported our high performance publish and subscription C++ server/client to Golang to learn Golang.
  • Maintained and developed Python based automated integration tests including process enhancements.
  • Directed design and implementation of the first iteration of a Python based simulator used for exercising the server based fulfillment application and performance testing.
  • Designed and implemented a Python library used for tools (i.e. the simulator) and automated integration tests.
Dematic, Grand Rapids, MI
10/2011 - 03/2013
Software Engineer I
  • Implemented a C++ scheduler application to replace Windows Task Scheduler.
  • Designed and implemented a Python middleware framework to abstract away Vocollect's voice library for our voice-based fulfillment solution.
  • Worked with others to port our Python voice fulfillment solution from Vocollect's old voice platform to Vocollect's new voice platform.
  • Added features and maintained C++ server based fulfillment application.
  • Side Project: Started working on a Python-based simulator to performance test our C++ server based fulfillment application.
08/2010 - 04/2011
CS Department Undergraduate Lab Administrator (CSMAINT)
  • Created, deleted, maintained local accounts.
  • Ensured lab computers stayed in working condition.
  • Handled user and faculty support ticket requests.
  • Worked with CEC to resolve issues.
Ford Motor Company, Houghton, MI
02/2009 - 08/2010
Application Development/Support
  • Created Java/JSP elements for a vehicle process tracking system.
  • Created proof of concept website designs off of mock up documents.
  • Worked in a satellite office with multiple remote teams.
01/2009 - 05/2009
Intro to Computer Science II Grader (CS1122)
  • Graded written or programming assignments and tracked student grades.
IBM, Rochester, MN
01/2008 - 08/2008
Co-op Pre-Professional Engineer
  • Set up, maintained, dismantled, managed servers with 100s of hard drives.
  • Wrote scripts to collect, parse, and make data more easily available.
  • Wrote programs or scripts to automate tasks.
  • Worked in a constructive team environment.
  • Examples: Daily Status, MFG Email, Java PTR Parser, and Config Charts
09/2007 - 12/2007
Data Structures Grader (CS2321)
  • Graded written or programming assignments and tracked student grades.
Dynamic Console UI
  • Golang Based
  • Menu driven system that you select commands from.
  • Acts as the one stop shop to run command line commands.
  • Future: Ability to dynamically add/remove commands
  • Future: Shell like abilities.
  • Future: Headless mode for scriptability.
Website / Resume Script
  • Designed a script to use a single set of personal data to generate a website.
  • Template designs use the Django templating system.
  • Currently designing a LaTeX / Django template to generate a resume from same data.
Wedding Website
06/2010 - 07/2010
NOTE: Visit it by clicking here.
  • Uses the Django framework.
  • Website to view/order a subset of pictures taken by our website photographer.
  • Custom picture 'cart' for ordering pictures and emails the requests to be filled.
The Food Plan
NOTE: Visit it by clicking here.
  • Uses the Django framework in combination with Janrain for authentication.
  • Partially completed but further development is currently on hold.
  • A recipe website that allows users to store and share their recipes.
Treemap Visualization of Network Data
08/2010 - 12/2010
NOTE: This was a group project for CS5090 Data Visualization for Fall 2010.

The goal of this project was to collect network packets, analyze them, and display the connections in an interactive spiral treemap. The PDF write up that was made can be viewed here.

In this project, we collected unencrypted wireless traffic information that was in range of a laptop we setup. The laptop was configured in monitor mode running Fedora 12 with an Intel wireless card. The wireless packets were captured via tcpdump and filtered via a perl script which then gave the selected information to a java program.

Local view showing insignificant hosts.
Local view showing insignificant hosts.

The java program was a multi-threaded GUI program that accepted the input and updated the GUI in real-time. The GUI display was of a spiral treemap design with other GUI objects to selectively modify the look and feel. Clicking nodes allowed for different views of what each IP was sending and/or receiving.

Multi-Input Shared Environment
01/2011 - 04/2011
NOTE: This was a group project for CS5090 Virtual Environments for Spring 2011.

The goal of this project was to have two different individuals use a HMD and a Microsoft Kinect to share the same virtual environment and be able to interact with that environment simultaneously. The PDF write up that was made can be viewed here.

We used the Flexible Action and Articulated Skeleton Toolkit (FAAST) to interface with the Microsoft Kinect and stream the joint positions of the Kinect user. We used a NVIS nVisor ST-60 Head-Mounted Display with a World Viz Precision Point Tracking system that WorldViz develops to be used with Vizard to display the virtual environment.

The Garden Maze with the Green Arrow showing the start location, the Red Square representing the Kinect finish location, and the Blue Square representing the HMD finish location.
The Garden Maze with the Green Arrow showing the start location, the Red Square representing the Kinect finish location, and the Blue Square representing the HMD finish location.

With the invention of the PrimeSense Sensor and its use in the Microsoft Kinect, there have been many different projects that solve or explore interesting areas of natural interaction with computers. We chose the area of telepresence because telecommunication is a very open area for creative solutions and with the invention of the Microsoft Kinect, telepresence will only become more prevalent.

Summer Youth Programs

Created a custom website that explained and linked to videos about Google SketchUp. Visit the class website. The class was designed to introduce virtual environments. It was done by providing a brief introduction to some virtual environments by the use of demonstrations in the MTU Virtual Environments lab. Then students created a model with Google SketchUp and was able to see that model in a virtual environment on the final day.

Week 1 was Women in Engineering. It lasted from 06/20/2011 to 06/24/2011. Week 2 was the Engineering Scholars Program. It lasted from 06/27/2011 to 07/01/2011.