ABOUT ME

a little about me.
Image

“ I do not fear computers, I fear the lack of them! (Asimov) ”

Travis is an accomplished software developer, architect, and periodic speaker. A tech enthusiast and blogger, Travis finds his niche in architecting and working with teams to compose highly automated service-oriented systems both in the cloud and on-premise. Travis currently works as a Principal Software Engineer for SPS Commerce, the world's largest retail network. He has a strong focus on continually learning new architectures and development patterns across different stacks and technologies, but has a special place in his heart for DevOps and making the software development lifecycle (SDLC) more efficient.

Name

Travis Gosselin

SKILLS & INTERESTS

what i'm interested in.

Development

.NET & .NET Core
Java
Node, TypeScript
NPM, Angular, React
Relational Databases, NoSQL, Queues & Streams

Architecture

API Design
Synchronous & Asynchronous Workflows
DevOps, CI/CD, 12 Factor App, Automation
Bounded Contexts, Data Domains & Microservices
Solution Architecture

ABSTRACTS

presentation and speaking topics

Unleashing Deploy Velocity with Feature Flags

A lot of development teams have built out fully automated CI/CD pipelines to deliver code to production fast! Then you quickly discover that the new bottleneck in delivering features is their existence in long-lived feature branches and no true CI is actually happening. This problem compounds as you start spinning up microservices and building features across your multi-repo architecture and coordinating some ultra-fancy release schedule so it all deploys together. Feature flags provide you the mechanism to reclaim control of the release of your features and get back to short-lived branches with true CI. However, what your not told about feature flags in those simple "if/else" getting started demos is that there is an upfront cost to your development time, additional complexities and some pitfalls to be careful of as you begin expanding feature flag usage to the organization. If you know how to navigate these complexities you will start to unleash true velocity across your teams.

In this talk, we'll get started with some of the feature flagging basics before quickly moving into some practical feature flagging examples that demonstrate its usage beyond the basic scenarios as we talk about UI, API, operations, migrations, and experimentation. We will explore some of the hard questions around "architecting feature flags" for your organization.

Mono-repo or Multi-repo? Do I Need to Choose Just One?

Over the last few years, the dichotomy over Mono-repo vs Multi-repo approaches to source control has trended in the tech community and now heavily in the organization. If large organizations like Google and Facebook have been using mono-repos for a decade then shouldn't I be using them too? Like everything in software architecture, the answer is: "it depends!". While there are significant advantages to mono-repo style source control, there are significant disadvantages as well. Some developers swear by one approach over another, but in reality, you probably have different architectures that naturally would benefit from each style. Understanding when to use each approach over another is key to ensuring that you don't end up continually expanding and contracting your repository granularity without good reasons.

In this talk, we will move through a strong comparison of a mono-repo vs multi-repo approach. Each one represents a different set of values that may more closely align with your team or organization. We will cover the trade-offs, some workarounds and architectural considerations for helping you choose the correct style for your teams and projects.

Distributed Teams: Asset or Liability?

Have you noticed how the concepts of distributed computing and the cloud have changed the way we build software solutions over the last decade? In the same ways that distributed computing has been going through a renaissance, so have the teams that have been building the software. Distributed teams, like distributed computing, are becoming very popular, if not the standard in a lot of organizations. Whether you see this as an asset or liability, there are an immense number of advantages that it can provide; that is if you can navigate the architecture of working in and leading a distributed team!

In this talk, we will explore the trend of distributed teams in software development, highlight the advantages, and prepare you for some of the challenges ahead with it.

Getting Started with Azure Pipelines

Azure Pipelines is a DevOps cloud-hosted tool from Microsoft that enables you to build efficient and streamlined CI/CD build and deployment pipelines for just about anything. Contrary to its name, it is cloud-agnostic and can provide your small or large team with a very flexible and inexpensive way of delivering your software with a high degree of consistency.

In this demo driven intro talk, we will dive into a brief overview of Azure DevOps and use Pipelines to build a CI/CD pipeline to deploy a service to Azure Cloud from GitHub. We will evolve our pipeline as we add in immutable versions, blue/green style deploys, containers, YAML, and make sure we get all the Pull Request status checks integrated as well. Then we will quickly convert it over to deploy into AWS!

BLOG

records of a software developer.

ASP.NET Bright Future (4.5.2 & vNext)

 .NET 4.5.2 If you have not taken a look yet, be sure to check out the .NET Framework 4.5.2 release. It has a couple of new things to note: http://blogs.msdn.com/b/dotnet/archive/2014/05/05/announcing-the-net-framework-4-5-2-release.aspx I was initially excited about the QueueBackgroundWorkItem method on the...

Read More

Bundling Resource Files to JavaScript

The following is a promotional demo of the course I released on Pluralsight at the end of 2013. The course covers everything from introductions into getting started with ASP.NET Bundling all the way to architectural considerations as well as it...

Read More

JavaScript StackTrace

A little help in deciphering JavaScript errors sometimes would be very useful!!! Today after implementing a nice little client-to-server JavaScript exception logging service, I realized having something that resembles a stack trace would be so awesome. Easiest method I found...

Read More

Bundling with SourceURL for Dynamically Loaded Scripts

The Problem In today’s world of large amounts of client side scripts, you may find yourself dynamically loading some of the scripts based on modularity or some other business related requirement. For example, if you give the user the option...

Read More

New Pluralsight Course: ASP.NET Bundling & Minification

In the 3rd quarter of 2013 I began a slightly different path in my development career and began working on a hardcore developer training course on ASP.NET Bundling and Minification, under the banner of the Pluralsight training website. I'm happy...

Read More

Pluralizing in the .NET Framework

It is always statically frustrating / tedious and awful code you need to write when you have to pluralize or singularize a word. What is even worse is when people don’t bother doing that and just leave the singularized word...

Read More

TFS – Deleting Folders without “Getting Latest Version”

I find it such a pain in TFS (2012 & Others) to have to grab the latest version of a folder in order to delete the folder. The larger issue comes into play if you have a large set of...

Read More

Web API Signatures with Multiple Complex Parameters

I’ll qualify this post up front by say it is probably going to be more of a “rant” than most. That being said, I am very big fan of ASP.NET Web API, and am looking forward to see the enhancements...

Read More

Elmah with Programmatic Configuration

If you are not familiar with the Elmah library, that’s okay, it’s a really basic concept. Simply put, it’s a lightweight easy to use library that integrates with ASP.NET that will capture all uncaught errors and store them for you...

Read More

Meetup: .NET Harmony with EF Code First, ASP.NET Web API, & OData

This week I will be presenting at a local .NET User Group meeting in Barrie, ON (www.northoftoronto.net) some of the efficiency's to be gained out of the latest from Entity Framework Code First, ASP.NET Web API, and OData (and don't...

Read More

EMPLOYMENT

my experience.
SPS Commerce - Software Engineer - January 2016 - Now
Principal Software Engineer, www.spscommerce.com

SPS Commerce offers as SaaS platform for seamless integration and EDI between retailers and suppliers (trading partners). Once on the platform customers can take advantage of products from fulfillment, sourcing, assortment, and analytics. As a Principal Software Engineer on the Analytics development team we build applications to drive the retailer / vendor in category management processes and insight using the latest technology and cloud infrastructure. Day-to-day involves architecturally designing a pluggable analytics framework that allows for client specific customization, that is both scalable and repeatable integrated into Amazon Web Services. Agile processes, automated testing and continuous delivery are essential components to its success.

Pluralsight - Technical Author - September 2013 - Now
Author for Developer Training Courses, www.pluralsight.com

As a slightly new chapter in my career, I took the opportunity to become a published author, and began building hardcore developer training material and videos for the popular "Pluralsight" website. This was a new type of challenge for me that I enjoyed very much, and the Pluralsight author community were very welcoming and helpful.

I continue to work on new material and content as a subject matter expert (Author Profile).

•Development of all aspects of course content including outline, flow, testing material, demos, and presentations.
•Acted as subject matter expert and technology specialist for course design.
•Narrating and editing of all courses.

COURSE RELEASED: ASP.NET Bundling, Minification & Resource Optimization
A complete look into the bundling and minification framework available in the ASP.NET web optimization library. Learn how to efficiently optimize your website resources and assets without comprising the way you want to develop. ASP.NET makes bundling and minification incredibly easy and leaves no reason not to ensure your web application is fully optimized.

ToolBox Solutions - Architect - July 2012 - December 2015
Senior Solutions Architect, www.toolboxsolutions.com

As ToolBox took a more active role in leading the Category Management industry with the revolutionary web software we had been building, I began in the lead role in architecting a re-usable, customize-able and distribute-able Web Reporting Framework for consumption within the companies own multiple development teams. The challenges in this framework were quite different than most, with the development of custom virtual pages, embedded resource dependency manager, and several other deep ASP.NET customization’s to ensure this product would be very easy to distribute and customize. This product would soon become ToolBox’s flagship product, and bring faster data insights to the customer like never before with development times cut in half. This would be the first of a few key innovative products, in which I continue to act as Senior Architect to today.

•Development of re-usable, customize-able, enterprise reporting framework(s)..
•Core feature development in .NET 4.0, 4.5 with C#, SQL Server 2012..
•Use of latest technologies where possible to bring the development and customer experience to a max..
•Administrator for TFS 2008, and migrations through to TFS 2010 and TFS 2012..
•Development of Technology Roadmaps for the dev team(s)..
•Architectural designs from Client side frameworks such as Backbone, AngularJS, Knockout all the way through the Server Data Access Tier including Web Services, Web API, MVC, WCF, and Entity Framework..
•Developed and coordinated integrated development team code reviews..
•Introduced branching and merging strategies in TFS 2012 for supporting multiple active release versions of an application..
•Continued work as apart of the companies Innovation Team for Research & Development..

FRIMP - Developer - January 2009 - August 2013
Contract Developer, www.frimp.me

FRIMP is an online networking and social dating web application designed to be fun through a series of small games. Members create FRIMP games and invite people to play for a chance to win a date with the prize Fringle player. The entire experience is brought to the players through a fun interactive interface that resembles a similar style to existing social networks.

•Lead contract developer for web application architecture, design, and implementation.
•Implementation of highly interactive interface in HTML and JavaScript backed by ASP.NET.
•Heavy JavaScript and single-page application architecture and design patterns.
•Integration with FaceBook Graph API for marketing and socializing.
•Highly service oriented architecture ready to scale horizontally.
•Agile and Kanban style development processes used.

ToolBox Solutions - Developer - May 2009 - July 2012
Senior .NET Developer, www.toolboxsolutions.com

ToolBox Solutions are very good at delivering high-quality analytics that meet any reporting need. Clients like Loblaws, Petro-Canada, Nestle Waters, demanded the highest quality work in the least amount of time. Reporting systems were built quickly and efficiently in a small team scenario, which allowed each team member to be adaptable and step into anyone’s shoes in a moments notice. Precision and performance was also a requirement as some reporting systems involved working with Billion’s of rows of reporting data all driven from a SQL Server architecture.

•Development of corporate reporting system containing billions of records of data.
•Development of core features in .NET 3.5+ and C#.
•Development of enhanced client features developed in JavaScript for maximum client side performance.
•Development and support of Sharepoint sites, and automated installation process.
•Created database architectures and designs in SQL Server 2005 and SQL Server 2008.

Process Driven - Developer - October 2008 - June 2009
Intermediate .NET Developer, www.processdriven.net

Process Driven are experts at building feature rich internet applications which are user friendly and fulfill business needs. They leverage client side scripting toolkits to animate, minimize download times, load features on demand, connect to live data sources, create smarter controls, give better user feedback, and provide a visually compelling user experience.

•Development of corporate reporting system containing a full feature set of exports, customizable parameter selections, and performance tuning for maximum experience.
•Development of core features and enhancements using .NET 3.5 and C#.
•Development of automated application to create specific vendor files on a weekly basis for over 150 different vendor types.
•Customization of vendor Sharepoint sites (programmatic use of WSS 3.0 and Sharepoint 2007).
•Maintained and supported Microsoft Team Foundation Server (TFS) to allow for a secure code in a multi-team environment.
•Created database architectures and designs in SQL Server 2005.

Multiplied Media Corporation - Developer - December 2006 - October 2008
.NET Developer, www.poynt.com

MMC’s core development pertained to building highly scalable local search clients available on instant messaging clients and portable devices. I worked as part of a highly agile team that used the latest Microsoft technologies to support the development of “Poynt”. Responsibilities and contributions to the team included:

•Development of core features and enhancements to the system using .NET 3.0 and C#.
•Development of administration system for deployment with the platform using ASP.NET and AJAX Extensions.
•Consumption of external XML data to provide seamless integration of live data.
•Dynamic virtual mapping technology scripted to allow integration of 3D Maps with live data.
•System made 100% scalable via the use of modules broken down using Windows Communication Foundation.
•Maintained and supported Microsoft Team Foundation Server (TFS) to allow for a secure code in a multi-team environment.
•Upgraded TFS to 2008, and scripted continuous integration tasks, automated builds, and deployments via MSBuild and Microsoft SMS Installer.
•Created database architectures and designs in SQL Server 2005.
•Developed .NET User Group web solution created with ASP.NET and AJAX: www.northoftoronto.net

BT Web Design - Owner / Developer - March 2006 - July 2008
Web Developer, www.btwebdesign.ca

BT Web Design’s core business involved the creation and hosting of small business and personal web solutions. As the core developer of BT Web Design, solutions and architectures were all implemented by myself in a fast paced iterative cycle. Most often sites were developed using open source technologies including PHP, MySQL and JavaScript.

•Responsible for end-to-end iteration with clients of premium web solutions from concept to implementation.
•Maintenance and support of web servers and applications to the client.
•Cost analysis, benefit structure outline, and alternatives provided and evaluated to the client.
•Solutions and architectures implemented using PHP, MySQL, JavaScript, HTML, CSS, XML.

Georgian College - Support - May 2006 - August 2006
Library Commons Navigator, www.georgianc.on.ca

As a Library Commons Navigator I was responsible for handling the first level of tech support at the Georgian College Library. This included many responsibilities from customer care to technical support.

•Support and troubleshooting with wireless network infrastructure.
•Administrative management of Georgian College passwords.
•Application and customer care support to staff and students.
•Rollout of new PC’s to replace existing legacy devices.

Overview

My employment experiences range from consultation and contract development to corporate and enterprise architecture. No matter the work, I always enjoy the challenge and opportunities that come with working on new software solutions.

EDUCATION

my academias.

Overview

While formal education backing is important, the life of a software developer really requires ongoing education as you continue to grow and learn new technologies and design approaches every single day.

Microsoft Certified Technology Specialist- 2011
TS: Microsoft .NET Framework – Application Development Foundation (Exam #70-536)

•Developing applications that use system types and collections.
•Implementing service processes, threading, and application domains in a .NET Framework application.
•Embedding configuration, diagnostic, management, and installation features into a .NET Framework application.
•Implementing serialization and input/output functionality in a .NET Framework application.
•Improving the security of .NET Framework applications by using the .NET Framework security features.
•Implementing interoperability, reflection, and mailing functionality in a .NET Framework application.
•Implementing globalization, drawing, and text manipulation functionality in a .NET Framework application

www.microsoft.com

Microsoft Certified Professional- 2009
TS: Microsoft .NET Framework 3.5, ASP.NET Application Development (Exam #70-562)

•Configuring and Deploying Web Applications
•Consuming and Creating Server Controls
•Working with Data and Services
•Troubleshooting and Debugging Web Applications
•Targeting Mobile Devices
•Programming Web Applications

www.microsoft.com

Georgian College of Applied Arts and Technology- 2005 - 2008
Computer Programmer / Analyst, CO-OP Program – Advanced 3-Year Diploma

•Graduated top of the class (94% avg. over 3 years).
•Final class included building of a custom web application created in ASP.NET and AJAX driven by SQL Server 2005: www.thorntontigers.ca

www.georgianc.on.ca

“ Think my experience can help you? Contact me anytime!”

CONTACT ME

do not hesitate!
Captcha Image

Located in Toronto, ON, Canada

Toronto, ON, Canada