A leading renewable energy developer partnered with Keyhole Software to design, modernize, and continuously enhance a suite of internal applications used to manage solar, wind, and energy storage initiatives across a growing national portfolio. For more than seven years, Keyhole consultants have operated as an embedded extension of the client’s team—building and supporting mission-critical systems that track project timelines, operational …
Breaking Apart a Legacy Java Monolith: An Insurance Regulatory Case Study
Client: A national insurance regulatory association Industry: Insurance and Government Regulatory Technology Services: Legacy Application Modernization, Software Architecture, Microservices Consulting, Custom Software Development Outcome: A near decade-long modernization partnership that rebuilt legacy C++ and Java securities systems on a test-first foundation, then carried that discipline into a build-system overhaul, migrating more than 200 mission-critical applications from Ant to Maven ahead …
Social Fitness Platform with React Native and Angular
Project & Client Objective A Sr. Keyhole Software Consultant architected and developed a full-stack set of applications (and DevOps) of a social events fitness platform with React Native and Angular. He was the sole developer on the project. The client is a large, nonprofit, integrated healthcare network home to more than 20 hospitals and 700 outpatient facilities located on the …
Getting Started with Marble Testing
When working with RxJS observables, it can get a little tricky to unit test. Sometimes it can be hard to get insight into what is going on with the observable in the test. I’ve personally been frustrated numerous times by trying to test my observables with the subscribe and assert method. This is where marble testing can make testing observables easier.
The main advantage of using marble testing is the marble diagrams. With the diagrams, we have a visual representation of our observables and subscriptions so we can see the interactions between the two. Once the basics are understood, you should be able to get observable tests running in no time.
In this post, I will show you how to get started using Marble testing with an example. By the end, you should have enough information to get started on your journey testing observables. My examples are based on an Angular application using Jasmine, but these can also be applied to different testing frameworks for React and other applications.
React vs. Angular: A Comparison Between Two Great Options
Both React and Angular are very popular front end development frameworks. In this post, I will discuss the similarities and differences between the two, and consider when one should be used instead of the other.
React is an open-source JavaScript library introduced by Facebook to build dynamic user interfaces. It is based on JavaScript and JSX (a PHP extension) and is considered widely for developing reusable HTML elements for front-end development.
Angular is an open-source front-end development framework powered by Google. It is a part of the MEAN stack and is compatible with a large number of code editors and is considered for creating dynamic websites and web apps.
In this post, we will begin by going over the benefits of React and Angular, then break down the differences between the two frameworks using thirteen attributes. By comparing each framework side by side, it can help decide which is the best framework for your specific app project.





