Jacob Pledger

  1. Summary
  2. Tools/Technologies
  3. Experience
  4. Education

Summary

I am a skilled Python developer with a proven background in developing and maintaining critical backend systems. I am experienced at working with distributed systems and public cloud technologies, and I continue to be very interested in system architecture, scalability, fault-tolerance and observability.

I have been a Software Developer at Farmers Edge for 5 years. For most of it I was part of the Cloud team, building and managing our data ingestion and warehousing systems. Since then I have moved onto the Geospatial team, leveraging my experience with cloud technologies for our mapping systems.


Tools and Technologies


Experience

  1. Farmers Edge - Software Developer

    • Develop and test code using Docker.
    • Write unit tests and perform manual integration testing.
    • Troubleshoot, diagnose, and fix encountered problems.
    • Perform code reviews and collaborate with my team to find the best possible solutions.
    • Work with other teams to plan and prioritize new features, as well as deal with bugs, incidents and other problems.
    • Participate in daily scrums.
    • Use Jira to write and manage tickets, and organize sprint planning.
    • Identify new tasks and create tickets in Jira.
    • Write helpful documentation for all projects.
    • Research and evaluate new tools for possible viability within our systems.

    Job Description

    My former manager had moved onto the Geospatial team, and around my 5-year anniversary at the company he asked if I would be interested in joining his team.

  2. Farmers Edge - Software Developer

    • Created and maintained backend for ingestion and management of streaming CanPlug data
    • Created and maintain backend for ingestion and management of weather data from various providers
    • Wrote and maintain Alerts system backend (rule engine)
    • Worked on initial version of Fertilizer recommendation engine
    • Helped design, build, and continue to maintain the backends for ingestion and management of streamed spatio-temporal data from CanPlugs and weather stations
    • Created and continue to maintain alerts system backend, which analyzes streamed data for user-defined conditions and notifies when those conditions are met
    • Designed and built service to generate CanPlug and weather data for use in FarmCommand sales demonstrations
    • Manage large data stores in Elasticsearch and their flows through RabbitMQ and Azure
    • Develop and test code using Docker
    • Write unit tests and perform manual integration testing
    • Cut release code branches and draft up releases, write changelogs explaining updates
    • Troubleshoot, diagnose, and fix encountered problems
    • Adapt and migrate various system components into Azure
    • Perform code reviews and collaborate with my team to find the best possible solutions
    • Work closely with DevOps to manage deployments and troubleshoot issues
    • Work with other teams to plan and prioritize new features, as well as deal with bugs, incidents and other problems
    • Upgraded from Python 2 to Python 3
    • Team operated for a year without a manager, able to independently coordinate to keep things running
    • Participate in daily scrums
    • Use Jira to write and manage tickets, and organize sprint planning
    • Identify new tasks and create tickets in Jira
    • Write helpful documentation for all projects
    • Research and evaluate new tools for possible viability within our systems

    Job Description

    My first professional job out of university, I started at Granduke Geomatics in Lethbridge as it was being acquired by Farmers Edge. On the Cloud team, we were responsible for constructing several backend services, the most prominent of which was our data ingestion service. It was a Django REST API that received binary telemetry data from farm vehicle equipment. The data would be POSTed to our API, stored in Postgres and cloud storage, and then Celery workers - using RabbitMQ as their message broker - would parse the binary data into JSON and insert it into Elasticsearch.

    During my time on the team, I was also the primary developer of an Alerts system backend. We used the tools we already knew (Django REST, Celery, RabbitMQ) to create a system which drank from the firehose of our parsed data and evaluated it against user-provided rules that would generate alerts when matched. The Rules were sort of a cross between email rules and iOS Reminders. Rules could match on any combination of geofence boundaries, date/time, device, or any attribute value being parsed out of the raw data. Matches would generate an Alert which was then pushed to the user. The system also had a configurable way to map input and output streams, to make integrations easy.

    Another smaller, brief project we did in a similar vein was to have a service that replayed the data of desired devices in a loop for demonstration and testing purposes. For a long time we reused the same technologies, but this was eventually migrated into a cloud function.

  3. Government of Canada - Computer Scientist

    Co-op Work Experience IV, Top Secret Security Clearance

    • Rewrote improved disk sanitization program in shell and TCL
    • Tested wifi adapters for best use with Kismet and Wireshark
    • Installed and configured CentOS on laptops
    • Helped clear out old equipment, sort it, and palletize it in preparation for a move to a new building
    This was my fourth co-op work term through the University of Lethbridge co-operative education program.

  4. Government of Canada - System Administrator

    Co-op Work Experience III, Top Secret Security Clearance

    • Converted large script for LDAP to Active Directory synchronization from shell into Perl
    • Completed service requests to update LDAP and Active Directory information, groups, and permissions
    • Merged, activated, and deactivated Exchange mailboxes
    This was my third co-op work term through the University of Lethbridge co-operative education program.

  5. Walmart - Sales Associate

    • Sold phones and plans from various carriers
    • Facilitated contracts between clients and carriers
    • Kept inventory of phones
    • Kept work area and display phones clean
    • Covered Electronics Department sales when necessary

  6. Agriculture and Agri-food Canada - IT Support Staff

    Co-op Work Experience II

    • Diagnosed and fixed various computer and printer issues
    • Prepared and set up new computers for staff
    • Removed and replaced old computers
    • Took inventory of computers, printers and scientific equipment
    • Refurbished old computers to be given to “Computers for Schools” program
    • Tested scientific software for Windows 7 rollout
    This was my second co-op through the University of Lethbridge's co-operative education program. The "Computers For Schools" program was a highlight. There were a bunch of old computers and other equipment taking up space in the basement lockup, and we needed to do something with them. I discovered the "Computers for Schools" program, and suggested that we donate them. So the other co-op and I set up several of the machines in our office running DBAN to wipe the hard drives. The wiped hard drives were shredded, but we palletized the computers they came out of and delivered them all to the University of Lethbridge near the end of the summer.

  7. Shell Canada - Vista Computing Support Analyst

    Co-op Work Experience I

    • Upgraded workstations from Windows 2000 to Windows Vista
    • Coordinated with users to ensure minimal disruption
    • Solved and reported hardware and software issues that prevented users from upgrading
    • Assisted users with setting up and acclimatizing after the upgrade
    This was my first co-op through the University of Lethbridge's co-operative education program.

  8. Dairy Queen - Line Cook

    • Prepared food for customers
    • Cleaned preparation area and equipment
    • Restocked shelves
    I worked here in between semesters at University.

  9. Dairy Queen - Line Cook / Supervisor

    • Prepared food for customers
    • Cleaned and maintained preparation area, cooking equipment and store
    • Restocked shelves
    • Was a supervisor for 2007-2008
    • Managed other staff to maintain speed and quality of food delivery and cleanliness of store

    Job Description

    I started here as my first job on June 6, 2006.


Education