This commit is contained in:
2026-06-08 12:21:03 -04:00
parent a0fbc80bff
commit 1c8d16e07f
32 changed files with 528 additions and 764 deletions
+156
View File
@@ -0,0 +1,156 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Jon McCaffrey - .NET Developer</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<div class="sidebar">
<div class="profile">
<div class="avatar">JM</div>
<h1>Jon McCaffrey</h1>
<p class="tagline">.NET Developer</p>
</div>
<div class="info-section">
<ul class="contact-list">
<li><span class="label">Location</span><span>Ottawa, ON</span></li>
<li><span class="label">Email</span><span>jonmcc0723@gmail.com</span></li>
<li><span class="label">Phone</span><span>613-277-8353</span></li>
<li><span class="label">Experience</span><span>14 years in tech, 3 in education</span></li>
<li><span class="label">Education</span><span>Game Development (2012)</span></li>
<li><span class="label">Rate</span><span>$50 / hr</span></li>
</ul>
</div>
<div class="info-section skills-section">
<h2>Skills</h2>
<div class="skill-group">
<h3>.NET Ecosystem</h3>
<ul class="skill-list">
<li>C# / .NET</li>
<li>Blazor</li>
<li>Entity Framework</li>
<li>ASP.NET Core</li>
<li>REST APIs / GraphQL</li>
<li>SQL / SQL Server</li>
</ul>
</div>
<div class="skill-group">
<h3>Frontend & Web</h3>
<ul class="skill-list">
<li>HTML / CSS</li>
<li>JavaScript / TypeScript</li>
<li>React</li>
<li>Angular</li>
</ul>
</div>
<div class="skill-group">
<h3>DevOps & Tools</h3>
<ul class="skill-list">
<li>Azure / AWS</li>
<li>Azure Pipelines / Jenkins</li>
<li>Git</li>
<li>Jira / Azure DevOps</li>
<li>Unit Testing / Test Automation</li>
<li>CI/CD</li>
</ul>
</div>
<div class="skill-group">
<h3>Other</h3>
<ul class="skill-list">
<li>Agile / Scrum</li>
<li>Documentation & Training</li>
<li>Customer Support & Debugging</li>
<li>Self-Hosting (Ubuntu Server)</li>
<li>Google Analytics / 3rd Party APIs</li>
</ul>
</div>
</div>
</div>
<div class="main">
<div class="overview">
<h2>About Me</h2>
<p>Software Developer with a focus on the <strong>.NET tech stack</strong>. Passionate about building robust backends, crafting clean APIs, and writing maintainable C# code. Experienced across the full stack with a drive to deliver quality software.</p>
</div>
<div class="experience-section">
<h2>Experience</h2>
<div class="experience">
<div class="exp-header">
<h3>.NET Server Developer</h3>
<span class="exp-date">2021 2026</span>
</div>
<p class="exp-location">TotalETO — Engineering to Order Solutions</p>
<ul>
<li>Wrote various API calls, unit tests to test said calls, and exact examples to show the frontend team on how to consume the GraphQL API.</li>
<li>Converted SQL stored procedures into views usable by Entity Framework to support old functionality with new web app features.</li>
<li>Moved from backend to frontend as needed to fix bugs and add features to React frontend to help the UI team with their higher workload.</li>
<li>Took part in converting legacy VB-coded app functionality to a <strong>C# .NET web development server</strong>.</li>
<li>Taken the initiative in creating a variety of onboarding internal wiki documents explaining parts of the codebase that were well-loved by the team.</li>
</ul>
</div>
<div class="experience">
<div class="exp-header">
<h3>Fullstack Blazor Developer</h3>
<span class="exp-date">2021</span>
</div>
<p class="exp-location">Personal Projects</p>
<ul>
<li>Created igpfanreference.ca to teach players in unreleased game basic play patterns, and to experiment with <strong>Blazor</strong>, Linux self-hosting and Azure web hosting.</li>
<li>Twitch streamed live coding sessions to demonstrate developing the website, and crowd-sourced and credited players on ideas and functionality for the website.</li>
</ul>
</div>
<div class="experience">
<div class="exp-header">
<h3>Angular Web Developer</h3>
<span class="exp-date">2020 2021</span>
</div>
<p class="exp-location">CleanCode — Software Consultancy</p>
<ul>
<li>Came to the conclusion that I wanted to focus my career in <strong>.NET</strong>, and left the company to pursue Blazor research and C# opportunities.</li>
</ul>
</div>
<div class="experience">
<div class="exp-header">
<h3>Full Stack Developer</h3>
<span class="exp-date">2015 2020</span>
</div>
<p class="exp-location">bitHeads — Cloud-Based Technology</p>
<ul>
<li>Worked on a portal and mobile-facing web app for a SaaS project written in React.</li>
<li>Eliminated routine project hours spent documenting by creating a Node.js tool in TypeScript that generated the API doc contents.</li>
<li>Created brainCloud's Command Line tool in Node.js and other test tools, for developers and QA to test and stress test API and server features.</li>
<li>Maintained customer success and brainCloud's unit tests, examples, and libraries in <strong>Java, ObjC, C++, C#, JS, Unity, and Unreal</strong>.</li>
<li>Wrote documentation, tutorials, and offered guidance to bring new co-workers up to speed on the BaaS environment.</li>
<li>Maintained and wrote Jenkins Pipeline in Groovy for improved test reporting and team CI.</li>
<li>Developed Test Automation for brainCloud and Nortec/Condair Help websites in Java, to reduce manual testing time spent on an agile team.</li>
</ul>
</div>
<div class="experience">
<div class="exp-header">
<h3>Mobile Game Developer</h3>
<span class="exp-date">2012 2015</span>
</div>
<p class="exp-location">Smoke Labs — Mobile Games Startup</p>
<ul>
<li>Developed key systems in Blokus, Mattel-branded title nominated in the Canadian Video Game Awards for "Best Game Design" and "Best Social or Casual Game."</li>
<li>Experience integrating a multitude of analytics, ad systems, and backends, including Google Analytics, Game Analytics, Flurry, Mopub, and Playhaven.</li>
<li>Spent time working with the external QA team to bridge the company's knowledge gaps between the developer and QA workflows.</li>
<li>Integrated ads, in-app purchases, analytics, and handled product releases of legacy client apps.</li>
</ul>
</div>
</div>
</div>
</div>
</body>
</html>