Why I Still Use Redux for Global State Management on React Projects

One question comes up at the beginning of every greenfield React project I work on: how do we manage global state? We always debate the merit of using Redux versus rolling our own global state management solution using React context and hooks. We’ve ended up choosing Redux for each project, and here’s why. (This post […]

Migrating Data Structures in DynamoDB

DynamoDB provides a flexible storage solution for web applications. As an application evolves, the data structures stored in DynamoDB change to fit the needs of the system. Managing these data structure changes can be easy with the right patterns in place. I created a small example of how my team migrates user data in DynamoDB. […]

Stop Trying to Optimize Your New Developers!

Computer Scientists often use the phrase “premature optimization” to describe effort wasted on making code better or faster when it hasn’t been demonstrated to be a bottleneck in the software’s run time or the development team’s process. Implementing a super-fast-access data structure for a list of just ten things would qualify, as would spending eight […]

Should I Ask for Help? 3 Questions I Ask Myself When a Problem Has Me Stumped

One of the best parts of working for a software consultancy is the vast amount of individual knowledge that exists over a range of topics. The ability to ask questions and get help with many different languages or problems is incredibly valuable, especially when starting a new job or project. However, I’ve realized over the […]

Working with Timer-Triggered Azure Functions in C#

Timer-triggered Azure functions allow you to run a function on a configurable schedule. Unlike HTTP-triggered Azure functions, timing info is stored in an Azure storage account and then passed to the function on execution. As a result, once you add in a timer-triggered function for the first time, there may be some additional steps needed […]