Home » Software Development (page 5)

Software Development

Design Patterns in API Gateways and Microservices

For all the buzz about microservices and API gateways, finding specifics can prove surprisingly difficult. I am reminded of the cartoon by Sidney Harris where the first step of a complex mathematical formula is presented, then a miracle occurs, and the sudden appearance of the glorious solution prompts an observer to comment that perhaps we should be more explicit in ...

Read More »

Some Best Practices For Rolling Out New Software

Many times, IT is overly eager to roll out new software and moves too quickly without adequate testing or a well-thought-out plan in place. In 2016, Alameda County, California introduced new software for the Alameda court system in an effort to replace an over 40-year-old system. Long overdue for an update, the county rolled out the new software over their ...

Read More »

Meaningful Alerts: 7 Must-Have Ingredients to Prevent a Production Crisis

What’s the ultimate alerting strategy to make sure your alerts are meaningful and not just noise? Production monitoring is critical for your application’s success; from going manually over the logs, through using 3rd party tools or homegrown solutions – to each of us its own. However, there are some elements and guidelines that can help us get the most out ...

Read More »

Low-risk Monolith to Microservice Evolution Part III

In the first part (part I) we introduced a strategy to bring microservices to our architecture without disrupting the current request flows and business value by looking at a concrete example. In the second part, we started looking at accompanying technology that aligns with our architectural strategy and goals. In this third part, we continue the solution from part II ...

Read More »

A case for Outside-In Development

There is no reason to have a backend when there is no front-end. There is no reason to have an API when there is no one to consume it. There is no reason to have a class when there is no other class (or framework) to use it. There is no reason to have a method when there is no ...

Read More »

Mocking in Go

I was recently asked to help out on a project with the aim of recommending how to implement some additional event handling functionality. I had a look through the source code and suggested a change to an existing interface implementation, plus a few other bits and pieces; all pretty straightforward or so I thought. Later, one of the developers said ...

Read More »

Functional Programming and Reactive Architecture Part 1

Writing enterprise software is difficult and as engineers our job is to deliver value for the business within the boundaries of time, budget and resources. Complexity is what makes it difficult for us to deliver this value; we will always have to deal with the essential complexity of a system and for this we are required to communicate effectively with domain experts ...

Read More »

Low-risk Monolith to Microservice Evolution Part II

Let’s dive right in! In the previous post (part I) we set up the context for this blog. Basically, as we introduce a strategy to bring microservices to our architecture, we cannot and should not disrupt the current request flows. Our “monolith” applications typically provide a lot of value for the business and we must drive down the risk of ...

Read More »