C#

Tommy + the language of C#

Home Capabilities Languages C#

C# Examples

Below are some of my projects involving C#, grouped by company. Click to read more about the relevant projects and chat with me to follow up on any topic you'd like to hear more about!
Progressive Insurance logo

Progressive Insurance

Auto Insurer
Project: Enterprise SDLC Adoption

Consulted and advised Enterprise Steering Committee on adoption of Agile processes within the broader SDLC, which was being standardized away from waterfall.

Conceived of, designed, prototyped, developed, tested and rolled out various solutions for improved modelling and automation of several development-related business processes, spanning the software development lifecycle from requirements to system retirement. Created bidirectional traceability between requirements, code, test, and defect data and metadata from various disparate systems and technologies including Quality Center, Sharepoint, Visual Studio and TFS using REST, JavaScript, .NET and WCF services and an Enterprise Service Bus model.

Read more...
Project: REF 2.0 (UI Framework)

The Quoting (F3) was a success, but to roll out to all 50 states, we needed an engine that could handle the complexity of the system, render quickly, and that was easier for our engineers to build and test with.

I took the most complex page of the Direct Auto Quoting app - the "Buy Page" - and drastically improved performance, reducing render time from 28 seconds to 2, by isolating the page and building it with a prototype of what would become REF2.

Seeing such a drastic improvement in performance gave the business the confidence they needed to convert Quoting (F3) to REF2 and use it to roll out to the remaining states. (sidenote: a code-oriented framework, FlashQuoting, which did away with REF2's markup and code bindings, superceded REF2 before all 50 states were rolled out. The later popularity of and similarities with React confirmed REF2 was onto something.)

Technical Details REF2 targeted both Flash and HTML during the pre-webkit era. Created technology-independent language and APIs for describing UI hierarchies, cascading styles, business logic and arbitrary data structures in a way that abstracted the developer away from the details of the client/server event communications, marshalling between multiple client technologies, persistence of state concerns, or the details of rendering engines / APIs in the various supported environments. Aided in development of dev tools such as code hinting and code generation to facilitate quick onboarding, compile time checks, type safety and debugging.

Read more...
Project: CQM (Code Quality Metrics)

Having shown in Quoting (F3) and REF 2.0 (UI Framework) that tests and low complexity policies led to fewer bugs and higher velocity by doing some a/b studies, the business invested in tooling to automatically measure and enforce policies across the Direct Quoting line of business software development teams.

These teams used a variety of software stacks and technologies, including proprietary build and release systems.

I consulted with the build and release team, at the time, a separate team, to understand their plugin architecture which already was in use for all said teams.

Next, I worked with each team to understand their level of code coverage across different types of tests (unit, integration, end to end), and agree with them what targets they wanted to meet, and at what point in time.

Some teams required me to implement coverage measurement tools. Keep in mind that we were not able to use open source tech, and actionscript had no unit testing or code coverage tools.

I worked with a mentor of mine to write a lexer-parser-generator, which took the grammar for the actionscript language and allowed us to instrument our codebase with a pre-build step that inserted beacon calls with metadata into the various methods of the application. The coverage monitor and unit test UI was written in C#.

I exposed the coverage reporting service using web services running on SOAP via MS ASP.net WCF communications stack. Initially an MS SQL database housed the data, but as it grew, we moved it to a data cube where various dimensional summary and BI queries could be more efficiently run without interfering with the transactional nature of concurrent builds reporting their metrics in across the business.

Built upon existing code analysis and instrumentation tools to create a cross-platform solution for the build-time analysis of unit and system test code coverage, cyclomatic complexity, code coupling, defect density, change volume, maintainability, and other quality metrics. Data from many different proprietary formats is transformed into a single canonical format, where it is in turn normalized into a relational structure to facilitate on demand querying for system-level quality benchmarking, real-time code quality reporting, providing objective insight into QA risk assessments / test strategies, and enforcement of architectural standards and constraints.

Read more...
Project: Quoting (F3)

Progressive had two sites for Direct Auto Quoting - one used by customers at home and the other used by our call-center reps. Given the complex state-by-state variance in the insurance laws, this made for a huge maintenance cost, and doing it twice in two codebases didn't make sense.

The premise was that a single web 2.0 Direct Quoting Application could replace these while also yielding a much more modern and customer-delighting application.

As the team's Actionscript expert, I joined and quickly helped out delivering feature after feature, and I loved the XP discipline and grew to appreciate TDD especially after the site started hitting performance problems that warranted significant refactors, which would have been much riskier without test coverage!

Our pilot included 14 of the 50 states, and was a complete success. However, the amount of clientside rules and assets started slowing the app down, and this was when I was asked to replace the REF framework that preceded my joining, with something much faster and more developer friendly. This led to my promotion to lead engineer, where I begun work on REF 2.0 (UI Framework)

Read more...

Key Results

  • Reduced requirements-to-deployment cycle time by ~35% on key projects through Agile adoption
  • Reduced complex quote page render time by 93% (from 28 seconds to 2 seconds)
  • Implemented automated quality gates across 12 development teams reducing production bugs significantly

Full Details

Tommy Sullivan - AI + Full Stack Software Builder + Leader