For my project, we have a Node.js server deployed as an AWS Lambda function. The server’s dependencies (Node modules) are deployed in a Lambda layer. We want an easy process to deploy a new Lambda layer version when we update the Node modules and to update the Lambda function code whenever we update the local […]
Recently, I worked on a project with a lot of complex data relationships. To abstract away some of this complexity, my team defined database views that summarized the information that matters to us. When building up those views in PostgreSQL, I found a couple of patterns particularly useful. I used conditional expressions (CASE and COALESCE) […]
Recursion (solving smaller and smaller sub-problems until arriving at the base case) has always intrigued me. The first recursive function I ever wrote computed the factorial for n, and it looked like this: def recur_factorial(n): if n == 1: return n else: return n*recur_factorial(n-1)
After purchasing a Raspberry Pi and an SD card, you might not feel like going out and buying a display, mouse, and keyboard just to create a simple project. No worries! Together, a laptop and an internet connection are sufficient to get started on your Raspberry Pi. How?
SAML 2.0 is an authentication protocol, an agreed-upon way to transfer authentication information between parties. It was approved as an OASIS standard in 2005, and there are SAML Protocol Documents with details about the protocol. The protocol is complex (the core document alone is 86 pages) and has a wide range of capabilities. In this post, I’ll scratch […]
Once every couple of months, I get an opportunity to teach middle schoolers/high schoolers about computer science. Computer science and software development are very broad disciplines, so I could cover anything from web styling to computer networks. Among all of those possible topics, I find that I like to work on sorting algorithms.
Let’s say you’re creating a feature branch off a master for a new feature you are about to implement. You finish up your work on the feature branch while one of your colleagues is making some changes on the master branch. Before creating a pull request, you might want to make sure you have the most […]
When working in Angular, it’s pretty straightforward to create components and nest those components inside of other components. However, it is a bit more complicated to design customizable components that will display content based on the components passed to them (content projection).
Reactive programming is all about streams. It involves combining streams, filtering streams, and transforming streams. In reactive programming, the application does not need to pull for data, but it is notified whenever a new event occurs. A few months ago, I wrote a post on reactive programming in WPF using ReactiveUI. Recently, we’ve been working on […]
I’ve learned a lot about authentication this past month. My team has been working on migrating an application from using Forms Auth to IdentityServer single sign-on. Our goal is to provide a centralized authentication for all parts of the system.