David Mosher

David Mosher

Software, Design, Music in Ottawa

About

I am a Canadian Software Developer, Designer, Musician, and Artist from Ottawa, Ontario.

A seasoned Full-Stack Engineer specializing in high-performance frontend web application architecture and pragmatic test-driven development.

I enjoy wearing many hats and typically find myself operating as Tech Lead, Architect, or Solver while roaming in between the worlds of Design, Frontend, and Backend software engineering.

Side Projects

2013

A fun toy app that lets you build and share links to a loadout for the turn-based strategy roleplaying game "The Banner Saga".

Speaking

2015
Winnipeg, MB

As a community of developers, we need to place a priority on seeking interdependence instead of independence; in our technology choices, our hiring practices and the way we interact with team members.

Creating a healthy team begins by putting everyone on a level emotional playing field; we are all broken in one way or another and the first step to eliminating unhealthy team environments is figuring out how to admit that honestly.

If we are to move forward together we need to talk about the hard things: how to cultivate empathy, when to speak up, when to stay quiet, how to build trust, and how to handle conflict without imploding.

2012
Columbus, OH

Browsers: The Final Frontier. The most volatile programming platform the world has ever known. You're a seasoned engineer who has mastered the art of server-side dev. You've conquered .NET, Java, and many more.

You know a little bit about the strange new world of client-side development and you'd like to take your understanding to the next level. Good! Our mission: to explore the implementation details of the Browser, HTML, CSS, and JavaScript; to examine the tools and techniques that will help you boldly go where few have gone before, from Hacker to Front-End Engineer.

Writing

2020

Music composition and production is a large part of my life outside of software development, so much so that I often find myself thinking of ways to draw parallels between the two. One such parallel that has stuck with me over the past 6 months or so is the concept of the missing fundamental.

2019

Thinking of web applications in terms of state machines is not a new idea; in fact, it has become so popular in the past few years that teams are spending increasingly more time breaking down their application into states managed by front-end frameworks.

2018

The phrase "Software Consulting" generally evokes feelings of praise or disdain, or perhaps both depending on the circumstances. As consultants, we are often positioned as experts and typically engaged during times of crisis or uncertainty; so it should come as no surprise that our ability to deliver in the midst of that environment is the primary measure of our effectiveness.

Awards

2020
The MVP Award, SurveyMonkey Engineering from Robin Ducot, CTO, SurveyMonkey

The MVP Award is given to the person with the most votes across all of the SurveyMonkey Engineering Team Awards categories, as voted on by peers.

Features

2013

Some would say that the browser is the most volatile development platform the world has ever known. If you’re a client-side developer, understanding how browser internals work can help you both make better decisions and appreciate the justifications behind many development best practices. In one of the best talks this year, David Mosher takes you through how browsers parse and render your pages.

Work Experience

2020 — Now
Ottawa, Canada

Strategic Partner on the Engineering Productivity team. Providing leadership, guidance, and delivery on initiatives designed to improve Developer Experience with a focus on Internal Tools, CI/CD Systems, Knowledge Management, Documentation, Mentorship and Onboarding. NodeJS, React, GraphQL, Ruby, and Python.

2014 — 2020
Saskatoon, SK | Detroit, MI | Columbus, OH

Consulting and delivery of working software across a variety of industries using JavaScript, Ruby, Python, AWS, and Heroku.

2010 — 2014
Saskatoon, SK

Consulting with a focus on Rich Client application development using JavaScript, JasmineBDD, BackboneJS, KnockoutJS and Java Web Services.

Built rich prototypes and applications using Backbone.js, Knockout.js, HTML5 localStorage and CSS3. Optimized client-side performance of Enterprise Java applications (Struts2, SpringMVC). Facilitated User Testing sessions to solicit feedback on prototypes.

Developed JavaScript testing patterns using JasmineBDD and trained teams on their use. Implemented JavaScript module patterns using asynchronous script loading.

Education

2005 — 2007
Saskatoon, SK

Computer Systems Technology is a comprehensive 2 year Diploma program covering development, planning, and implementation of web and client software.

2000 — 2001
Desktop Publishing Specialist at Heinze Institute of Applied Computer Technology
Saskatoon, SK

I studied Graphic Design during a diploma program that covered traditional and digital page layout, prepress, and design utilizing Adobe and Macromedia application suites.

Twitter
GitHub