In my previous post, we talked about gathering requirements. This post will discuss getting those requirements into an epic-level backlog. There are three things I think about when building a backlog. When we start this process, we must keep in mind the danger of incomplete pictures. The danger is real and often happens on many…
Read more…
In our previous post in this series, we discussed getting an overview of a system. In it, I provided the following items that you should know as you assemble an overview: Now that we have an overview, it is time to start gathering requirements. Requirements are, in many ways, the most important part of the…
Read more…
AWS Cognito is a very solid authentication service. We often use Cognito as an identity provider (IdP) for the applications we build. We redirect to Cognito, and then Cognito redirects back to us. Cognito gives us a code that we can use to get a JSON Web Token (JWT) to access our services. It’s a…
Read more…
After we have a rough mental model of a software system, we often want to get an overview of the system. In this step, we are trying to peel back one more layer. Where a mental model is a rough understanding of the system, an overview is deeper and more complete. We often jump straight…
Read more…
In my previous blog post, I mentioned how to send APNS messages using C#. In this post, I will do the same using GCM. Sending a GCM message is very similar, but in this case we will use a different NuGet package. You will need to install the FirebaseAdmin NuGet package. The first step of…
Read more…
Over the years, we have built many mobile applications across numerous industries. One of the most common features of these mobile applications is sending push notifications. Most applications we have built have used third-party services to send these notifications. But how hard is it to send APNS notifications? It’s really not that hard. But why…
Read more…
What does a year look like? This is a question you may have been asked before. And there is a variety of works out there discussing the differences in how people perceive a year. Ultimately, many people have some sort of circle for a year. When creating a software system, we should create a mental…
Read more…
When building a solution on top of Cognito, we will often build on top of the existing Cognito user interface. But, it is possible to make all of the authentication calls without using it in a UI. In this blog post, I’ll show how to use C# to make these calls. You probably should avoid…
Read more…
With most solutions, we want to use an IDP (Identity Provider) to manage users. This almost always involves redirecting to a hosted web page to handle user authentication. After the user is authenticated, they are redirected back to our web application. That is a preferred way to handle this problem, mostly because it keeps us…
Read more…
I enjoy trying out different technologies to see what’s new or available. RabbitMQ is one of my recent explorations. In short, RabbitMQ is a free and open source messaging broker. Many cloud providers already have queue solutions, which are easy to work with. But it is always nice to know which options are available if…
Read more…