PROFESSIONAL EXPERIENCE

pp-logo-200px_edited.png

August 2022 - Present

SOFTWARE ENGINEER 3 - PAYPAL

314px-CoreLogic_logo.svg.png

May 2021 - August 2022

PROFESSIONAL, SOFTWARE ENGINEER - CORELOGIC

1625174595306.jpeg

April 2019 - March 2021

SYSTEM ENGINEER - UNISYS

January 2017 - April 2019

ASSOCIATE SYSTEM ENGINEER - UNISYS

June 2014 - December 2016

STUDENT CO-OP - UNISYS

 

SIDE PROJECTS

MATCHAPEDE

Hybrid between snake and match 3

Converse your centipede through 12 levels as you collect food, create matches with the same colors, and perform cascades to complete objectives.

Objectives can include:

  • Making a number of matches.

  • Making a number of cascades.  Sometimes even consecutively.

  • Matching a certain number of pieces.

  • Obtaining a minimum score.

  • Completing a level under a time limit.

Why?

While there's numerous variants of snake, I haven't really seen the case of a snake/match 3 game

Programming Languages

The program was developed under Unity and C#.

JEWEL1AI

The self-playing Bejeweled 1 Bot

Jewel1AI is a AI bot that plays Bejeweled 1.  It uses OpenCV to act as the program’s “eyes” and pyautogui as the program’s “mouse.”

There is currently one AI variant available with another one planned:

  • Rule-based

  • Reinforcement Learning (not yet developed)

Programming Languages

The program is written in Python.

Frameworks

The following frameworks are used for this program:

  • OpenCV

  • pyautogui

  • Numpy

NAVICOM SF 3050 GPS DRIVERS

Software drivers for the Navicom SF 3050 GPS device

When I was in my fourth year of college, I was recruited into a team project on building a rover for the Intelligent Ground Vehicle Competition (IGVC).  My responsibility was supplying the drivers for the Navicom SF 3050 GPS device.  Since the drivers were only built for Windows, I had to develop a kernel driver for Linux.

The driver is derived from a template from one of Greg Kroah-Hartman’s kernel examples.  The only differences are the changed driver name and additional code to handle the two interfaces.  I also added a user level library for getting certain attributes from the GPS.

Programming Languages


There are two components that make up this project:

  • The kernel driver is written in C

  • The user library is written in C++

Please note that C at the kernel level is very different than at the user level.