Technical Skills

Programing: JavaScript, Perl, Python, Java, Ruby, Go, Rust
Markup: HTML, CSS, JSON, XML, YAML, Markdown
Other: Apache Web Server, NGINX, Docker, Storm, Kafka, AWS, Google Cloud, ReactJS

Work Experience

ShopRunner, Chicago, IL

Sr. Software Engineer (November 2020 - Present)

JavaScript, NodeJS, Git, Docker, GCP, React, MongoDB, BigTable

ShopRunner is an e-commerce platform company that provides retailers a suite of tools. Including payment systems, a marketplace to connect with consumers, and fraud detection capabilities.

FedEx announced on 12/02/2020 that they would acquire ShopRunner, pending regulatory approval of the deal. The acuision was completed before the end of the month.

Worked on fraud detection products built in NodeJS and hosted on GCP. This included making recomending and implementing changes to how Cloud BigTable was used, and changes to React front end for reviewing flaged orders

Tribune Publishing, Chicago, IL

Sr. Software Engineer (September 2017 - November 2020)

JavaScript, HTML, CSS, JSP, Git, Docker, AWS, React

Tribune Publishing is a media publishing company who’s properties include the Chicago Tribune, New York Daily News, and other papers.

Worked on optimizations in both CSS and JS. Developed enhancements to websites to improve ad revenue and subscriber retention. Worked on improvements and tooling around docker to help with development.

Brandify (formerly Where2GetIt), Des Plaines, IL (March 2011 - September 2017)

Development Manager (April 2014 - September 2017)

Manager of Technical Operations (December 2012 - April 2014)

Front-End Developer (March 2011 - December 2012)

JavaScript, Perl, HTML, CSS, SVN, Git, Storm, Kafka

Brandify is a location based marketing services company based in Anaheim, CA. The company offers local search solution for national brands, such as Chick-fil-a, Patagonia, and Disney Stores. Their solutions include desktop and mobile store locators, data syndication and claiming for Google, InfoUSA, Navteq, and others, location pages for individual stores/dealers, and more. For more information on Brandify, see their website. www.brandify.com

Over the many years I was with the company I worked on a variety of projects. I have created brand new mobile libraries for our main locator product, as well as enhancements to our existing front-end locator code. Some of those enhancements were to enable multiple waypoint driving directions, and a feature called “Along the Way” which allows the user to see locations that are near their chosen route. I have also set the architecture for newer responsive libraries built using Backbone.

In addition to front-end work I have also worked on enhancements to the existing back-end server code, written in Perl. One of the first back-end features that I worked on was to extend the ability to generate static maps to include driving directions maps. I’ve also made enhancements to our local landing pages system, which allows us to dynamically generate a web page for each location that a client has. Some of those enhancements include the ability to inject a small image gallery and ads onto the page, which are controlled by both the corporate client and the location managers.

Most recently I have been working on the architecture and development of a new Node.js server which uses Hapijs. This new server is designed for flexibility, scalability, and speed. Along side architecting a new Node.js code base for Brandify, I have also been leading the way in adopting Apache Storm and Kafka for processing real-time data and events. I designed and coded the first topologies, and I have trained other developers in the company in how to use Kafka and how to create and deploy Storm topologies.

Model Metrics, Chicago, IL

Developer (May 2010 - August 2010)

Salesforce

Model Metrics was a provider cloud computing solutions using salesforce.com, Amazon, and Google. Most recently Model Metrics has been acquired by salesforce.com.

During my time at Model Metrics I primarily used the ETL (Extract Transform Load) tool, Talend, to do complex data migrations and integrations for clients. I also worked on enhancements to internal tools, written in PHP, that analyzed the quality of clients’ data in salesforce.com. One of those enhancements was to improve report generation speed by developing a way to generate the pages of the report in parallel.

Education

Illinois Institute of Technology (May 2010)

Bachelor of Science in Computer Information Systems

Minor in Internet Application Development

Specialization in Information Security

Course Work: Operating Systems | Technical Communications | Data Structures | Software Engineering | Rich Internet Applications | Internet Technologies & Web Design | Service-Oriented Architectures | Cryptography and Network Security | Information Security | Database Organization |

About the Illinois Institute of Technology

The Illinois Institute of Technology is a Ph.D.-granting research university with programs in engineering, architecture, the sciences, humanities, psychology, business, law, and design.

IIT was founded in 1940 after the merging of the Armour Institute of Technology and the Lewis Institute. IIT has an interdisciplinary approach to education, including the Interprofesional Projects Program (IPro).

Personal Projects

I always have a number of on going programing projects that are primarily for my own personal use and enrichment. You can find the code for most of these projects on my GitHub profile page (https://github.com/ianmcodes). I also have some modules in the npm registry, you can find a list on my profile (https://www.npmjs.org/~dapuck). Other interests include Arduino, Raspberry Pi, electronics design, 3D Printing, and woodworking.

Some of my more widely used projects are:

node-simple-spinner

Just as the name implies, this is a simple “spinner” animation for command line node applications. It has start and stop functions, and lets you customize the animation.

node-svn-interface

This is a Node.js module that interacts with SVN by spawn and the console svn command. I created this module to use with the some deployment scripts that I wrote as Manager of Technical operations at Brandify.