John Fitzpatrick, Developer in Calgary, Canada
John is available for hire
Hire John

John Fitzpatrick

Verified Expert  in Engineering

Software Developer

Location
Calgary, Canada
Toptal Member Since
September 9, 2022

John is a senior software engineer with nearly two decades of experience developing software for various purposes, including eCommerce, asset tracking and identification, transportation, and software quality and security. John is a polyglot developer, keen on using multiple programming languages and technologies, including Go, Java, C, and Python, and diverse operating systems, such as Linux, macOS, and Windows.

Portfolio

Self-employed
Go, Python, Visual Studio Code (VS Code), CAN Bus, J1939
Synopsys
Go, Java, Elixir, Linux, Windows, MacOS, REST, GitLab CI/CD, GitLab, Confluence...
MINDS
Java, Hibernate, JBoss, MySQL, Eclipse, Visual Studio, C#

Experience

Availability

Part-time

Preferred Environment

MacOS, Visual Studio Code (VS Code), Postman, Go, Python, REST, Git, SQL, Java, Elixir

The most amazing...

...solution I've recently developed is a CAN bus vehicle simulator that uses the Google Maps API and simulates driving a real vehicle on a given route.

Work Experience

Senior Software Developer

2021 - PRESENT
Self-employed
  • Developed a vehicle device simulator that uses the Google Maps API and simulates a vehicle sending CAN bus data while driving a route.
  • Wrote technical documentation, including requirements and project design specifics. I also created documentation for the end users.
  • Participated in regular sync meetings with the client to gather requirements and provide feedback on the project status.
Technologies: Go, Python, Visual Studio Code (VS Code), CAN Bus, J1939

Software Engineer, Senior Staff

2013 - PRESENT
Synopsys
  • Co-created a solution for a critical business problem, facilitating the use of the company's software. The solution is currently in a provisional patent status.
  • Defined the solution's overall architecture and direction, working closely with UX designers, other architects, and individual team members.
  • Oversaw the solution launch from the initial beta version to the general availability release, where it is now a key product differentiator.
  • Mentored junior team members on software development best practices, including coding, testing, design patterns, and architecture.
  • Helped define processes for CI/CD and quality assurance.
  • Served as a scrum master, leading sprint planning meetings and retrospectives.
Technologies: Go, Java, Elixir, Linux, Windows, MacOS, REST, GitLab CI/CD, GitLab, Confluence, Jira

Software Developer

2009 - 2013
MINDS
  • Developed new web-services API to allow clients to access data about their paving operations and asphalt hot mix plant.
  • Developed new asphalt and emulsion plant ticketing product from scratch and oversaw initial customer deployments across multiple sites.
  • Implemented RFID data capture software and developed high-level software to interpret RFID readings to significantly speed up report generation, up to ten times speed improvement.
Technologies: Java, Hibernate, JBoss, MySQL, Eclipse, Visual Studio, C#

Software Developer

2008 - 2009
AppLocation Systems Inc
  • Led an RFID pilot project for a large telecommunications company to track assets stored in outdoor yards.
  • Wrote technical developer documentation for the third-party web services platform provided by a telecommunications company for inclusion in SDK. Code samples were provided in C, C++, Java, PHP, and C#.
  • Completed enhancements to the core product as an RFID specialist.
Technologies: Java, PostgreSQL, JBoss

Vehicle Device Simulator

I wrote a vehicle device simulator capable of simulating a truck driving a route to test vehicle tracking software.

I was the sole developer on the project, so I gathered requirements, wrote a design document for my client, and implemented all the code. I also wrote a pytest plugin to facilitate its integration into their testing system.

Simplified Static Analysis Product

I invented a new approach to translating project source code into a format suitable for static analysis by the analysis tool. My invention allows non-technical users to use a very advanced static analysis tool, making the static analysis software accessible to a significantly larger pool of users. I worked with the intellectual property team to file provisional and non-provisional patents for my invention.

Active RFID System for Tracking Large Assets

An active RFID system for tracking large assets such as vehicles in a manufacturing facility or high-value assets stored in a yard.

I worked as one of the key software developers in this project, helping design and implement the system. I took responsibility for gathering requirements, designing the system's architecture and the tag communications protocol, and implementing them across the entire software stack. I wrote a substantial part of the user interface, the back-end database, and the firmware for the RFID readers. I also traveled to customer sites to help with customer POCs and troubleshooting.

Languages

Go, SQL, Python, Java, Elixir, C++, C#, C

Tools

GitLab, Confluence, Postman, Git, GitLab CI/CD, Jira, Bitbucket, Pytest, Visual Studio

Paradigms

REST

Platforms

MacOS, Visual Studio Code (VS Code), Linux, Windows, JBoss, Eclipse

Storage

Databases, Microsoft SQL Server, MySQL, PostgreSQL

Other

Software Engineering, Algorithms, Networking, CAN Bus, J1939, RFID, Static Application Security Testing (SAST)

Frameworks

Hibernate

1998 - 2004

Bachelor's Degree in Computer Science

University of Calgary - Calgary, Alberta, Canada

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