Nolan McCafferty, Developer in Iowa City, IA, United States
Nolan is available for hire
Hire Nolan

Nolan McCafferty

Verified Expert  in Engineering

Software Developer

Location
Iowa City, IA, United States
Toptal Member Since
August 3, 2022

Nolan has worked on everything from back-end web development, front-end web development, mobile development, and machine learning (ML). After graduating, he got a job as an automation engineer at Ford, where he made a significant impact by delivering an essential proof of concept (POC) for management. Now Nolan would like to take on new challenges and projects!

Portfolio

Our Research
Flask, Python 3, Python, API Development, Heroku, Open Source...
Databricks - Security Team
Python, REST APIs, APIs, PySpark, ETL, Spark, Pandas, Jira, Jira REST API...
Self Employed
C#, Amazon API, Canvas LMS, eBay API, Flask, Django, Go, Java, JavaFX, Pandas...

Experience

Availability

Full-time

Preferred Environment

MacOS, PyCharm, Slack, Linux

The most amazing...

...project I’ve created was a Django web app that enables dropshippers to list items from one platform to another. I used the eBay and Amazon APIs.

Work Experience

Back-end Developer

2023 - PRESENT
Our Research
  • Maintained and improved a Flask application to parse relevant fields from HTML documents stored in Amazon S3. Created new parsers for different formats/websites, etc.
  • Created a multithreaded process to scrape and save new documents in Amazon S3.
  • Created a multithreaded process to refresh database records served by an API to ensure that end user data is as current as possible.
Technologies: Flask, Python 3, Python, API Development, Heroku, Open Source, Amazon S3 (AWS S3), API Integration, Multithreading

Data Integration Python Engineer

2022 - PRESENT
Databricks - Security Team
  • Developed and maintained ETL pipelines, sourcing data from security scanning tools and importing it into Jira and Amazon S3 (AWS S3).
  • Created a custom GitHub comment bot to remind developers to review security standards before merging pull requests.
  • Used the Pandas library and Databricks platform extensively to manage, transform, and migrate large amounts of data.
Technologies: Python, REST APIs, APIs, PySpark, ETL, Spark, Pandas, Jira, Jira REST API, DevOps, DevSecOps, Amazon Web Services (AWS), Azure, Google Cloud Platform (GCP), Databricks, CI/CD Pipelines, Software Development Lifecycle (SDLC), Trivy, QualysGuard, Amazon S3 (AWS S3), Scala, Jenkins, Networking, Git, GitHub, API Integration

Senior Full-stack Developer

2014 - PRESENT
Self Employed
  • Built automation solutions for data ETL, logins, form submission, and other repetitive actions for 100+ different sources.
  • Built dashboards for clients to interact with and view the progress of large-scale data scraping and API consumption tasks.
  • Reverse-engineered hundreds of hidden website APIs to extract desired data for clients.
  • Loaded data into Pandas data frames to perform cleaning and export to various formats such as SQLite, CSV, JSON, and others.
Technologies: C#, Amazon API, Canvas LMS, eBay API, Flask, Django, Go, Java, JavaFX, Pandas, Python 3, Selenium, Web App Design, Web Scraping, ETL, Singer ETL, PostgreSQL, Amazon EC2, Full-stack, Web Development, SQL, Web App Development, APIs, Back-end, Linux, PostgreSQL 10, PyCharm, Charles Proxy, Postman, eCommerce, Automation, REST APIs, API Development, Networking, Git, GitHub, API Integration, Multithreading, Android, Appium

Automation Engineer

2021 - 2022
Ford Motor Company
  • Designed and built the infrastructure to integrate cross-validation ML models into a test framework.
  • Improved the accuracy of cross-validation design defective screen detection by around 300%.
  • Maintained and created new test scripts to ensure the proper functionality of the infotainment UI and hardware.
  • Pulled data from REST API and imported it into the Pandas data frame; used data to create graphs using Matplotlib to track testing metrics and find anomalies.
Technologies: Python 3, TensorFlow, PyTorch, Selenium, RPC, Pandas, Matplotlib, REST APIs, Internet of Things (IoT), Networking, Git, GitHub, Multithreading

Back-end Engineer

2017 - 2018
Öppettider.nu
  • Extended the existing codebase and wrote new code to gather and organize business operating hours data from 50+ sources.
  • Used an HTTP proxy to reverse-engineer private website APIs to locate and extract desired data.
  • Published data directly to the company website and sold to internationally-recognized luxury automobile companies in Sweden for use in vehicle navigation systems.
Technologies: C#, MySQL, Selenium, Charles Proxy, REST APIs, Networking, Multithreading

eCommerce Inventory Management Web App

Developed a Django web application that allows dropshippers to list items from one platform to another. The app updates the prices of listings to ensure profit is made at time of sale and tracks the orders made. I built the entire back end and used Django to create a simple UI.

eCommerce Arbitrage Tool

https://www.youtube.com/watch?v=mxYDccNKBKw
Created a JavaFX app that allows users to find products to drop-ship between competing eCommerce platforms. I wrote the front end and back end. I also used a combination of third-party APIs to provide most of the necessary data.

Calendly Singer Tap

https://github.com/singer-io/tap-calendly
Developed a Calendly data tap compatible with a Singer ETL specification. It allows users to access their data with the Calendly API and integrate with the Singer ETL platform. I set it up so users can run the tap and pipe the results to any number of Singer.io platform targets, CSV, BigTable, PostgreSQL, etc.

AirBnB Rankings Tracker

https://www.youtube.com/watch?v=CVcxZmdmLro
Created a JavaFX app that allowed users to track the rankings of their Airbnb properties across different search queries. I used the Airbnb website private JSON API to fetch results, displayed in an easy-to-read table format, and allowed for results to be exported to a CSV file.

Medical Survey Web App

A Django web application that allows medical study participants to submit responses to questionnaires. Also features a portal and dashboard for study administrators to create custom questionnaires and view participants' responses, as well as audio recording and saving for questions that require an audio submission.

Canvas Data Visualization Web App

A Flask and MongoDB-based web application that extracts a user's Canvas profile from the Canvas LMS API and stores it in JSON and document format in a MongoDB collection. Also features a Dash (based on Flask) visualization web application where the user can view statistics and graphs about their test scores and submissions. Docker and Docker Compose were used to containerize and launch the Mongo and Dash instances.

College Basketball Scouting Report PDF Generator

A client in the college sports industry needed a bot to visit a series of URLs on their website, export each page as a PDF, and email these PDF files to their website users. The "Save as PDF" functionality of their website allowed users to download college athlete scouting reports in a more easily viewable format on paper, which college athletic recruiters prefer. I used Selenium and a Python SMTP client to automate this process and meet my client's needs.

Sports Betting Data Extractor

Used a Python requests library to automate login and data extraction of sports betting data on a large sports betting and fantasy data website. Data was loaded into a Pandas data frame, cleaned, and uploaded to a Google sheet. This automation pipeline ran hourly to ensure the client's sheet stayed up to date.

IoT Fan Controller

https://github.com/nolanm1122/fan-controller
A small web application designed for Raspberry Pi that uses a GPIO pin as an antenna to send radio messages and control consumer ceiling fans. The app was written in Go, and it utilizes the "rpitx" package to send radio messages. The app required analysis and reverse-engineering of physical controller radio signals to copy and re-transmit from Raspberry Pi. Web/HTML interface was built to allow users to easily send messages such as light on/off, fan speed low/medium/high/off.

Languages

Python 3, Java, Go, C#, Python, JavaScript, HTML, C++, SQL, Scala

Frameworks

Django, Flask, Selenium, Appium, Flutter, Spark

Libraries/APIs

eBay API, Amazon API, Pandas, REST APIs, API Development, Twilio API, TensorFlow, PyTorch, Requests, Matplotlib, PySpark, Jira REST API

Tools

Canvas LMS, PyCharm, Slack, Charles Proxy, Postman, Git, GitHub, Canvas, Celery, Jira, Jenkins

Paradigms

Web App Design, ETL, Automation, Agile, Data Science, DevOps, DevSecOps

Platforms

Amazon EC2, JavaFX, Docker, Linux, Amazon Web Services (AWS), Android, MacOS, Azure, Google Cloud Platform (GCP), Databricks, QualysGuard, Raspberry Pi, Raspberry Pi 3 GPIO, Heroku

Other

Web Scraping, Singer ETL, Web App Development, APIs, Back-end, eCommerce, Internet of Things (IoT), API Integration, Multithreading, RPC, Data Engineering, Full-stack, Web Development, Dash, Data Visualization, Learning Management Systems (LMS), Data Architecture, Embedded Systems, Networking, SMTP, HTTP, Reverse Engineering, CI/CD Pipelines, Software Development Lifecycle (SDLC), Trivy, Open Source, Algorithms

Storage

MySQL, PostgreSQL, SQLite, PostgreSQL 10, Amazon S3 (AWS S3)

2016 - 2021

Bachelor's Degree in Computer Engineering

University of Iowa - Iowa City, IA, USA

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring