Skip to content

Instantly share code, notes, and snippets.

@caffeinatedMike
Last active July 7, 2022 23:19
Show Gist options
  • Save caffeinatedMike/c2d6a3ae181b31e43f4b80004effb370 to your computer and use it in GitHub Desktop.
Save caffeinatedMike/c2d6a3ae181b31e43f4b80004effb370 to your computer and use it in GitHub Desktop.
JSON-Schema Resume
{
"meta":{
"theme":"elegant"
},
"basics":{
"name":"Michael Hill",
"label":"Python Developer",
"image":"https://i.imgur.com/W6jGvtE.png",
"summary":"Self-taught workaholic whose strongest areas are API and microservice-related development, as well as webscraping. I learn what I need to when I need to. Highly-driven & low-maintenance. Only interested in backend development, looking to move away from full-stack.",
"email":"michaelhill24@comcast.net",
"location":{
"city":"Trevose, PA",
"countryCode":"US"
},
"profiles":[
{
"username":"caffeinatedMike",
"url":"https://www.github.com/caffeinatedMike",
"network":"github"
},
{
"username":"CaffeinatedMike",
"url":"https://stackoverflow.com/users/2962937/caffeinatedmike",
"network":"stackoverflow"
},
{
"username":"Michael Hill",
"url":"https://www.linkedin.com/in/michael-hill-b9713887",
"network":"linkedin"
},
{
"username":"CaffeinatedMike",
"url":"https://twitter.com/luciferonkodi",
"network":"twitter"
},
{
"username":"michaelhill24",
"url":"https://www.fiverr.com/michaelhill24",
"network":"fiverr"
}
]
},
"education":[
{
"endDate":"2014-04-01",
"startDate":"2011-09-01",
"area":"Liberal Arts & Sciences",
"studyType":"Associates (incomplete)",
"institution":"Burlington County Community College"
}
],
"references":[
{
"reference":"Mike has faced many obstacles trying to secure data for us. He takes every challenge we throw at him with stride, and genuinely appears to enjoy the challenge! His determination has led to an increase in our team's velocity, which directly impacts the client with more robust deliverables. Mike's work ethic is matched by his incredible sense of humor, making it an all around joy to work with him. Thank you, Mike!",
"name":"Karen Resto, Manager of Data Operations at SPINS LLC (DAAP sister-company)"
},
{
"reference":"When Michael was hired onto the company, he was able to provide the technical expertise needed to help automate the process of catalog updates, improve the quality of our company's CRM system, and start creating APIs to aggregate data from multiple manufacturers. He also had to teach another colleague on website scraping while on the job. He is always professional, and an all around great person to be around! He will be a valuable asset on any team.",
"name":"Nehla Amin, Catalog Specialist at Renaissance (RenComGroup LLC)"
},
{
"reference":"Michael is a self starter and a smart individual. While working on product data system he took initiative to build an excel import add in to automate data import. I wish him best of luck.",
"name":"Armughan Rafat, Chief Technology Officer at Advertising Specialty Institute (ASI)"
},
{
"reference":"Michael would be an asset to any project team or work group. Michael always approaches his work with enthusiasm and positivity. I was always amazed, and inspired by, his relentless pursuit of efficiency and automation. In every instance he took it upon himself to find better, more effective or efficient ways to accomplish tasks many of us may accept as manual or slow. His professional mantra is clearly “There has to be a better way and I will find it.” But then not only does Michael find these solutions, he implements them. In doing so, he raises the bar for those around him.",
"name":"Christy Ridpath-Tramdaks, Executive Director of Business Development & Digital Integrations at Advertising Specialty Institute (ASI)"
}
],
"skills":[
{
"keywords":[
"Python",
"Flask",
"SQLAlchemy",
"SQLite",
"Celery",
"Redis",
"Postgres",
"MySQL"
],
"level":"Mid-Level",
"name":"Backend"
},
{
"keywords":[
"requests",
"BeautifulSoup",
"Scrapy",
"jmespath",
"csv",
"openpyxl"
],
"level":"Mid-Level",
"name":"Webscraping / API Consumption"
},
{
"keywords":[
"Swagger",
"OpenAPI 3",
"ReDoc",
"Flask-Restful",
"Flasgger",
"Flask MethodView",
"Marshmallow"
],
"level":"Mid-Level",
"name":"REST API Development"
},
{
"keywords":[
"PyTest",
"Coverage",
"Sphinx",
"GitHub Actions",
"Flake8",
"PyLint",
"Black",
"isort"
],
"level":"Mid-Level",
"name":"Linting / Testing / Documentation"
},
{
"keywords":[
"Ubuntu",
"RedHat",
"Apache",
"Nginx",
"Supervisor",
"Gunicorn",
"Heroku",
"Python-Fabric"
],
"level":"Junior",
"name":"DevOps"
}
],
"work":[
{
"pinned":true,
"name":"DAAP LLC",
"description":"DAAP LLC is a subsidiary of SPINS LLC that provides data harmonization.",
"summary":"Building and managing data-collection pipelines responsible for providing up-to-date nutritional-centric product data from various online sources, which is ultimately used within the harmonization process.",
"website":"https://www.spins.com/daap-data-harmonization/",
"location":"Chicago, IL",
"position":"Python Full Stack Developer (Remote)",
"startDate":"2020-06-30",
"highlights":[
"Created a 60+ site Scrapy project, complete with custom spider templates to expedite new site additions.",
"Created a Reporting Python package, complete with Sphinx documentation, for programatically obtaining reports housed within portals requiring account logins.",
"Created an interface for managing, scheduling, and reviewing reports from various portals."
]
},
{
"name":"Renaissance (RenComGroup LLC)",
"description":"Renaissance (RenComGroup LLC) is a full-service digital marketing company founded in 2010.",
"summary":"Eliminating various pain-points in the data collection process. For areas that could not be fully automated, ensuring they were made more efficient.",
"website":"https://www.rencomgroup.com",
"location":"Philadelphia, PA",
"position":"Software Engineer",
"startDate":"2018-12-10",
"endDate":"2020-06-29",
"highlights":[
"Data-collection via webscraping",
"Consumed product, price, and sales data from REST APIs",
"Developed microservice APIs that powered dashboard data",
"Developed a REST API for the company, providing manufacturers direct access to manage their data"
]
},
{
"name":"Advertising Specialty Institute (ASI)",
"description":"Advertising Specialty Institute (ASI) is a full-service business that serves suppliers and distributors in the promotional products industry.",
"summary":"Mapping supplier-provided data feed fields to the company's API, while noting any post-processing that was required.",
"website":"https://www.asicentral.com",
"location":"Feasterville-Trevose, PA",
"position":"Import Specialist - Data Integrations Team",
"startDate":"2015-04-01",
"endDate":"2018-11-30",
"highlights":[
"Created a suite of helpful macros, accessible via custom macro ribbon (xlam)",
"One macro fixed 50 common import issues"
]
},
{
"name":"Advertising Specialty Institute (ASI)",
"summary":"Input/update products manually through the company's product management solution.",
"website":"https://www.asicentral.com",
"location":"Feasterville-Trevose, PA",
"position":"Data Entry Specialist - Electronic Information Team",
"startDate":"2014-06-01",
"endDate":"2015-04-01"
}
],
"projects":[
{
"name":"R2D2: Report Scheduling Portal",
"description":"A portal built for managing all aspects of portal downloaders housed within the DAAP-Reporting package.",
"highlights":[
"Normalization settings dictate how data is handle prior to being uploaded",
"Upload settings dictate how and in which Google Bucket / Folder the files should be uploaded",
"Ingestion settings dictate what data to ingest into which BigQuery dataset & table",
"Cascading settings that translate from portal to account to report to job",
"OTP QR code decoding feature to disect OTP secrets for 2FA accounts",
"Auto-refreshing OTPs with visible timers when viewing account lists",
"Calendar view of all past and upcoming jobs, filterable by Account client annd Reporter class",
"File Browsing areas to review everything from job logs & downloads to system logs",
"Admin area to monitor system health (resource usage) and manage (stop/restart) the various processes/services that power the application",
"Celery & Redis used for background report tasks to enable concurrent background jobs",
"Linting and testing done using black, isort, pylint, flake8, PyTest, codecov.io, and GitHub Actions"
],
"startDate":"2021-03-01",
"keywords":[
"Python",
"Flask",
"Flask-Admin",
"SQLAlchemy",
"Celery",
"Redis",
"Supervisor",
"PyTest",
"Coverage"
],
"roles":[
"developer"
],
"entity":"DAAP LLC"
},
{
"name":"Daap-Reporting: Portal Reporter Package",
"description":"A Reporting framework including a metaclass with required functions and helpful utilities that enforce a standard workflow when navigating through login portals and downloading reports.",
"highlights":[
"Post-processing functionality",
"Bulk file normalization",
"Data ingestion capabilities",
"Reporter classes for each login portal we acquire data from",
"Fully documented with Sphinx"
],
"startDate":"2020-11-01",
"keywords":[
"Python",
"requests",
"BeautifulSoup",
"PyOTP",
"2Captcha",
"Twilio SMS",
"SendGrid",
"Google Python SDKs",
"Sphinx"
],
"roles":[
"developer"
],
"entity":"DAAP LLC"
},
{
"name":"DAAPy",
"description":"A Scrapy project that focuses on collecting nutritional info, ingredients, and other health-related product information.",
"highlights":[
"60+ websites",
"1 million products scraped",
"Custom spider templates",
"Multiple pipelines responsible for post-processing the data",
"Pulls and pushes updates to and from a BigQuery dataset"
],
"url":"https://dl.dropboxusercontent.com/s/uufjuayj3aawlqe/DAAPy_spider_count.jpg",
"startDate":"2020-06-30",
"keywords":[
"Python",
"Scrapy",
"Jmespath",
"SQLAlchemy",
"BigQuery",
"Google Python SDKs"
],
"roles":[
"developer"
],
"entity":"DAAP LLC"
},
{
"name":"RenCom API",
"description":"An API for manufacturers to manage their platform data, ensuring suppliers always have the most up-to-date details.",
"highlights":[
"Inventory, pricing, and product data management",
"Different pricing structures: Per retailer, regional, universal",
"API key and Token-based access",
"Swagger UI Try It Console",
"ReDoc documentation"
],
"url":"https://www.dropbox.com/sh/atgkh9jwlxh53o7/AAC26CzTTr0sRzzUN7SbbybCa?dl=0",
"startDate":"2019-09-01",
"endDate":"2020-06-29",
"keywords":[
"Python",
"Flask",
"SQLAlchemy",
"Flasgger",
"Flask-Restful",
"Marshmallow"
],
"roles":[
"developer"
],
"entity":"Renaissance (RenComGroup LLC)"
},
{
"name":"Collective RenCom Webscraping Work",
"description":"The sum of all webscraping work done while working at Renaissance.",
"highlights":[
"Scraped 35+ sites"
],
"startDate":"2019-01-01",
"endDate":"2020-03-01",
"entity":"Renaissance (RenComGroup LLC)"
},
{
"name":"Manufacturer API Integrations",
"description":"Consumed product, price, and sales data from various manufacturer and platform APIs.",
"highlights":[
"Ashley Furniture (Apigee)",
"New Classic Furniture (Proprietary)",
"Jackson Catnapper (Proprietary)",
"Furniture of America (Magento API)",
"Wordpress API",
"WooCommerce API",
"BigCommerce API",
"Magento API",
"Shopify API",
"Wix Ecommerce API"
],
"startDate":"2019-04-01",
"endDate":"2020-05-31",
"keywords":[
"Python",
"Flask",
"SQLAlchemy",
"MySQL",
"requests"
],
"roles":[
"developer"
],
"entity":"Renaissance (RenComGroup LLC)"
},
{
"name":"Analytic Report Dashboards",
"description":"Dashboard Reports with various metrics for multiple marketing avenues.",
"highlights":[
"Search Engine Optimization (SEO) data via Google Analytics API",
"Search Engine Marketing (SEM) data via Google Ads/Adwords API",
"Social Media Marketing data via Facebook Insights API"
],
"url":"https://www.dropbox.com/sh/jjijlyjr8qwycxu/AAADYIGg_vGVBVFvfH8fEwWKa?dl=0",
"startDate":"2019-02-01",
"endDate":"2020-05-01",
"keywords":[
"Python",
"Flask",
"SQLAlchemy",
"MySQL",
"Google Charts JS",
"Bulma CSS"
],
"roles":[
"developer"
],
"entity":"Renaissance (RenComGroup LLC)"
},
{
"name":"Image Processor (Standardization)",
"description":"Python Script that utilizes the Pillow Image package to standardize all images provided by various vendors and manufacturers.",
"highlights":[
"FTP traversal/upload/download",
"Images are resized, cropped, enhanced, converted, and transferred to the appropriate asset folders."
],
"startDate":"2019-11-01",
"endDate":"2019-12-01",
"keywords":[
"Python",
"Pillow",
"ftplib",
"requests"
],
"roles":[
"developer"
],
"entity":"Renaissance (RenComGroup LLC)"
},
{
"name":"PPC Account Manager",
"description":"A Flask app that provided automated PPC client account setup and easy management.",
"highlights":[
"Login-protected application",
"Accepts Excel templated settings and additional UI form settings",
"Automated account setup using Google Ads/Adwords APIs",
"Simple Bootstrap UI with forms via WTForms"
],
"startDate":"2019-01-01",
"endDate":"2019-05-01",
"keywords":[
"Python",
"Flask",
"WTForms",
"Google Ads/Adwords APIs"
],
"roles":[
"developer"
],
"entity":"Renaissance (RenComGroup LLC)"
},
{
"name":"ESP Assistant Excel Add-In",
"description":"A toolbar suite of useful Macros for use by employees who handle supplier data in the company's Excel template format.",
"highlights":[
"Automates repetitive pre-import procedures",
"Discovers and corrects common errors pre-import",
"Increases productivity",
"Decreases operator error and import turnover time"
],
"startDate":"2015-04-01",
"endDate":"2018-11-30",
"keywords":[
"VBA",
"xlam"
],
"roles":[
"developer"
],
"entity":"Advertising Specialty Institute (ASI)"
},
{
"name":"Collective Freelance Programming / Data-Entry Work",
"description":"Built up a repeat client-base for programming and data-entry-related tasks.",
"highlights":[
"Delivered over 200 jobs to satisfied clients",
"Provided services through multiple platforms and avenues"
],
"startDate":"2014-06-01",
"endDate":"2018-11-01",
"keywords":[
"Python",
"webscraping",
"Excel",
"data manipulation"
],
"roles":[
"developer",
"freelancer"
]
},
{
"name":"SportsGuru Kodi Add-On",
"description":"A Kodi Media Center Add-On that provided live sports updates for a user's favorite teams.",
"highlights":[
"Utilized ESPN's public, undocumented APIs that power their own dashboards",
"Included NBA, NHL, MLB, and all the Soccer Leagues",
"Included all the common ESPN features: standings, highlights, schedules, line-ups, play-by-play, and live updates",
"Notification settings allowed restricting notification to favorite leagues and/or teams",
"Reached #6 in Top Used Third-Party/Unofficial Add-Ons"
],
"url":"https://www.dropbox.com/sh/6p1aj12eu926xen/AADCi5d2CBk669LE1PjK1nBha?dl=0",
"startDate":"2018-04-01",
"endDate":"2018-12-01",
"keywords":[
"Python",
"xbmc",
"xbmcplugin",
"xbmcaddon",
"xbmcgui",
"xbmcvfs",
"PyXBMCt",
"requests"
],
"roles":[
"developer"
],
"entity":"Hobby Project"
},
{
"name":"Cartoon Crazy Kodi Add-On",
"description":"A Kodi Media Center Add-On for cartoons new and old.",
"highlights":[
"Content from 20+ websites",
"24/7 Cartoon channels",
"Univeral search feature to aggregate a list of sources that were available for a specific show/episode",
"Reached #13 in Top Used Third-Party/Unofficial Add-Ons"
],
"url":"https://www.dropbox.com/sh/088e8zr0d15jb0o/AADTUu5vRxaUYpsu776i2f7xa?dl=0",
"startDate":"2017-10-01",
"endDate":"2018-10-01",
"keywords":[
"Python",
"xbmc",
"xbmcplugin",
"xbmcaddon",
"requests"
],
"roles":[
"developer"
],
"entity":"Hobby Project"
}
],
"interests":[
{
"name":"Open Source"
},
{
"name":"Animals"
},
{
"name":"Running / Hiking"
},
{
"name":"Urban Exploration"
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment