Brian Uptagrafft Photo

Brian Uptagrafft

Spokane, Washington
brianu@hey.com

Hi, I'm Brian.

In over 17 years as a software dev I've worked with a plethora of technologies across web, mobile and desktop alongside teams of all skill levels.

What I've come to realize in that time is that my best qualities come in a few forms:

  • I'm good at jumping into unfamiliar technologies and getting up to speed quickly
  • When working on a team I have a passion for making others more productive. Whether teaching, building tools, or helping architect solutions, I like to be a force multiplier
  • When evaluating situations, I'm good at looking at the abstract and bigger picture and not just the immediate problem at hand

Current Tools of the Trade

Languages
  • C#
  • Typescript / Javascript
  • Sass/Less
  • SQL
  • Dart
Frameworks
  • Asp.Net
  • React / Angular / Vue
  • Entity Framework
  • Flutter
  • Firebase
Tools
  • Visual Studio
  • VS Code
  • Azure
  • Azure DevOps / GitHub
  • Docker / WSL

Time Spent at Work & School

IntelliTect
January 2019 - Present
Senior Software Engineer & Technical Lead
  • Serve as a tech lead and individual contributor on various projects for customers ranging from enterprises to startups
  • Provide tech and software architecture guidance both to customers and to more junior devs under my charge
  • Rapidly ramp up to become proficient with unfamiliar technologies
  • Years of experience working remotely as part of a geographically and culturally diverse team
World Wide Group, LLC
May 2016 - December 2018
Division Supervisor
  • Worked directly with CEO and stakeholders to ensure our website and mobile apps met the needs of the company and our customers
  • Managed a team of 4 full-time developers and 1 remote contractor
  • Provided training, guidance, advice and code reviews for other devs
  • Remained directly involved in development in additional to supervisor duties, mainly as a software architect
World Wide Group, LLC
Dec 2005 - May 2016
Senior Developer
  • Did full stack development using AngularJS, Typescript, Asp.Net MVC, Entity Framework and Sql Server
  • Worked side-by-side with graphic designers and other non-technical staff to ensure customers are happy software we build for them
  • Took the lead on keeping up on technology changes and implementing new tools into our development process
AZ-104 Certification
2022
Eastern Washington University
2008
Management Information Systems (97% complete)

97% complete? What's that all about? Well, in 2008 I...

  • Had already been working full time as a software engineer for a few years (a better paying job than my degree would have afforded me)
  • Was getting married and paying for the wedding

...so I made the decision to not spend the money.

It's worked out alright so far 🙂

I do prefer to be forthright and honest, though, thus the 97%

Spokane Community College
2003
Associate of Arts

A Few Side Projects

Godot Asset Store
Godot Asset Store Thumbnail

Description

An e-commerce marketplace built from scratch by myself and a friend to allow content creators to sell assets tailored to the Godot game engine.

This site was born out of a desire to...

  • get better at React by building a real-world site
  • attempt host a complex site using purely serverless pay-as-you-go Azure resources

...with a secondary interest at making it successful as an actual small business.

Baring a few small caveats, the primary goals were a success and I learned a tremendous amount. The secondary goal, however, was an abject failure😄

Technology

  • React (using Create React App)
    • Bulma
    • CSS Modules (using Sass)
    • Formik
  • Azure Functions
  • Azure Cognitive Search
  • Azure Storage (Table and Blob)
  • Firebase Authentication
  • Stripe (for charging customers)
  • PayPal (for paying creators)

Lessons Learned

It took us about the first half of the project to really buckle down and only do what was necessary to get the project in the hands of users

  • We spent too much time trying to make things "perfect" instead of making something valuable and risked a lot of burnout
  • Our goals shifted over-time from being a strictly learning project to trying to get something actually in production, so I can't be too hard on us failing here

Not planning for SEO from the get-go caused a lot of headache

  • The lack of Server-Side Rendering proved to be a huge problem that we were not prepared for
  • Ultimately we put together a workable (but somewhat hacky) solution where we would...
    • Pre-render the markup for our pages using an Azure Function + Microsoft Playwright
    • Store the markup in Azure Table Storage
    • Serve the pre-rendered version to any client using a search engine user-agent
    • This had the unfortunate side effect of requiring us to move from simply hosting our static site content in Azure Blob Storage to hosting it in an App Service (since it was no longer static), thus upending one of the original goals

PubSub .Net
PubSub .Net Thumbnail

Description

Many years ago my primary duty at work was developing an Android app using Xamarin and wanted a basic, decoupled, pubsub mechanism to communicate between different parts of the app.

I searched but couldn't find any libraries that did what I needed without bringing a ton of baggage with them, so I decided to just write it myself.

Having not done any open-source work at the time, on a lark I decided to make it into a stand-alone library and publish it on GitHub and Nuget.

Technology

  • C# / .Net
    • Originally written as a PCL library, later switched to .Net Standard after that became a thing

Lessons Learned

I've learned quite a few things from this simple little library, the chief among them being "sometimes things you create will dramatically outlive any interest you have in them".

I haven't used or added to the library myself in many years, but there's a small community of people that do. My role really has become more of a facilitator; to review PRs and publish out new official builds.

Depsite no longer using it myself (and shuddering when I look back at some of the design decisions I made at the time), I feel compelled to do my part to keep the project going for the people that find it helpful.

Audible UI Clone using Flutter
Audible UI Clone using Flutter Thumbnail

Description

After learning the fundamentals of Flutter, I felt like I had a good grasp on the concepts but still struggled when sitting down to actually build an app as I simply lacked familiarity with the tools available to me.

To help remedy this I decided to spend a little bit of time trying to recreate the UI for Audible's Android app using the real app as nothing more than a visual reference.

Technology

  • Flutter
    • Material wigets
    • A couple of little convenience packages
  • Firebase Hosting for demo site

Lessons Learned

I felt the project was a success: I'm happy with how it came out and only stopped adding new pieces of UI when I ran out of pieces that I wasn't confident I knew how I'd approach implementing them if I were building the app for real.

As a result I've gotten a lot more comfortable building apps in Flutter.