Senior Full Stack Developer with Project Lead Experience

Wm. Ruffin Bailey
Software Developer
Charleston, United States
27 years of experience • 7 years at Toptal

This page highlights Mr. Bailey's most interesting recent work with current technologies.

His full technical resume can be found here: http://ruffinbailey.com/resume
And his portfolio of past work can be accessed here: http://ruffinbailey.com/pastWork


About

Ruffin has used .NET since its release on various stacks from to ASP.NET Core to UWP to .NET MVC to .NET MAUI and beyond, and has used MS SQL Server consistently since version 6.5. He is one of two Stack Overflow users with the JSLint badge, has served as a project lead for a $30 million/year revenue product, and has several academic publications in digital media and cultural studies.

His recent full-stack professional experience includes migrating a large legacy app from .NET MVC—and older stacks—to React (with TypeScript) via Vite, moving the back end from MVC to ASP.NET Core with token-based auth and an SQL Server back end. Previous to that, he integrated a legacy CSLA.NET (and Silverlight!) application with Blackbaud NXT's Azure hosted, Cosmos-backed, Angular-fronted systems. He also works with MailKit and .NET MAUI to create cross-platform mobile and desktop applications.


Recent Work Highlights

Project Lead
Blackbaud Grantmaking
Leadership experience: 11–20 Reports
Enterprise Experience
2018 – 2020

Portfolio: http://ruffinbailey.com/pastWork/web#grantmaking

As a project lead on an 18-month rewrite of Blackbaud, Inc.'s grantmaking platform, an approximately $30 mil/year revenue product, Mr. Bailey was tasked with updating a legacy CSLA.NET-based application whose client side was mired in a Silverlight-dependent presentation stack.

The original rewrite was undeployable and had taken three years & millions to develop.

Mr. Bailey proposed a new MVP focus to ensure clients would have a new system to use before Silverlight's end-of-life date by canceling the stuck back-end replacement, instead modernizing a CSLA back end with ASP.NET Core microservices and an Angular front end. The new system was released within two years.

Mr. Bailey's role:

  • Keep and maintain the legacy system's mature and complex business logic, written in C# and SQL Server using the CSLA framework.
  • Create new Azure cloud microservices in the Blackbaud ecosystem using .NET MVC and MongoDB to act as a secure proxy to the legacy system's API and support Blackbaud single sign-on and support inter-service interoperability/upsells.
  • Use an 80/20 rule mentality to port the existing Silverlight UI to Angular 6, leveraging the existing UI as a high-fidelity prototype rather than reconceiving the entire system.
    • After presenting this plan, Mr. Bailey was shifted from a team lead to the project lead.
    • Collaborated closely with product management to define the strategy, make tech stack decisions, create the backlog (from the epic, feature, and milestone macro to scrum story micro), and set development priorities for four teams of developers.
    • Remained a key hands-on contributor, coding about 50% of each working day to demonstrate best practices, review new code, and complete complex tasks.
  • Volunteered on the company Microsoft TEALS team, teaching Python to local high school students once a week and helping train teachers to do the same.
Industries:
  • Business Services
  • Custom Software & IT Services
  • Business Intelligence (BI) Software
  • Database & File Management Software
  • Storage & System Management Software
Technologies & Skills:

C#, CSLA.NET, TypeScript, Angular, JSON, MongoDB, Microsoft SQL Server, Azure Cosmos DB, LINQ


Full-stack Developer
Hawkes Learning Systems
2020 – 2024

Portfolio: http://ruffinbailey.com/pastWork/web#questionBuilder

  • Architected and successfully moved the company's Test Builder code from ASP.NET MVC to the ASP.NET Core Web API with token-based authentication.
    • Test Builder is Hawkes' SaaS tool for college instructors to create exams for students with online scoring, remediation, and training.
  • Researched, documented, and introduced the development team to a Vite-powered client stack built on React. Previously, the most modern client stack used was Angular.
  • Created a transpilation-free, Preact-powered client stack to allow minimally invasive but modern client development within dated jQuery-powered Classic ASP pages and Angular code.
  • Invited to participate—and eagerly participated—in a 360-degree review of the development process and management with the new company owner and consultant.
Industry:
  • Higher Education
Technologies & Skills:

C#, Microsoft SQL Server, TypeScript, .NET MVC, ASP.NET, Active Server Pages (ASP Classic & vbscript... in 2024?!), React, Vite, Vitest


PeopleMatter: Schedule

http://ruffinbailey.com/pastWork/web#peoplematter

Save for Later status

PeopleMatter was a SaaS solution for hiring, training, and scheduling applicants and employees who work in the services sector.

Work for PeopleMatter focused on two pieces:

  1. Schedule, the module that creates schedules for employees and different stores, and maintains a running count of their hours worked and costs to staff.
  2. Hire, where applicants to companies are tracked, interviews scheduled, and onboarding tasks (I-9 forms, workforce eligibility, training) can be managed.

Schedule work was done using .NET MVC with C#, SQL Server via NHibernate on the back-end and Knockout.js templating for the client. It initially was a seven-team project that leaned exceptionally forcefully on maximizing data on the client's browser and contained complex JavaScript view models bound to Knockout.js templates.

My most important work on Schedule was probably when, a few weeks from a contracted release, I was given the task to look at performance on Internet Explorer 8. Schedule was using infinite scroll, where scrolling down the schedule would continually load more entries into the UI. This worked well in Chrome, especially on faster machines with recent processors, but on slower machines -- or any machine using Internet Explorer 8 -- performance for sizeable schedules would quickly crater.

After letting management know, "It's dead, Jim," I took a few weeks to work with a designer and non-destructively added paging to Schedule for Internet Explorer 8 only. It was an exceptionally defensive fix, could be turned on or off by changing one line of client-side code where we determined from the browser string if we should use paging, and we could change the number of entries on a page by changing one integer, easily pitching different numbers of entries for different browser versions and types.

Within a few weeks and without any server-side churn, Schedule was shipped on time to all of our clients, particularly to a major "homepage logo customer" whose internal network only allowed the use of IE8. (A slightly more in-depth description can be found in the full portfolio.)


MarkUpDown | A Markdown Editor for Pros on Windows 10

MarkUpDown is the most thoughtful Markdown editor for professionals on Windows 10. MarkUpDown is a universal Windows platform (UWP) application written in C# with server support in Node.js. MarkUpDown's marketing website can be viewed via the associated link and is available for purchase from the Windows Store. Aside from some icon design help, I was solely responsible for all the facets of MarkUpDown, going far beyond simply programming the UWP application and into website design and marketing.

Technologies & Skills:

C#, Universal Windows Platform (UWP), Node.js, Imgur API


Full technical resume can be found here: http://ruffinbailey.com/resume/
Portfolio can be accessed here: http://ruffinbailey.com/pastWork