Code Review in GitHub

Expert level code reviews

Code reviews are central to many modern software development processes. However, they are often considered a bother rather than something that can greatly improve code quality. I have been doing code reviews for many years and I have seen many different approaches. In this article, I will discuss the importance of code reviews and how to perform them properly. Obviously, this is a very opinionated post, but I think there is value for anyone interested in doing better code reviews....

October 25, 2023 · 9 min · LPains
Sharp Cert Manager

A little side project - Sharp cert manager

Let’s face it, managing TLS certs is a pain (no pun intended). If you have only a few, it is manageable. A simple recurring calendar reminder to make sure you reissue or download and install the new cert will work. However, what happens when you have dozens? Also, what if the responsibility is shared accross different teams? As the saying goes “too many cooks spoil the broth”. While there are great cloud native solutions, like Azure Key Vault, many enterprise environments are not capable of using them....

September 27, 2023 · 3 min · LPains
Self destruct

Self destructing data with Cosmos DB

I am working on a share feature for Sharp Cooking that will allow users to share recipes online. This is the first time a feature will require storing data outside of the local app context, and Cosmos DB is a great option for implementing it. First, it provides a free tier that should be sufficient for my users. Second, Sharp Cooking already stores recipes as documents in the browser, so it should be easy to send the same data to Cosmos DB....

August 25, 2023 · 2 min · LPains
Recipe UOMs

Introducing sharp-recipe-parser

For almost four years now, I have maintained the Sharp Cooking app. From the beginning, one of the features I wanted to provide was ingredient UOM conversion. In version 1.4 of the app, a preview of the UOM conversion feature was made available. In this post, I will describe the process and how it was achieved. Before we get into UOM conversion, we first need to break down an ingredient line into its components....

August 5, 2023 · 3 min · LPains
Identity

Azure Pipeline service principal detail without AD Access

Azure Pipelines are a powerful tool for automating CI/CD workflows, and the AzureCLI task allows you to execute scripts using the Azure CLI. When working with service principals, it’s essential to have their client ID, secret, and object ID at hand. While obtaining the client ID and secret is straightforward using the addSpnToEnvironment property, retrieving the object ID can be a bit more challenging. In this blog post, we’ll explore a workaround to easily fetch the object ID for your service principal, even if it doesn’t have direct read access to Azure AD....

July 25, 2023 · 2 min · LPains