Python
          
            
          
          
            
          
        
    
    Python is a clear and powerful object-oriented programming language, comparable to Perl, Ruby, Scheme, or Java.
Summary
I’ve never been a professional Python developer, but have used it in other settings. For example, one off or small scale scripting tasks, building web servers with Flask, and performing data analysis and visualization in Jupyter notebooks.
I’ve found Python to be accessible to beginners, but also flexible enough to be used almost anywhere. Once you get past “hello world” the path forward is wide open, and continued learning is a matter of finding a project that interests you and building it out. On the flip side, I’ve found myself battling with imports and environment management for hours on end, giving up on a project before starting out of frustration. Now that I have a consistent dev environment configured, my personal Python projects are much easier to work on, but I’m still worried of an import error or environment issue derailing a project out of nowhere.
Projects
These are brief descriptions of some memorable projects I’ve worked on with Python.
Technical Support Metrics Dashboard
As the technical support team lead I built the first metrics dashboard tracking support ticket metrics at Samsara. It was a Flask app that pulled data from Salesforce via API and rendered simple visualizations with d3.js. The app was deployed to a spare laptop and displayed on a TV in the office.
VIN Lookup / Cable Selection Tool
At Samsara we had a box that connected to a vehicle’s diagnostic port and pulled data from the vehicle’s computer. The box was connected to the vehicle via a cable. Which cable was needed depended on the vehicle’s year, make, and model. A daily task for the support team was to receive lists of VIN numbers from sales reps and determine the cable quantities needed for a particular customer’s order. When I took on team lead responsibilities this was a manual process, requiring significant time and effort (especially as order sizes grew).
I built a Flask app that accepted a list of VINs, decoded them into year, make, and model via the NHTSA API, and then determined the cable needed for each vehicle. The app returned a summary of the cable quantities needed for the order, and any VINs that could not be decoded. This app saved the support team a significant amount of time and effort, saved money by improving the accuracy of initial orders - decreasing the number of follow up shipments to correct cable quantities, and was used daily for years until the functionality was integrated into the sales order system.
Jepp
My first foray into Jeopardy data consisted of a React App backed by a Flask web server. There was also so data processing and cleaning involved, and the need to manage database schema migrations.
Baseball Stats
I’ve worked on a few projects related to baseball stats. The goal was to take historical data and identify which player was most likely to get atleast one hit today based on game time, weather, and stadium. To that end I used pythong to scrape data from Baseball Reference, fetch data from the MLB API, clean the data and store it in a database, and then run some analysis and predictions in Jupyter notebooks.
Spotify API App
Built an app that pulled data from the Seatgeek API to find concerts happening on a given day in a given city, and then pulled data from the Spotify API to find related artists and songs. Finally it created a Spotify playlist with the most popular songs from the related artists.
Memorable Challenges
- Working with imports and organizing projects
- Managing different versions and installations of Python
- I almost bricked a work laptop by accidentally upgrading the Mac system Python version.