Posts

Mastering The Lingo: A Senior's Guide to Agile communication

Image
How to Communicate More Effectively in an Agile Software Development Team Introduction Effective communication is crucial in any team setting, but it is especially critical in an agile software development team. Agile development practices require constant communication and collaboration between team members. In this blog post, we will discuss how software developers can communicate better with their non-technical and technical team members using examples of good and bad communication. Effective Communication with Non-Technical Team Members Communicating with non-technical team members can pose significant challenges for younger or less experienced developers. It can be frustrating when our technical jargon and concepts aren't easily understood by non-technical individuals. Finding the balance is an important skill for a master communicator. Lets review some examples Bad communication example: "The API's are not responding with the correct response payloads." G

Setting up and using the AI Commits NPM Package

Image
Using the AI Commits NPM Package Introduction Artificial Intelligence (AI) is a technology that's increasingly being integrated into various aspects of our daily lives. One area where AI has made significant progress is in the field of software development. The AI Commits NPM package is a tool that leverages AI to improve the software development process by suggesting commit messages based on code changes. In this blog post, we'll discuss how to use the AI Commits NPM package and the benefits it provides for developers. Pre-requisites To utilize AI commits, you will need to set up an OpenAI API Key. If you have not already done so, you can register for an account and set up a key at https://platform.openai.com/account/api-keys . Important: While this is a paid service, it is usage-based and in my personal experience, it has not yet reached the $1 mark. However, your usage may vary, so it is recommended to set up usage limits on your OpenAI billing page to ensure that you do n

Implementing a re-usable Angular Material Snackbar service

Image
  Implementing a generic Angular Material Snackbar service When developing web applications, it is common to display feedback messages to users. A snackbar is a popular way of conveying short-lived messages to a user. A snackbar is a dismissible message that appears temporarily at a fixed position on the screen. In this blog, we will discuss how to create a generic and re-usable angular material snackbar implementation within an angular service Creating the Snackbar Service To create the Snackbar service, we need to first generate a new service using the Angular CLI. We can do this by running the following command in the terminal: ng generate service snackbar This will generate a new service file named snackbar.service.ts in the src/app directory. Next, we need to import the MatSnackBar module from Angular Material. We can do this by adding the following line at the top of the snackbar.service.ts file: import { MatSnackBar } from '@angular/material/snack-bar';

Service Workers In Angular (v12+)

Image
Service Workers in Angular What are Service Workers? Service Workers are scripts that run in the background of a web page and act as a proxy between the web page and the network. They allow developers to create offline-first web applications, where the app can work even when there is no network connection. Service Workers can also cache the web page's assets, such as images, CSS, and JavaScript files, so that the web application can load faster. With service workers, developers can deliver web applications that provide consistent performance and functionality, regardless of the user's network status. By intelligently caching essential assets, service workers enable the application to load quickly, even in challenging network conditions. This caching mechanism also reduces the reliance on continuous network requests, further enhancing the user experience by minimizing data consumption. Using Service Workers in Angular To use Service Workers in an Angular application, we

Dependency Injection: What it is and How to Use it

Image
Introduction In software engineering, dependency injection is a technique that enables a class or module to receive its dependencies from an external source rather than creating them itself. This approach decouples the code from external dependencies, making it easier to test and maintain. What is Dependency Injection? Dependency Injection (DI) is a design pattern that helps you decouple the code by passing dependencies to a class or module. It is a technique where one object supplies the dependencies of another object. It is a way to achieve loose coupling between objects and makes it easier to test, maintain and extend your code. How to Use Dependency Injection with Examples Let's take a look at an example of how to use dependency injection in C# code. Suppose we have a class called UserService which is responsible for creating and managing user accounts. The UserService class requires a UserRepository object to interact with the database. public class UserService {

Database Normalization

Image
How to normalize databases several layers deep What is normalization? It’s a simple method of breaking up tables into smaller tables linking relationships to reduce data redundancy and eliminate insertion, update and deletion anomalies. There are a few keywords that we should gloss over first before we begin. ‘Non-Atomic’ is the word used to describe a data item that can be broken down further. Examples of non-atomic data A full name: John Hunt when a first name and surname is present in the database. A full address: 6 Picton Road, London, WR1 4PG. Data that is part of a larger dataset e.g Oxford Book club and Coventry Health club. Primary Key — Field in a table that uniquely identifies each record in the table, cannot be null and should be rarely changed. Foreign Key — Linking a table Primary Key to another table. Let’s get into the several layers of normalisation, starting with the First Normal Form. We will be using example tables on the left and the normalized tables on the rig

Worklife hack for less meetings and/or more productive meetings

Image
 We've recently been brainstorming in our management circle to improve our time management.   As we, like I believe everyone these days, have so many meetings in our hybrid work days. We then end up not paying as much attention in these meetings as we should or not getting to the work that we are supposed to be getting to. We came up with this simple hack when scheduling a meeting yourself or when receiving an invite, request the organizer to include these 2 items in the description: Have an Agenda about what needs to be discussed Include a list of Required Outcomes / Decision Points by the end of the meeting The effect should intentionally be that only the relevant people will be included, or that you can decline a meeting where you can see that you clearly are not needed in, or ideally keep the meeting on point and most important of all it would have made sure that this meeting was really necessary in the first place and couldn't have been replaced by just sending a message o