Skip to content

Latest commit

 

History

History
441 lines (269 loc) · 30.1 KB

index.md

File metadata and controls

441 lines (269 loc) · 30.1 KB

Sinisa Petkovic

Software Developer

LinkedInTwitterGitHubStack OverflowMastodon


My name is Sinisa Petkovic, and I am a software developer with over 20 years of experience in writing and shipping software with various teams in various environments. In recent years, I immersed myself in full-stack web development, back-end services (Azure, AWS, on-prem), front-end SPAs, and cloud computing. I'm always looking into new ways of accomplishing things and technologies.


Highlights

  • Extensive and diverse experience in .NET technologies, SQL Server, Go, JavaScript, TypeScript, Python, PostgreSQL, MySQL, NoSQL, Docker, AWS, and Microsoft Azure.
  • Experience in Azure Cloud Services (PaaS & IaaS), Functions, Durable Functions, Cognitive Search, Storage, App Service, Active Directory, Application Insights, Logic Apps, Data Factory, Service Bus, Key Vault, Azure DevOps.
  • Hands-on experience in AWS with IAM, EC2, S3, Lambda, SQS, SNS, Aurora, Event Bridge, Secrets Manager, DynamoDB, Code Pipeline, Cloud Watch, Cognito, Document DB, Memory DB, Elasticsearch, Step Functions, OpenSearch, Data Pipeline, Glue, and API Gateway.
  • Designed and developed Cloud Service projects and deployed them to Web Apps, PaaS, and IaaS.
  • Used SQL Server, SQL Azure, Cosmos DB, DynamoDB, PostgreSQL, MongoDB, MySQL, SharePoint, Neo4j, Apache CouchDB, Apache Cassandra, Oracle, SQLite, IBM DB2 and Firebase extensively for database needs in various applications.
  • Hands-on experience in Azure Data Factory, SSIS, and SQL Server Job Agent.
  • Extensively worked on SQL, T-SQL, stored procedures, functions, triggers, views, joins, schema, and transactions.
  • Extensive and proven experience in .NET Framework, .NET Core, C#, Go, TypeScript, JavaScript, Python, ADO.NET, EF, LINQ, ASP.NET, WCF, MVC, RESTful API, CQRS, React, Angular, jQuery, Java, C++, HTML, CSS.
  • Proficient in using .NET Threading, Delegates, Events, Generics, Collections, Exception Handling, Transactions, Reflection, and Serialization.
  • Good knowledge of SOLID design, OOP, FP, IOC, Data Structures & Design Patterns.
  • I am exploring Web3, Machine Learning/Artificial Intelligence, Crypto/Blockchain, and Internet of Things (IoT) technologies.
  • Eager to learn innovative technologies focusing on delivering reliable business solutions.

Experience

LawPRO (Nimbus) - Toronto, ON

Nov 2021 - Present
Remote | SENIOR SOFTWARE ENGINEER, CONSULTANT
  • Member of Nimbus Consulting Team, building and maintaining LawPRO's TitlePLUS Insurance Service.
  • Back-end development in .NET Core, C#, Go, Lambda, API Gateway, RDS Aurora (MySQL), Okta OAuth2.
  • Front-end development in React with Redux, React Hooks, and MaterialUI.
  • Migrated .NET Core 3.1 to .NET 6, Node v13 to Node v18, and Code Pipeline to GitHub Actions.
  • Created and refactored RESTful APIs using CQRS pattern, MediatR and FluentValidations.
  • Delivered effective User Profile solution, solving the data sync issues between Okta and LawPRO services.
  • Altered and created numerous MySQL stored procedures, improved speed and accuracy.
  • Introduced data aggregation solution for local and cloud-based PowerBI reporting solutions.
  • Provided demos, guidance, mentoring and ad-hoc reports to TitlePLUS Marketing and Client Services teams.
  • Worked closely with TitlePLUS Client Services to plan and design new features.
  • Participated in software releases and regression testing.

.Net Core, CQRS, MediatR, Fluent Validations, React, Redux, MaterialUI, JavaScript, Go, Python, Lambda, S3, Aurora MySQL, DynamoDB, Okta OAuth2, Cognito, Elasticsearch, OpenSearch, SQS, SNS, Secrets Manager, Athena, API Gateway, Swagger, xUnit, GitHub.

Infosys (PwC Global) - Remote | TECH LEAD, CONSULTANT

Aug 2021 - Nov 2021
  • Infosys Consulting Team member, helped build and maintain PwC Global Compliance Service.
  • Front-end development in Angular 10+ with PrimeNG and NgRx.
  • Refactored Angular services API calls to return data to models, avoiding "any" type.
  • Created and refactored RESTful APIs following SOLID and DRY principles.
  • Altered and created numerous stored procedures to work seamlessly with Dapper.
  • Introduced unit testing in SQL Server Database Solution.
  • Provided guidance, mentoring and one-on-one pull request reviews to junior team members.
  • Worked close with Software Architects Team in the planning and design of new

.Net Core, Angular 10, NgRx, PrimeNG, API, TypeScript, Azure SQL, Azure Cosmos DB, Azure Blobs, Azure Table Storage, Azure Key Vault, Dapper, Swagger, xUnit.

FREEDOM MOBILE - Remote | SENIOR SOFTWARE ENGINEER, CONSULTANT

Apr 2021 - Aug 2021
  • Member of Freedom Mobile Team, building and maintaining Freedom Mobile services.
  • Converted numerous API calls to AWS API Gateway with Lambdas, PostgreSQL and DynamoDB.
  • Refactored monolithic back-end solution into microservices-ready solution following SOLID and DRY principles.
  • Created NuGet packages from extracted libraries and made them available on AWS CodeArtifact.
  • Recreated AWS Aurora PostgreSQL database based on existing on-prem SQL Server database using the code-first method.
  • Migrated WCF service (SOAP) to gRPC.
  • Created several CI/CD pipelines with Jenkins and Terraform.

ASP. Net Core, AWS Lambda, AWS CodeArtifact, AWS Secrets Manager, AWS Gateway, RESTful API, EF Core, PostgreSQL, DynamoDB, SQL Server, Jenkins, Terraform, gRPC, SOAP, xUnit.

autoTRADER.ca - Remote | SENIOR SOFTWARE ENGINEER, CONSULTANT

Sep 2020 - Apr 2021
  • One-Source team member, helped build and maintain AutoTrader's One-Source solutions.
  • Successfully created, tested, and released Azure Durable Function with one central orchestrator and two sub-orchestrators to back up and clear old (sold or removed) ads from Cosmos DB, SQL Server, Table Storage, Blob Storage and Search Indexes - cleared more than 4.5 million old entries.
  • Worked on numerous data transformation projects utilizing Functions, Durable Functions, Azure Service Bus, Data Factory, Logic Apps, Azure Storage, Cosmos DB, and SQL Server.
  • Excelled at clearing the tech debt, refactoring, and version upgrades.
  • Created/upgraded several CI/CD pipelines on Azure DevOps with YAML and Terraform.
  • Updated numerous legacy packages and pushed them to the NuGet internal feed.
  • Participated in software releases and regression testing.
  • Fixed several bugs in the front-end React application.

ASP.Net Core, Azure Durable Functions & Functions, Azure Service Bus, Azure Logic Apps, Azure Cognitive Search, Azure Blob & Table Storage, Azure DevOps, ADO.Net, React, NodeJS, NPM, SQL Server, Azure SQL, protobuf.

TOYOTA MOTOR MANUFACTURING CANADA (TUNDRA) - Cambridge, ON | SENIOR SOFTWARE DEVELOPER, CONSULTANT

Mar 2020 - Sep 2020
  • ICS development team member, created, maintained, and troubleshot ASP.NET WEB API, Angular SPA, Win Forms / WPF, and Oracle PL/SQL queries.
  • Replaced error-prone MSMQ services with Azure Logic Apps and Azure Service Bus.
  • Exported frequently used data into Azure Table Storage integrated with PowerBI reports.
  • Setup log error searching using Azure Search.
  • Migrated codebase with changelog history from SVN to Git on Azure DevOps.
  • Created multiple CI/CD pipelines on Azure DevOps with PowerShell, Python, YAML and WiX.
  • Converted legacy DLL files into NuGet packages and created internal feed on Azure Pipelines.
  • Uncluttered Visual Studio solutions by building libraries into NuGet packages.
  • Designed and created Oracle 10G to PostgreSQL migration program with Python.
  • Updated MS Word & Visio documents into Wikis on Azure DevOps.

ASP.Net, MSMQ, Angular, NodeJS, NPM, JavaScript, TypeScript, WinForms, Oracle, NuGet, WiX, Azure Search, Azure Logic Apps, Azure Blob Storage, Azure Service Bus, Azure Table Storage, Azure DevOps, CI/CD, PostgreSQL, Jenkins.

INDELLIENT - Oakville, ON | FULL STACK DEVELOPER, CONSULTANT

Sep 2019 - Mar 2020
  • Member of OSG development team, building and maintaining OSG's integrated solutions.
  • Principal developer in OSG eBilling/eStatement, .Net Core, Razor Pages and PostgreSQL cloud-based (AWS) distributed web application.
  • Created serverless functions with AWS Lambda and Python.
  • Deployed the tools and Web Apps to Amazon EC2.
  • Extensively used jQuery Data Tables for data presentation and manipulation.
  • Helped troubleshoot occasional issues in OSG-maintained solutions on AWS.
  • Initiated unit and integration testing and improved logging services using Serilog.
  • CI/CD with Terraform, Jenkins, GitHub, and AWS.
  • Upgraded and optimized multiple Python ETL packages.
  • Migrated .NET Core and EF Core from version 2.2 to 3.1.

ASP.Net Core, Entity Framework Core, PostgreSQL, DDD, React, jQuery, Vue, Python, Bootstrap, Jenkins, Terraform, AWS Lambda, Amazon EC2, Amazon Cloud Search, Ubuntu, JetBrains Raider, PyCharm, Data Grip.

BOND BRAND LOYALTY - Mississauga, ON | SENIOR SOFTWARE DEVELOPER

Nov 2018 - Sep 2019
  • Ford development team member, building and maintaining Ford Canada's internal sales and service web applications and financial calculators.
  • Helped migrate on-prem SQL Server solutions to Azure and converted SSIS projects into Data Factory.
  • Upgraded time-consuming daily manual data import process from various SQL Server jobs, SSIS packages and custom software solutions to 100% automated solution using Azure Logic Apps, Azure Service Bus, Azure Functions and Azure Storage.
  • Responsible for SynapzeCX FordTube microservices solution built on ASP.NET Core, Identity Server, Angular 4+, OpenID Connect, RabbitMQ, Redis, Elasticsearch, Docker, Kubernetes, Vimeo, and SQL Server.
  • Created migration script to move existing on-prem videos into Vimeo to be consumed by SynapzeCX.
  • Moved code repository from TFS to Azure DevOps and implemented automated builds and deployments.
  • Participated in migrating the existing portfolio project into a DNN-powered solution.
  • Upgraded server-side DevExpress and jQuery sites to Vue.

ASP.Net MVC, Entity Framework, ASP. Net Core, Python, Identity Server, PowerShell, Angular, React, Vue, jQuery, Bootstrap, DevExpress, SQL Server, SSIS, SSRS, Redis, RabbitMQ, Elasticsearch, DotNetNuke.

TITUS INC. - Ottawa, ON | SOFTWARE DEVELOPER

Aug 2018 - Nov 2018
  • Member of Office Add-On development team, a highly collaborative agile team, building ML-powered security solutions for MS Office.
  • Responsible for upgraded Office Addon solution built on ASP.NET Core, NodeJS/TypeScript, React, OpenID Connect, SignalR and Kestrel.
  • Created C++ wrapper for existing ASP.NET Core application running in Linux.
  • Introduced front-end tests with Mocha, Istanbul, and NYC and helped create a private NPM repository.
  • Participated in weekly code quality meetings, displaying and explaining current SonarQube reports.

ASP.Net Core, SignalR, NodeJS, Typescript, NPM, React, SQL Server, Identity Server, Mocca, Chai, Istanbul/NYC, xUnit, MS Office Add-On.

QUESTICA - Burlington, ON | SOFTWARE DEVELOPER

Oct 2016 - Aug 2018
  • Questica development team member, building next-generation Azure-based budgeting and financial platform.
  • Helped architect, design, develop and ship OpenBook, Azure cloud data visualization multitenant product in ASP.NET Core, EF Core, Azure AD, Azure SQL, and Aurelia.
  • Improved application performance using Azure Search and SQL query optimization.
  • Implemented Azure Application Insights to store user activities and error logging.
  • Maintained, upgraded, and refactored legacy budgeting application built with Web Forms and SQL Server.
  • Transferred TFS repositories to Git-based VSTS and introduced continuous integration.
  • Participated in migration of Questica Budget from on-prem to Azure IaaS, worked on data import/export and transformation services using Azure Storage, Azure Logic Apps and Azure Functions.
  • Scheduled data pumping using Azure Web Jobs and SQL Server Job Agent.
  • Worked with complex SQL, Stored Procedures, Triggers, and packages in large databases from various servers.
  • Created and maintained various customized software and data integration services and applications.

ASP.Net, ASP.Net Core, EF Core, CQRS, Docker, Multitenancy, Azure AD, Azure Logic Apps, Azure Search, Aurelia, Azure Web Jobs, TypeScript, SQL Server, SSRS, SSIS, TFS, Azure SQL, Azure Storage, Azure Functions, Azure Application Insights, SQL Server Profiler.

THE HUNT GROUP / THE GIFT CARD GROUP - Mississauga, ON | LEAD SOFTWARE DEVELOPER

Mar 2007 - Oct 2016
  • Consulted with various clients on their software architecture, design and development needs.
  • Contributed to company-wide resource planning, hiring, performance reviews, and client-facing business development.
  • Responsible for cloud-based (Azure) full-stack web development with a mobile-first responsive design.
  • Developed numerous web applications on Azure App Service, windows applications, helper tools, database schemas, stored procedures, finance, and lease calculators.
  • Performed database performance tuning, complex reporting, and migrations.
  • Initiated unit testing, integration testing and security testing.
  • Introduced architectural change into a legacy application: a custom-built Inventory system.
  • Improved code modularity, identified and fixed performance bottlenecks, and addressed security concerns.

ASP.Net, AngularJS, SQL Server, Azure SQL, Azure Logic Apps, Azure Functions, Azure Storage, Azure Service Bus, Azure App Service, Azure Application Insights, Java, Python, PHP, MySQL, Win Forms, jQuery, Bootstrap, SSIS, SSRS.

CRYPTOLOGIC - Toronto, ON | C++/MFC CLIENT SIDE SOFTWARE DEVELOPER

Jan 2006 - Mar 2007
  • Member of the client-side poker development team
  • Improved user's experience by adding additional functionality to existing program according to provided specifications.
  • Fixed a major bug in existing 2D engine code, in incorrectly implemented GDI functions.
  • Re-implemented several potential string format overruns that might have been exploited.
  • Worked closely with QA Team in ironing out issues and bugs.

SELEP - Toronto, ON | C++ DEVELOPER

Jun 2005 - Jan 2006

PLAVOSLOVO - Belgrade, Serbia | CO-FOUNDER / C++ DEVELOPER

May 2001 - May 2005

SOFT-TRAIN INSTITUTE - Toronto, ON | PROGRAMMING INSTRUCTOR

May 1999 - May 2001

SAVILLE SYSTEMS - Edmonton, AB | C++ SOFTWARE DEVELOPER, CONSULTANT

May 1998 - May 1999

KM HITECH - Vancouver, BC | C++/JAVA/SMALLTALK DEVELOPER

Jul 1995 - Apr 1998

Education

1990 - 1994 | UNIVERSITY OF BELGRADE - FACULTY OF MATHEMATICS

Bachelor's degree in mathematics Belgrade, Serbia


Skills

PROGRAMMING

C# • JS/TS • GO • C/C++ • Python • Java • Git • Rust • SQL • OOP • SOLID • Design Patterns • Data Structures • Bash • Powershell

FRONT-END

React • Angular • Flutter • Redux • NgRx • WPF • HTML/CSS • HTMX • MUI • PrimeNG • MAUI • AvaloniaUI • RazorPages • WebForms • SVG • Markdown • LaTeX • AsposePDF • Adobe

BACK-END

.NETCore • ASP.NET • RESTful API • MVC • Docker • Node/Express • WCF/SOAP • gRPC • Django • Swagger • OAuth • Spring • WebAssembly

.NET

Threading • Delegates • Events • Generics • Collections • Exceptions • Transactions • Reflection • Serialization • Entity Framework • Dapper • LINQ • CQRS • MSMQ • IoC/DI • MediatR • WinForms • WebForms • Fluent Validations • SignalR • Identity • xUnit • nUnit

DATABASES

SQLServer • Azure SQL • MySQL • Oracle • PostgreSQL • CosmosDB • DynamoDB • SQLite • SharePoint • MongoDB • Firebase • Redis • RavenDB • neo4j • CouchDB

CLOUD/VIRTUALIZATION

Azure • AWS • GCP • Firebase • Docker/K8s • DigitalOcean • Linode • VMware

MS AZURE

Functions • DurableFunctions • ServiceBus • KeyVault • Table Storage • Blob Storage • Queue Storage • AD • Application Insights • Cognitive Search • DevOps • Api Management • AppService • DataFactory

AWS

IAM • EC2 • S3 • Lambda • SQS • SNS • Aurora • EventBridge • SecretsManager • CodePipeline • CloudWatch • StepFunctions • API Gateway

DevOps

GitHub Actions • AWS CodePipeline • Azure Pipelines • Artifacts • NuGet • NPM • Ansible • Terraform • Jenkins • WiX • Cake

INTERESTS

GraphQL • Rust • Elixir • Erlang • Zig • Clojure • OCaml • Kotlin • WebAssembly


Projects

User Profile & User Sync (LawPRO/TitlePLUS)

.NET Core • AWS • SecretsManager • API Gateway • Lambda • SQS • SNS • SES • Okta • Aurora (MySQL) • GitHub • GitHub Actions

Solved the issue of mismatched user profile information between LawPRO and TitlePLUS by introducing the user changed event Okta hook. Okta calls AWS API Gateway that invokes Lambda -> SQS -> Lambda -> DB update -> SNS flow. I also designed and created the User Profile section in the front-end React app that allows users to update their information.

Custom Forgot Password / Username (LawPRO/TitlePLUS)

.NET Core • AWS • SecretsManager • API Gateway • Lambda • SES • Okta • Aurora (MySQL) • GitHub • GitHub Actions

Created the custom forgot password or username service as the LawPRO users have pre-assigned user names. The service also allows users to update their existing recovery questions and answers. I used React for the front end and AWS and .NET Core for the back end.

OneSource Data Cleanup (autoTRADER.ca)

ASP.NET Core • Azure Durable Function • Azure Function • EF Core • Azure Cognitive Search • Redis • Azure DevOps • Terraform

AutoTrader had many old and unused orphaned assets, primarily images and videos, stored in Azure Blob Storage, Azure Table Storage, and Cosmos DB. I worked on a Durable Function that found those assets, backed them up to on-prem storage, and purged them from the Azure storage. This Durable Function had one central orchestrator and two sub-orchestrators. After the completion, we backed up and deleted more than 4.5 million orphaned images and videos from the storage. We also cleared several million entries in Azure Search Indexes. Unfortunately, I can't reveal the dollar amount saved.

OSG eBilling/eStatement Solution (Indellient)

ASP.NET Core • Web API • Razor Pages • PostgreSQL • EF Core • Npgsql • ASP.NET Core Identity • JavaScript • jQuery DataTable • VueJs • Redis • AWS • GitHub • Jenkins • Terraform • nUnit • Jira • Slack

OSG's eBilling/eStatement solution is designed to extend beyond paper, providing a data-driven electronic presentment solution that simplifies the delivery process, reduces costs, and improves efficiency. This includes:

  • An online portal for accessing accurate replicas of end-customer's bill/statement and an archive with custom retention periods
  • Seamless interface integration
  • Self-service administrative capabilities
  • Dynamic reporting and search capabilities
  • Security and compliance with industry standards to protect sensitive information

SynapzeCX - User Asset Upload (Bond Brand Loyalty)

ASP.NET Core • Web API • Angular • TypeScript • RxJS • SQLServer • EF Core • Identity Server • Redis • RabbitMQ • Docker • Azure DevOps • Mocha • Elasticsearch

SynapzeCX is Bond's flagship microservices platform built with ASP.NET Core and Angular 7. It's a message-based distributed application with many modules. I worked on user asset upload, upload approval and upload publishing, which are parts of the Resource module. In the process, I created required tables in SQLServer, Web APIs on the server, routes, services, directives and actual pages on the client. I collaborated closely with Design and QA teams using Jira in an agile environment. I created Powershell tool for one-click build and local debug run used by everyone in the group.


FordTube Migration (Bond Brand Loyalty)

ASP.NET Core • Postman • Fiddler • SqlServer • RabbitMQ • Redis • Data Structures • Threading

FordTube Migration is an application I created to migrate approximately three thousand videos from deprecated FordTube web application to the SynapzeCX platform for Ford and Lincoln. The script would scrape existing videos and relevant metadata from the old site and upload them to the SynapzeCX Resource module using existing APIs. This project also included small web redirection app, so existing links get translated into the new platform.


ConsumerLink Reporting Upgrade (Bond Brand Loyalty)

ASP.NET MVC • VueJS • WebPages • DevExpress • SQLServer

Upgraded existing ASP.NET WebPages based reports when jQuery and DevExpress updates made them unusable. I used ASP.NET MVC 4.6 with Vue on the client and restored reports to their original state. Well, I added a few additional themes.


P2P Knowledgebase Test (Bond Brand Loyalty)

ASP.NET MVC • jQuery • Entity Framework 6 • SQLServer

I updated the current P2P platform by creating a Knowledgebase Test, a trivia type multiple answers test. It has two parts, customer test and admin reporting and test creator side. I used ASP.NET MVC 4.6 and jQuery, added additional Area and, with the help from Design and QA teams, completed the task on time.


Modern Office Add-On (Titus Inc.)

ASP.NET Core • Kestrel • SignalR • OpenId Connect • NodeJS • TypeScript • Gulp • NUnit • Mocha • Istanbul • NYC • VSTS • SonarQube

Modern Office Add-On is visible part to Titus Data Classification solution. It's created with TypeScript as Node app, running inside the MS Office or the Office 365. The app accesses back-end connections and ML classification software thru installed Windows service, running Kestrel web app built in ASP.NET Core, with OpenID Connect token authentication and SignalR for communication with Node app. Test coverage was 100% on the back-end and 94% on the front-end.


OpenBook (Questica)

ASP.NET Core • EF Core • ASP.NET Identity • Azure SQL • Aurelia • Gulp • Bower • Moq • NUnit • Jasmine • Swagger • Azure • SASS • VSTS

Questica OpenBook software can help you build transparency and trust by communicating your data visually. Present financial and non-financial data with descriptive text, informational pop-ups, charts, and graphs. The searching, filtering and sorting tools allow you to find the right information faster and discover information that was once hidden in a spreadsheet. It is a multitenant SPA application hosted on Azure. Backend API is build using CQRS and Repository patterns.


Divide by Zero Bug Fix (Questica)

Azure SQL • Azure • SQLServer • SSMS Query Profiler

Investigated and fixed divide by zero bugs in SQLServer stored procedures. The error occurs when NULL values are converted to 0 for various calculations in Questica Budget Software. The client complained about the length of budget creation after switching to Azure from local hosting.


Salaries Baselines/Snapshots (Questica)

ASP.NET 4.6.2 • WebPages • WebAPI • jQuery • SQLServer • Reporting Services • SQLServer Data Tools • CSS • TFS

Feature request for the Salaries module of the Questica Budget application. Created 30+ de-normalized snapshot tables and more than 40 stored procedures in order to capture salaries data. Updated UI to support adding snapshots. Created several comparison reports and subreports. Deployed reports to development and production environments. Optimized queries and stored procedures.


Financial Statements (Questica)

ASP.NET 4.6.2 • WebPages • WebAPI • jQuery • SQLServer • CSS • TFS

Financial Statements is a module for Questica Budget application that offers the ability to configure and generate financial statements, including Income Statements, Balance Sheets, and Cash Flow Statements. All three statements include both a current statement and the ability to project forward using forecast years. With a new set of accounts for assets, liabilities and equities, this new module helps give a complete picture of your current financials and the road ahead. As a team member, I created entities, screens, menu items, reporting entities, reports, security bits, logging and unit tests for Cash Flow Statement.


Order Direct (The Hunt Group)

ASP.NET 4.5 • MVC • jQuery • Materialize • Mandrill • Azure Blob Storage • Azure App Service • AzureSQL • GitHub

Order Direct is a Web application created to help our clients with easier customer/employee rewarding with gift cards. Each client can manually enter a single recipient, or they can upload Excel, CSV or XML file with a list of recipients, gift card type, and reward value. They have access to financial reporting, production status and returned or undeliverable shipments. The web application was created in ASP.NET MVC 4.5 (hosted on Azure as App Service) and Azure SQL as a backend database. App uses Azure Blob Storage for uploaded files. Admin section is used by THG staff for fulfillment, shipping and client administration. Transactional emails are sent with Mandrill API and front-end uses Materialize library.


Tim Hortons & Boston Pizza Custom Gift Cards (The Hunt Group & Buy-A-Tab)

ASP.NET 4.5 • MVC • FTP • Azure App Service • Azure SQL • Dapper • SQLServer • GitHub

Completed this project with ASP.NET MVC 4.5 to accommodate client's need for printing, fulfillment, activation and shipping of custom gift cards. The project was divided into several parts: fetching data and custom images, data manipulation for upload to the database, upload of images to the local database accessible by the printer, cards QA, data upload to client's FTP for activation, fulfillment, shipping and invoicing. Card proxy numbers were pre-loaded in our database. We used Azure App Service for hosting and Azure SQL with Dapper for data. Due to a printer limited networking abilities; we used local SQLServer 2008 for temporary image storage.


Internal Inventory App (The Hunt Group)

MS Access • SQLServer • ASP.NET 2.0, 3.5, 4.0, 4.5 • SSRS • Classic ASP • MVC • WebAPI • JS • AngularJS • jQuery • Bootstrap • GitHub

Maintained and updated internal Inventory System based on SQLServer 2000 and MS Access. I played a key role in the successful migration of our database from SQLServer 2000 to SQLServer 2008 and later to SQLServer 2012. In the same process, I completely redesigned front-end GUI built in MS Access to a friendlier user experience using ASP.NET WinForms. During the upgrade, I created and optimized over 200 stored procedures and redesigned over 50 reports. Shipping/receiving tasks are 30% more efficient after adding barcode and QR Code enabled products tracking. In 2012, I converted the whole system from client/server type application to a 100% web-based system with no loss in productivity. I upgraded back-end to ASP.NET API web service and front end to the AngularJS app.


Dell Advantage (The Hunt Group & Dell Canada)

RedHat • PHP 5.X • MySQL • Apache • Bootstrap • jQuery • Mandrill • GitHub

I created the exact clone of the wab application hosted on e-bay. Dell Advantage members get 5% back on a Dell ePromotional Card for all Dell.ca purchases over $100. This application was created with PHP and MySQL. We used Mandrill for transactional emails. Existing data was provided by several Dell departments and was combined into one single source.


Rogers Promotions (The Hunt Group & Rogers Canada)

RedHat • JBoss • Java 5, 6, 7 • Spring 3.x, 4.x • Hibernate • PostgreSQL • Bootstrap • jQuery • Mandrill • GitHub

I designed, architected, developed and helped maintain online Rogers Loyalty Reward program management web application. We built it in three sections; end-customer for current status, Rogers Admin for Rogers Marketing Team reporting and data insights and THG Admin for shipping, warehousing and invoicing. It handled the daily upload of about 100K de-normalized CSV records into our on-premise PostgreSQL DB. I created an ETL process for import into staging tables and transform data into appropriate tables. The program would email Rogers IT detailed explanation when it encountered inaccurate data. Designed and developed a various social network and email integration packages using provided APIs from Twitter, Facebook, Google and Mandrill.


City of Calgary Rebate (The Hunt Group & City of Calgary)

RedHat • JBoss • Java • Spring • Hibernate • PostgreSQL • Custom CSS • jQuery • Mandrill • GitHub

For many years, Calgarians could get a $50 rebate from the City of Calgary for purchasing a WaterSense toilet. Unfortunately, the program is closed as of August 15, 2016. Residents could determine eligibility before applying based on the Postal Code, number of toilets already replaced in their address and the toilet model (SKU). We provided extensive reporting to the City of Calgary rebate program.


StoreFrontDirect (The Hunt Group)

Magento • PHP • MySQL • CSS

StoreFrontDirect is the end-to-end eCommerce solution that has all the online sales prerequisites in one unified platform. It starts with a robust StoreFront designed for branding, usability and adaptability to the pace of your business. Hosted back-office services from logistics to payments processing to settlement - and advanced first of its kind analytics - are embedded to unlock the full potential of your business. Everything is easy to initiate and designed to scale with your company.


Property Management Social Web App (Side Project)

React • Flux • Firebase • Jest • Digital Ocean • SASS • Webpack • react-cli • npm • VSTS

This is a web app where managers/owners can post their properties for rent, upload pictures and create available for viewing time slots. Customers can view, fill an online application and set an appointment. Front-end was created with React and Firebase was used for the back-end. The project is currently in beta and is hosted on Digital Ocean.