A window into the Full-Stack World

In this blog, I explore the world of full-stack web development. Here you will find everything I learned in over a decade on the job, from niche bug fixes, how-to's on mobile app development and API configuration questions to info about the life of a web developer.

For front-end developers I will be outlining common configurations and quirks you may find when working with JavaScript, Angular, React, Flutter and Ionic/Capacitor.js.

These days I most commonly work on the back-end using Node.Js, C#/.NET and SQL or MongoDB. After building several indie apps currently sold in the major stores, I can share quite a few tidbits to make your life easier.

Follow me on Twitter @Mick_Patterson_ for updates and thoughts on life.

As featured on tech-blogs.dev

Blog card feature

Publishing a React App with Routing to a Linux Azure Web App

19 February, 2024

Publishing a react app to Azure web apps is fairly trivial. However, when the web app is running Linux and the React app is using the React Router for a SPA application, the default configuration does not work.

Blog card feature

Setting Up an HTTP Server with Bun

09 January, 2024

Bun is a lightweight and flexible framework for building HTTP servers and APIs in the mould of NodeJs. This post will guide you through the initial configuration set up of a Bun HTTP server.

Blog card feature

What is Memoization?

08 May, 2023

Memoization is a term you will come across at some stage when reading about frontend frameworks, libraries and in various packages you may need to use. This post will explain what memoization is, why use memoization and how to implement memoization.

Blog card feature

What is a Foreign Key?

01 May, 2023

Foreign Keys are a necessity in any relational database. They help connect distinct data tables together by creating a tightly-bound reference between the tables.

Blog card feature

What is Function Recursion

25 April, 2023

You'll often hear or read that a recursive function was used to solve a programming problem that arose during the development of a piece of software. So, what is a recursive function, how does it work and when or why would the need to use one occur?

Blog card feature

What is Server Caching and When to Use Caching

17 April, 2023

Web server caching is the storage of frequently accessed data in a secondary, temporary location to reduce the overall load on a web server. Caching allows data to be served directly from memory which can be faster and more efficient than making multiple connections to the actual database.

Blog card feature

Using Regex to Add Spaces Before Capital Letters in a String

04 April, 2023

Quite often as a frontend developer, you will want to use a string returned from an API as a header or a label in one way or another. Perhaps as a tab title or in a card for a dashboard. Unfortunately, the API may not be aware of this, nor capable of returning a string formatted in a nice way to allow the label to be human-readable.

Blog card feature

How to Authenticate with Facebook using OAuth2 and React

14 March, 2023

This post will be discussing how to authenticate with the Facebook API using OAuth2, React and requesting the required scopes to access the Facebook Ads/Marketing API.

Blog card feature

How to Deploy a NodeJs App to Ubuntu Virtual Machine with Azure DevOps Pipelines

30 December, 2022

Deploying a NodeJs app to an Ubuntu Virtual Machine hosted with Azure using Azure DevOps should be pretty straightforward. Turns out, it is quite a lot more finicky than might appear!

Blog card feature

Extend The Azure Functions Execution Timeout Value

13 September, 2022

The default maximum execution time of an individual Azure Function is 5 minutes. Sometimes, there will be a need to have a function that takes longer than that to execute. There are arguments that any function that takes that long should have the architecture changed to delegate the workload differently, however, if you need just a little bit more time, there is a way to enable this without having to re-architect the function.

Blog card feature

Create a NodeJs REST API

18 August, 2022

REST APIs are a key building block of the Internet as we know it, along with being an essential component of any full-stack web application by providing a bridge between our users and our database. Luckily, an API can be built using many different technologies and languages. If you're a web developer with Javascript knowledge, using NodeJs to build an API is a no-brainer.

Blog card feature

What is the Partial Type in Typescript

04 June, 2022

The Partial type in Typescript is a built in type that provides some very useful functionality to us to help manipulate other user-defined types while we are developing our app

Blog card feature

How to Add a Column to a Microsoft SQL Server Table

02 June, 2022

Modifying existing SQL tables is a common use case as the data models for your application change over time. The most basic of these modifications is adding a new column to a SQL table to capture more data.

Blog card feature

Use Azure DevOps to deploy a NodeJs Function app

31 March, 2022

Setting up continuous deployment on an Azure Function app can save a lot of time, particularly if your development process follows small, agile deployments where you may deploy to your production environment multiple times a day or week.

Blog card feature

Add Auto-Increment to a Column in SQL Server

25 February, 2022

Knowing how to add auto-incrementing to a numeric column in SQL Server is a skill all database admins should have. It is an exceptionally common use case, whether it be on the Primary Key column of your table, or you need a column to identify insert order or similar.

Blog card feature

How to Create a SQL Server Index

21 February, 2022

Adding indexes to your SQL Server tables is something that you will do plenty of times throughout your career, either as a full-stack developer or as a specialist database admin. Fortunately, adding indexes to tables in your database is a pretty simple task.

Blog card feature

How to Set the Timezone of an Azure Function App

18 February, 2022

By default, the timezone of an Azure Function app is UTC/GMT +0 or Greenwich Mean Time. This is great if that is your timezone or the timezone you want your application functions to run in, but for most of us, we need to either adjust all our schedules to fit that timezone or we need to change the timezone.

Blog card feature

What is a SQL Index?

04 January, 2022

SQL databases are fundamentally pretty simple. Data is organised into tables and the tables have columns that connect each other together. The key for a SQL database is to be performant. Sometimes, queries can be extremely slow to return the filtered down dataset that our app is looking for. This is where SQL indexes come in.

Blog card feature

How to Make Money as a Developer

08 December, 2021

Being a software developer of any flavour opens a wide range of possible income sources to you so that you can invest your time and energy in creating the lifestyle you desire.

Blog card feature

The Complete Guide to HTML Input Types

11 November, 2021

The humble HTML input tag is actually an extremely useful and powerful HTML tag. Not only are they used for constructing forms, but they allow for all sorts of additional functionality to be added to your page.

Blog card feature

How to Calculate the Number of Months Between Two Dates in Javascript

05 November, 2021

Manipulating dates in Javascript is an extremely common requirement for a large number of apps and server logic (when using NodeJs). The ability to retrieve the number of months between dates is a very common and useful skill to have in your toolkit.

Blog card feature

Remove Duplicate Entries From a Javascript Array

04 November, 2021

Arrays are one of the most common data structures you will use in Javascript. They create lists for displaying to users that can be simple or contain complex data objects. Creating lists that have clean information in them is vital for a good user experience. One way to do this is to make sure you are not displaying the same information multiple times.

Blog card feature

Connecting to a SQL Server Database via NodeJs

01 November, 2021

Every full-stack application in production today probably connects to a database of some variety, whether that be a NoSQL database like MongoDB, a MySQL database like MariaDB, a SQL Server database like those provided by Azure or any other variety. This means that knowing how to wire up a stable connection to these databases from your NodeJs API is a critical skill.

Blog card feature

Remove the White Screen Before the Splash Screen in a Flutter App

21 October, 2021

By default, iOS and Android show a native loading screen before the splash screen of a Flutter app is displayed. This default screen is completely white, which means your app will have a white "flash" before showing your custom splash screen with your app's chosen colours and logo, making for a bad user experience. It is currently not possible to remove this native screen, but we can customise it to make it less intrusive.

Blog card feature

HTTP Methods Explained for Frontend Developers

23 September, 2021

Frontend developers will inevitably need to make HTTP requests frequently when building out the client side of a full stack app. Having a solid understanding of these methods and how to build the requests is essential in being a top shelf frontend developer.

Blog card feature

How to use Environment Variables in NodeJs with Express and Dotenv

22 September, 2021

Environment variables in NodeJs are essential for setting configuration options as well as storing important values securely. The environment variables allow you to store API keys and other configuration secrets independently from your main codebase and separate from your git repository so they never get checked in anywhere. Being able to configure and consume these variables is essential in creating solid, production-ready NodeJs APIs for all applications.

Blog card feature

How to set up Scheduled Functions with NodeJs, Express and Node-Cron

21 September, 2021

Building an API with NodeJs and Express is always a key building block of any full stack application. In conjunction with managing user requests, a NodeJs API application can also help maintain database integrity by performing scheduled maintenance checks to ensure everything remains in solid working order.

Blog card feature

How to calculate the number of days between two dates in javascript?

20 September, 2021

Date manipulation and calculations are core to a huge amount of enterprise business logic. Being a wizard at using dates and turning them into simple values to run your logic on is critical. Knowing how to calculate the number of days between two dates is an essential piece of logic to have in your utility belt. This post will explain clearly how the math works as well as creating a simple utility function that can be used anywhere.

Blog card feature

How to Use Environment Variables in An Angular App

05 September, 2021

Environment variables in an Angular app are extremely useful for storing constants in your app that need to be used frequently, such as API url's, API access keys, Firebase config values and other general flags.

Blog card feature

HTTP Interceptors in a Create-React-App with Axios

30 August, 2021

A how-to for adding HTTP interceptors to a Create-React-App app with the Axios npm library to check and modify request and response headers for all HTTP requests

Blog card feature

API Versioning with NodeJs and Express

30 August, 2021

Setting up an API with NodeJs and Express is a topic that is well covered and documented. But what happens when your API requirements expand beyond having a simple CRUD offering? API versioning can help with this. Anytime you see an API url with /v1/ in it, the API is using an internal versioning setup. In this post we'll cover one simple way to configure this with NodeJs and Express.

Blog card feature

Adding Sign-in with Apple to Ionic Capacitor Apps with Firebase

23 August, 2021

Authentication is vital for any app with user accounts. Apple requires that their authentication provider is available on all apps submitted to the iOS app store.

Blog card feature

Adding Custom HTTP Headers to an Azure Function Response in Nodejs

18 August, 2021

Adding custom headers to the response object of of an Azure Function written in Node sounds simple. Turns out it may not be as simple as it sounds.

Blog card feature

How to setup an Angular HTTP Interceptor

16 August, 2021

An HTTP interceptor is a piece of logic that is able to attach to a HTTP request or response. This logic can then modify the data being transferred.

Blog card feature

SQL Server Insert or Update Query with T-SQL & Merge

31 July, 2021

A standard SQL Server query to execute that will insert a new row or update an existing one

Blog card feature

Best Indie Fullstack Developer Tools

18 July, 2021

A curated list of the best developer tools for fullstack indie developers covering everything from coding, git, database admin and devops

Blog card feature

Sorting an Array of JavaScript Objects in a Specific Order

17 July, 2021

Sorting an Array of JavaScript Objects in a Specific Order is a use case that comes up quite frequently when building UI layouts to meet client specifications. Unfortunately, it is more challenging than a standard array sort and requires additional setup work.

Blog card feature

Setting iOS App to Portrait Only for iPads

17 July, 2021

A quick how-to for setting portrait (or landscape) only for your iOS app for iPads as the default setting in XCode doesn't apply to all devices equally.

Blog card feature

Why I use Microsoft Azure

14 July, 2021

Reasons why Azure is the DevOps platform of choice for me

Blog card feature

Integrating Firebase with Ionic + Angular

14 July, 2021

A quick how-to guide for adding Firebase into an Ionic application using Angular

Blog card feature

Creating a Realtime Chat with NodeJs, Express and Socket.io

14 July, 2021

Step-by-Step guide to setting up an express server to run as a realtime chat server

Blog card feature

Adding Rollbar Error Tracking to Ionic + Angular

14 July, 2021

A quick how-to guide to adding Rollbar cloud error logging to your Ionic app with Angular

Blog card feature

Returning JSON objects from an Azure Function in Node.js & Typescript

13 July, 2021

Often, by default, an Azure Function written in NodeJs stringifies the response object being returned. This results in unnecessary JSON parsing on the client in order to be able to process the response. Luckily, we can avoid this by making a simple change to the Azure Function to ensure the object is returned.