John Patterson




Full Stack Developer


Who Am I ?

I'm a Full Stack Developer with a strong SQL background, years of experience in the automotive industry, and sense enough not to microwave fish in the breakroom microwave.

Making sure my camera and mirror still work

John Patterson

No YOUR bathroom mirror needs cleaning

Key Skills

PHP • JavaScript • jQuery • Python • VB • PowerShell • HTML5 • CSS3 • Bootstrap • JSON • XML • Microsoft SQL • MySQL • IBM DB2 • Docker • Google Cloud Platform • Agile (Jira, Azure DevOps) • Git • Photoshop

Key Experience



Full Stack Developer / Z1 Motorsports
AUG 2021 - AUG 2022
  • Create and document Google Cloud Functions in Python, frontend and backend solutions in PHP and JavaScript (HTML5 and CSS3), and design and manage data structures, functions, and stored procedures in MySQL.
  • Integrate Google Maps API for address verification in order to reduce lost or returned shipments.
  • Integrate EasyPost API and store JSON objects to facilitate shipping label creation, label refunds, and international shipping.
  • Created executable installer to help new hires set up workstation dependencies like Node and Grunt.JS.
  • Create dynamic XML file for Google Merchant Center product reviews.

SQL Developer / Asbury Automotive
OCT 2019 - NOV 2019
  • Developed multi-step procedure for determining delegation of authority for DocuSign recipients based on organizational hierarchy using Microsoft T-SQL and VBA scripting. (Contract position)

Rating Systems Analyst / Revolos
APRIL 2018 - APRIL 2019
  • Managed vehicle service contract rating application using DB2 for IBM iSeries/AS400, T-SQL, and SSIS packages, and VBA to manage data and ETL.
  • Identified method to maximize vehicle database efficiency, eliminating gigabytes of redundant data and reducing execution time of dependent stored procedures.

SQL Developer / SimplePart
APRIL 2016 - APRIL 2018
  • Created procedure to collate Motor data and replace industry-standard abbreviations with more accessible plain language for search engine optimization using Microsoft SQL Server.
  • Developed SSIS packages to facilitate regular data import improving former manual method and reducing time spent by at least 90%.
  • Created VB application to convert proprietary data files into flat files for faster and more reliable loading into database.

Professional references available on request

What I'm Working On

An incomplete look at the sort of incomplete project I completely enjoy


Can-Bus hacking

I recently replaced the head unit in my 2016 Tundra with a post-facelift (read: fancier) model year stereo, and in my research found that in order for this to work I'd need to replace the factory amp with a later model. To avoid the cost, I looked into the reason the amp swap was necessary and found that they operate on different commands in the can bus.

Each node in the can bus network has a built-in database of little packets that contain commands, and for two units to communicate they must have the same db. It's possible with a Raspberry Pi or Arduino equipped with the right serial interface and some specialized software to sniff out and intercept these commands, and rebroadcast different ones. It's like Google Translate for your car's components. It's not just useful for upgrading components, you might also decide to display custom information on your instrument cluster or change how fast your turn signal flashes or any number of customization.


Jotto!

I've long wanted to develop an Android app in Kotlin, and I had an idea for a game that I thought would be a perfect yet simple time waster. This will sound very familiar and hopefully not too unbelievable, but in my game you attempt to guess a five-letter word by guessing other five-letter words. I started working on a dictionary so I could get development underway, and about a week into it someone said to me "Hey, have you played that game Wordle?"

Admittedly, my game is functionally different -- when guessing a word, the app only reveals how many letters the guess has in common with the target word. There's no indication of placement or which letter it is, you just have to use logic and the process of elimination (if you're a beginner) to arrive at a conclusion. I didn't even make the game up, it's been a pen and paper game for decades just as Dictionary was before someone made it into Balderdash, Fictionary, The Dictionary Game, and so on. I'm sure I'll take the project back up once it doesn't seem like I'm hopping on a "guess-the-five-letter-word" game bandwagon, or once I have a different semi-original app idea.

Contact / Hire Me

Did you find this page from my resume? I'd love to hear from you! I'm interested in a full time position as a developer or data engineer.

My Work Location


City: Atlanta, GA

Email: