C# Developer in Edmonton, AB, Canada
Technical Consultant2017 - 2018Alberta Motor Association
Technologies: C#, .NET Core, Entity Framework, Azure, MVC, SQL Server, Visual Studio Online, GitHub
- Built a proof-of-concept project for an internal web service. The company currently leverages an older tool for web services which leads to long deployment cycles that fail often.
- Defined the project's goal: to create a new framework in .NET Core MVC that would have zero downtime which would allow for operating hour deployments, code reviews, and automated unit testing.
- Developed a finished product that fulfilled all of the project's goals with live monitoring using Azure Application Insights which would notify the team via HipChat of any errors.
- Built the front end of a React & Redux administration app so that accounting could set rules and create records manually for the API when they needed the access. TypeScript was used and WebPack was used for compilation and minification.
Software Developer2016 - 2017WSP
Technologies: .NET Framework, jQuery, AngularJS, C#, SQL Server, Visual Studio Online
- Developed a web application on a large scale F2F (field-2-finish) project.
- Built by myself the standalone front-end portals for time entry and approval (TimeQOffice) and project accounting rules (TimeQManager).
- Worked around the evolving client requirements throughout the project in jQuery and AngularJS applications.
- Served as a back-end developer when required.
Technical Consultant2015 - 2015PCL
Technologies: .NET, C#, jQuery, AngularJS, SQL Server, Entity Framework, MVC
- Developed a web app for managing trade workers' applications.
- Built up the external facing-side where people could apply.
- Fleshed out the administration layer that was for internal use only.
- Used Agile methodology on a team of six developers, two business owners, and a single project manager.
- Gained skills with ReSharper for faster coding in Visual Studio.
Net Ninja (Software Developer)2012 - 2014Quercus Solutions, Inc.
Technologies: .NET, C#, jQuery, SQL Server, Team Foundation Server, MVC, Entity Framework
- Developed, planned the architecture, and supported web applications for clients all the while in a team setting.
- Met client's criteria and expectations for projects in a timely and efficient matter.
System Analyst2008 - 2012City of Edmonton
Technologies: .NET, C#, Visual Basic, SQL Server, IIS, SharePoint
- Supported several desktop applications and customer requests in a wide array of programming languages.
- Provided customer support and gathered specs for enhancements and new utilities.
- Worked on several servers hosting Microsoft SQL Server databases and Microsoft IIS and web services.
Software Development2006 - 2007Intuit Canada
Technologies: C++, Visual Studio, SQL
- Worked on the localization of the QuickBooks Product for release in Canada.
- Developed a tool that dynamically modified an SQL database based on the application's locale as well as adding/removing a functionality to the application based on which locale it would be released in.
- Gift Card Management REST API (Development)
AMA was using an older system for managing gift card transactions with a long deployment schedule.
The goal was to create a new system as proof of concept that could be changed any time (even during work hours) with no downtime.
We chose .NET Core and used Visual Studio Online for managing the deployments, Git for source control, and Azure for hosting and load balancing to prevent outages. We also added Azure Application Insights for in-depth error tracking, as well as real-time messaging in the team with HipChat and Slack when errors occurred so they could respond quickly.
For administration, I added a React- and Redux-based front end to the application. It was built in TypeScript in the Visual Studio editor and used WebPack to pack all the components together.
- TimeQManager Web App (Development)
WSP required an internal application to handle project organization, time submission, equipment tracking, and end-to-end accounting rules for their large organization.
The TimeQManager piece of this massive project was a single standalone application that managed the accounting rules for unique projects. The app used jQuery modules and widgets on top of an MVC application. Drag-n-drop jQuery libraries were used heavily for the organization of the accounting rules.
I functioned as the front end developer for the project and created a single-page application. I also added jQuery unit tests using Sinon and QUnit together, integrated .NET with Chutzpah. As a back-end developer, I handled the integration work on the larger application when needed.
- TimeQOffice Web App (Development)
WSP required an internal application to handle project organization, time submission, equipment tracking, and end-to-end accounting rules for their vast organization.
The TimeQOffice piece was a standalone web application that managed time entry for office workers and time approval for project managers. The app functioned as a standalone AngularJS application that made direct calls to the integration service.
I built various directives and managed the code quality based on Angular 1.x standards set by Google’s John Papa.
- Vital Nourishment Web App (Development)
Vital Nourishment required a web application so they could manage their clients' meal plans, delivery of food, and monthly subscriptions.
The goal was to create a web-facing business presence, an easy-to-use user interface where clients could update their information and subscriptions as well as robust and uncomplicated administration processes.
I functioned as the architect for the entire system using MVC 5, the Identity Framework for managing users and permissions, and jQuery to enhance front-end administration. Most notably, I used drag-n-drop functionality for meal planning.
- Internal and External Facing Subtrade Application Web App (Development)
PCL needed an app for managing job applications of sub trades across the world.
The goal of this project was to create an easy-to-use application process where users could log-in, update their resume, and submit their applications. They also required an administration functionality for the several thousand applications they get during job fairs as well as to manage those applications when they needed different tool sets.
I functioned as a front-end developer on the MVC-based application using AngularJS to create a single-page app. I also worked as a back-end developer on the Web API calls to the Entity Framework database.
- SharePoint and 360 Field Integration Web App (Development)
PCL uses a SharePoint application as well as a product called 360 Field for tracking construction site work which ultimately created two datasets.
The goal of this project was to create an integration batch process to do nightly syncs of the two datasets so customers could seamlessly use either product without an issue.
On this project, I functioned as the user interface developer, helped clarify requirements during the project, and assisted in Scrum demos to the product owners.
- Azgaard | Subtrade Invoicing System (Development)
A web application used by general contractors to assist in dealing with monthly invoices they receive from their sub-trades.
On this project, I functioned as technical lead, architect, assisted in gathering the business requirements, and managing Scrum sprints.
The challenges of this project included using CSS 3 to dynamically alter page layouts for various devices and integrating with the client's accounting system.
- The Hubuzz (Development)
The project goal here was to build a website listing of local events in Edmonton which intelligently suggests events that the user might be interested in
The initial challenge was that the site needed to be easy to access as well have relevant data and have a mobile access portal. It also needed to be accomplished in my spare time so being efficient was important.
The site ended up being coded using the ASP.NET MVC framework with Razor pages. I integrated Facebook and Twitter authentication into the login which pulls relevant demographic data from new sign-ups as well as not requiring users to remember another password. Daily a screen scraping algorithm runs which uses regular expressions to get data from event listings. I used jQuery mobile along with a NuGet component for Visual Studio to integrate a mobile version of the site.
The development is ongoing.
- My ASEBP (Development)
Here, I worked with the Alberta School Employee Benefit Plan to build a web platform for their covered members to submit medical claims online, update their personal information, and view their benefits package.
We chose to use Microsoft's MVC framework because it has an excellent architecture frame which allows data models to flow from the database to the user interface very easily. We used a lot of jQuery UI controller items for the interface to give the application an interactive field compared to the existing members' site.
The site is currently in use by ASEBP's members with around 1,000 users registered with that number climbing every day. We struggled initially with getting clients to lock down their requirements but eventually found a system that blended scrum and waterfall. This decision effectively gave clients an up-to-date picture of the product so that on-the-fly changes were possible while establishing the requirements enough that we could meet deadlines.
We deployed the site with minimal bugs found during its first month.
- Customer Relationship Manager (Development)
We wanted to build a customer relationship manager for a company to track customer relationships as well as automate some of the more repetitive tasks. Since an external vendor made the website, the CRM would need to operate independently of it.
The site needed to list all of the existing customers, list potential new clients and whether they'd been called, and automate some of the more repetitive emailing.
The site ended up being coded using the ASP.NET MVC framework with Razor pages. Batch processes run every five minutes, and the site checks whether a specific type of email was sent out and which ones need to be. We used various methods for sorting and filtering on the customer lists to give users an effortless way to view the data they need. It also required measures to manage LINQ queries when the data set of business listings grew over 5,000 to ensure filtering and sorting operations sped up while not impeding user work.
FrameworksASP.NET MVC, Entity Framework Core, Entity 5, .NET, AngularJS, .NET Core
Libraries/APIsjQuery UI, jQuery, React
ToolsMicrosoft Visual Studio, Visual Studio Online (VSO), Microsoft Team Foundation Server
PlatformsVisual Studio 2017, WordPress
ParadigmsAgile Software Development, Scrum
StorageSQL Server 2017, SQL Server 2016, SQL Server 2014, MySQL
- Bachelor of Science degree in Computer Science with a Business Minor2002 - 2008University of Alberta - Edmonton, Alberta, Canada
- Microsoft Certified Developer: Developing Microsoft Azure and Web ServicesAPRIL 2014 - PRESENTMicrosoft