SELECTED WORK + REFERENCES

The receipts.

A closer look at software I’ve built, rebuilt, modernized, and occasionally had to unravel first, plus a few words from people who have worked with me.


Some organizational and system details are intentionally generalized.

Rebuilding a system whose documentation was buried in ten-year-old emails.

Revenue Management relied on an aging Classic ASP application to track managed-care financial activity, including patient accounts, insurance information, write-offs, reconciliations, and reporting for Administration.

First, figure out what the thing actually does

The application had been around for years and documentation was scarce. Before I could replace it, I had to understand it.

I worked directly with its primary user to learn how she actually used the system, what information mattered, what could change, and what absolutely could not.

Some of the business rules weren't documented anywhere. At one point, answering questions about how data reached the application meant tracking down emails that were more than ten years old.

Software archaeology is apparently part of the job.

Building the replacement

I designed and developed a modern replacement using a Blazor user interface, a Web API between the application and data layers, Entity Framework, SQL Server, and Microsoft Entra ID authentication.

Before development, I used Balsamiq to work through screens and workflows with the user. The goal wasn’t to build a prettier version of the old application (Although I was totally gonna build something that felt fresh). It was to build something around the way Revenue Management actually worked.

For example, When a user entered a patient account number, the application could retrieve existing patient and insurance information from another hospital system rather than requiring Accounting to enter information the organization already had.

Typing the same data twice is not a feature.

Knowing what NOT to modernize

We intentionally kept the existing database, even though parts of the schema were less than lovely. Some tables didn’t even have primary keys.

A new database would have been cleaner, but the existing one could also have been supporting SSRS reports and other dependencies that weren't fully documented. Replacing it without knowing everything that depended on it would have introduced unnecessary risk.

Sometimes good modernization means knowing what not to replace.

Where it landed

By the end of the six-month engagement, the replacement application was substantially complete. The remaining work depended on an organization-level solution for securely moving data between servers, which was ultimately assigned a lower priority before my contract ended.

Development was managed through user stories, Git, pull requests, code reviews, and weekly sprint meetings with the project manager, technical leads, and system analyst.

I also documented the new system as I built it, so the next developer hopefully won’t have to search decade-old emails to figure out what I was thinking.

TECHNOLOGY

C# · .NET 9 · Blazor · Web API · Entity Framework · SQL Server · SQL CLR · Microsoft Entra ID · Git · Pull Requests · Balsamiq

Building the system that ran the laboratory.

A diagnostic laboratory needed to replace an existing Laboratory Information Management System. The old system simply couldn’t do everything the organization needed anymore.

From arrival to result

Over roughly two years, I worked as one of three peer developers designing and building a replacement LIMS from the ground up. I was responsible for a substantial portion of the application.

The system tracked patients, physicians, requisitions, specimens, ordered tests, assay results, billing, shipping, and the questions or problems that can crop up between “the specimen arrived” and “the job is done.”

When a specimen arrived, its requisition was scanned and the sample entered the laboratory workflow. Staff recorded patient and physician information, ordered tests, shipment problems, and other issues. As testing progressed, assay results were imported into the system and the appropriate departments completed their work and signed off.

Building for the people that actually had to use it

The three developers worked directly with laboratory staff and Administration. We weren’t designing software in a vacuum and hoping everyone liked it when we were finished.

I kept listening after launch, too.

One result was a more robust search feature for finding specimens and physicians. A later performance evaluation specifically noted that the new search saved users time and significantly increased user buy-in.

Turns out people are much happier with software when it helps them find the thing they’re looking for.

Protecting the record

The application handled protected health information, so accountability was built into the system.

Changes could be traced to the user who made them and the time they were made, creating an audit history around records and workflow activity.

The result

The LIMS went into production and became the laboratory's primary operational system.

It remained in active use throughout the remaining three years I worked there, while we continued maintaining it and adding new capabilities.

This wasn't a prototype or a portfolio exercise. People did their jobs in it every day.

TECHNOLOGY

C# · .NET · WinForms · SQL Server · Stored Procedures · SQL Jobs · SSRS · APIs · IIS · TFS · Active Directory

You can’t pass paperwork around an empty office.

Before the pandemic, an important laboratory workflow depended on a physical requisition being passed from department to department in batches.

Yes, actual paper.

The problem

Each department reviewed the requisition, handled its portion of the process, signed off, and passed the paper along.

It was slow, difficult to track, and depended on employees being physically present in the building.

Then COVID sent everyone home, which made the whole “passing pieces of paper around the office” system considerably less practical.

Moving the workflow into LIMS

I completed a paperless workflow inside the LIMS so scanned requisitions could move electronically through the organization.

Each requisition PDF was associated with a unique identifier. Employees could review it and sign off digitally, while the system recorded the employee, department, date and time, status or reason, and related notes.

Users could see not only who had already completed their work, but which departments were still waiting to take action.

In other words, instead of wondering where the paper went, they could actually know where the work was.

The result

The paperless system allowed approximately 55% of employees to work from home during the pandemic.

It also outlived the emergency that prompted the work. The organization continued using the workflow as many positions transitioned to hybrid work.

TECHNOLOGY

C# · .NET · WinForms · SQL Server · Digital Workflow · Audit Tracking

Not every useful project needs a two-year development cycle.

APPLICATION SECURITY

A security manager with control-level permissions.

Designed and built a C# WinForms application that integrated with Azure Active Directory and a SQL Server permissions database I designed.

Administrators could search for an employee, see permissions inherited through organizational groups, understand where those permissions came from, and override them individually when needed.

Permissions could then be associated with individual pages, buttons, dropdowns, and other controls inside internal applications.

C# · WinForms · SQL Server · Azure Active Directory

SHAREPOINT + OFFICE 365

Building the company's first intranet.

Built a SharePoint Online intranet from scratch, including the company home page, announcements, employee directory, departmental sites, document libraries, calendars, forms, and knowledge bases.

The new Document Center replaced an existing third-party service and was projected to save approximately $10,000 per year.

SharePoint Online · Office 365 · Information Architecture

WORKFLOW + SHIPPING

Bringing physician kit ordering into LIMS.

Extended the LIMS so staff could order physician test kits directly from the application and associate custom requisition documents with physician accounts.

FedEx and ShipStation tracking information was automatically populated for physician kits, reducing manual work for Shipping.

C# · SQL Server · LIMS · Shipping Integration

Don't just take my word for it.

I can tell you I'm good at solving messy software problems, but admittedly, I have a vested interest in that opinion. Here's what people who've actually worked with me have to say.

Marianne helped support a platform that was developed years earlier with little documentation. She often had to analyze unfamiliar code until she understood what the application actually did, and then worked through the requirements to give the end user the best possible solution.

Meredith Bushatz Vice President, Product Development · Trabon Group

Marianne brings a rare combination of strong design instincts and technical reliability. Her UX and visual design work consistently elevated the projects we worked on together - she has a great eye for what makes an interface both functional and genuinely appealing. She's also self-motivated and dependable; I never had to worry about follow-through on her end.

Jeff Miller Programmer Manager · Willis Knighton Health System

Let's figure out what it needs.

Start a Conversation