Michael Vastarelli

Senior Software Engineer

Seasoned engineer with over 15 years of professional experience. I specialize in code efficiency/optimization and am known for my outside-the-box problem solving skills.

Work Experience

Travelers Insurance

https://www.travelers.com/
Senior Software Engineer
Jul, 2021 - Current

Work on bond and speciality insurance products. Responsible for both front-end and back-end development

  • Developed cross-solution testing to effectively perform integration testing across multiple microservices
  • Implemented system for behavior-based testing to help drive feature development
  • Frequently hosts brownbag sessions to help further educate development team on new techniques and strategies for writing high quality software
  • Member of internal mentorship program to help improve developer skills both in time management and software development.

Change Healthcare

https://www.changehealthcare.com/
Product Architect
May, 2017 - Jul, 2021

Worked with enterprise architecture team. Responsible for core application development as well as R&D.

  • Continuation of my job at McKesson (McKesson Technology Solutions was acquired by Change Healthcare in May 2017.
  • Promoted to software architect. Responsible for working with the enterprise architect team to align our software with the rest of the company's business portfolio.

McKesson

https://mckesson.com
Senior Software Engineer
Nov, 2009 - May, 2017

Initially worked on services team to design and implement customizations to our applications based on customer requirements. Also lead internal tool development team.

  • Performed configuration and customization to my business unit’s primary software system.
  • Oversaw internal tool development along with multiple internal applications.
  • Specialized in high-performance programming and frequently worked on performance-sensitive issues to ensure applications met their SLAs.
  • Worked on the core development team, implementing feature requirements to our software.

Korchek Technologies

http://korchek.com/
Software Engineer
May, 2007 - Sep, 2011

Lead developer of application development. Primarily focused on software used to track patient blood transfusions.

  • Worked on data conversions for medical blood bank systems using multiple database technologies (primarily MS-SQL and Microsoft Access).
  • Part of the core development team for the company’s flagship software. Technologies included WinForms, Windows Mobile, and WPF.

Projects

MultiMiner (Founder)

Lowers the barrier of entry for hobbyist crypto mining by creating a one-stop interface for all things mining related.
  • Windows-based application to allow crypto mining hobbyists to easy setup their PC and monitor all mining activities.

  • Written entirely in TypeScript using Electron. Self-taught both technologies just to create this application.

Mapping Engine (Work Project)

Designed and implemented a high performance mapping engine to cross-walk complex, heterogeneous data structures.
  • Used within company's flagship application to allow data feeds from a variety of different sources (e.g. XML, Pipe, X12).

  • Required writing two custom scripting languages. The first (SimpleC) was modeled after the Java 8 syntax and implemented using ANTLR. The second (LISP) was written by hand. Both generated custom expression trees that were dynamically compiled at runtime.

  • Enabled our software to interoperate with customer vendors that would have been inaccessible otherwise.

High Speed In-Memory Database (Work Project)

Specialized database system designed to exist entirely in memory and efficiently support sub-millisecond queries of clinical data.
  • Ported from C++ to C#.

  • Higher performance and smaller memory footprint than its C++ equivalent

  • N-Key resursive primary keys. Allowed 'tables' to be created with any number of keys.

  • Used by several internal applications

Claims Analysis Rule Engine (Work Project)

The core of the ClaimsXten application. The rule engine is responsible for analyzing claim data against a set of rules to determine a recommended course of action to take for each submission.
  • Ported from C++ to C#.

  • Higher performance and more flexible than its C++ equivalent

  • Supported both 'advanced' rules written in C# and 'simple' rules written in a custom DSL called RML. Wrote a compiler for the latter.

  • Could dynamically consume RML-based rules at run-time without first compiling them, dramtically simplying testing and deployment.

Recent Posts

Behavior driven testing is a bit of an oddity in software development. Ask any developer about the tests they write on a daily basis and you'll commonly hear about unit and integration tests. Bring up behavior testing however and you'll likely be met with a bemused stare followed by them walking away while muttering a soliloquy about how they're just integration tests or that it's someone else's job. "But we use integration testing to verify our behavior." is a common response, and to be fair it's not entirely wrong either. There absolutely is a significant amount of overlap between the two and it doesn't help that the strata of testing methodologies is littered with proverbial landmines that can (and probably have) lead to gun fights between warring factions… »