Articles

Posts, tutorials, documentation, and everything else.

Principle2
Technology3
Apex1
Async Programming1
Best Practices1
DevOps4
Ethics1
APIs1
Jest2
Npm1

2025

2024

Troubleshooting AWS Amplify Authentication - Solving the Mystery of Login Errors

Understanding Terraform Commands Through Real-World Examples

Understanding Common DNS and Email Authentication Terms

Boost Your Productivity with VS Code Multi-root Workspaces - Complete Guide 2024

Understanding Git Ignore Patterns - .gitignore vs .git/info/exclude

Master Git - Understanding Branches, Remotes, and HEAD for Better Collaboration

Mastering Git Diff for Efficient Pull Request Analysis - A Developer's Guide

Essential VS Code Shortcuts for Efficient Coding

Transform Your Python Scripts into Global Command-Line Tools

Resolving 'No Default Dev Hub' Error When Creating Salesforce Scratch Orgs

Mastering Python Package Management - A Guide to Updating and Verifying Your Packages

How to Ignore Files Locally in Git Without Modifying .gitignore

Mastering Generative AI for Efficient Software Development

Efficient GitHub Cloning in AWS Lambda - Sparse Checkout to the Rescue

Why `forEach` Cannot Handle Async - A Real-Life Example and Solutions

Automating Salesforce Package Deployment with AWS Code Services - A Comprehensive Guide

Understanding Record Types and RecordTypeId in Salesforce for Beginners

Understanding Salesforce APIs - Metadata, Tooling, and Bulk

Leveraging NPX and NVM for Efficient Backend Development

How to Debug Salesforce Flows with Asynchronous Apex Methods

How to Fork a Repository, Make Changes, and Update a Submodule in Your Main Project

Understanding 'Origin' in GitHub

Setting Up a Shortcut for GitHub Copilot in VS Code

Mastering Node.js- In-Depth Guide to package.json and package-lock.json

Testing Dependencies in Node.js Projects - A Focus on Package.json

Understanding Metadata API vs Tooling API in Salesforce Development

Mastering SF CLI - In-Depth Guide to sf project convert source and mdapi Commands

How to Fix Divergent Branch Problems in Git - A Step-by-Step Guide.

Managing Multiple Versions with Pyenv, venv, and Pipenv

Mastering Update-Notifier in Node.js with TypeScript

Enhance CLI with Listr - The Node.js Task Manager

Mastering Salesforce CLI with Grep - A Guide to Finding Commands Efficiently

Mastering Jest with TypeScript - A Comprehensive Guide

Understanding Salesforce Packaging - A Comprehensive Comparison of 1GP vs 2GP

Mastering Git Diff - A Comprehensive Guide with Advanced Examples

How to Check if Google Analytics is Working

Understanding Git Revert vs. Manual Reversion - Best Practices for Code Rollbacks

Navigating the 'CNAMEAlreadyExists' Error in AWS CloudFront

Harnessing the Power of Watchtower for Docker -- Automated Updates Made Simple

Understanding and Managing Narcissistic Behaviors in Everyday Life

Mastering Environment Variables in Shell Scripts -- The Power of .env, set -a, and set +a

Mastering ChatGPT for Efficient Software Development

Run Java Applications on macOS without Global JRE Installation

Mastering the Art of Effective Writing in the Information Era

Freeing Up Ports 80 and 443 on Synology NAS for Reverse Proxy Usage

Unboxing Leadership - Insights from "Leadership & Self-Deception"

Managing Multiple Versions with Pyenv and Virtual Environments

2023

How to Uninstall Salesforce CLI from a Specific Node.js Version on macOS

Mastering Domain-Driven Design - Best Practices and Pitfalls

Deep Dive into Domain-Driven Design - Simplifying Complex Projects

Solving SSH Connection Issues on macOS - A Guide to Fixing 'Unprotected Private Key File' Error

How to Rename a Git Branch Using the CLI

How to Remove Inaccessible Scratch Orgs from Your Local SFDX Configuration

Keeping Your Python Packages Up-to-date - A Comprehensive Guide

Understanding the sfdx force:source:convert Command in Salesforce DX

Initializing a Python Project in Visual Studio Code

Passing Command-Line Arguments to a TypeScript Script using NPM

Mastering Git Stash - A Guide to Saving and Restoring Your Code Changes

Checking Object Type in TypeScript

Creating Zip Files from JSON Configuration with Node.js and TypeScript

AWS S3API List Buckets With JMESPath-Queries

Understanding Origin and Branches in GitHub

Git Vs GitHub

How to Update SFDX CLI from One Version to Another

Record Based Configuration in Salesforce

Retreive GitHub Pull Requests Code

How to Delete Unwanted Files from a Pull Request

How to Add Tags in GitHub

Best Practices for Defining Paths for RESTful APIs

AWS API Gateway - Path Parameters

Leveraging AWS SSO to Acquire AWS SecretAccessKey and SessionToken

The Art of Decision-Making - Why Engineers Should Stop Being Imposters

Invoking AWS API Gateway with SigV4 Using TypeScript

AWS-SQS-Queue

Advantages of Using PreSigned URLs vs. Direct File Uploads with AWS SDK to S3

Why You Need to Bother to Use AWS API Gateway

Getting to Yes - Negotiating Agreement Without Giving In by Roger Fisher

aws sso get-role-credentials

A Summary of Influence - The Psychology of Persuasion

When to Use a Sequence Diagram - A Real Life Example

Deploying Services with AWS CDK and AWS SSO

Story or Die - How to Use Brain Science to Engage, Persuade, and Change Minds in Business and in Life Summary

Creating an Empty Commit in GitHub

Using SFDX CLI Command to Insert User to Org

Tier vs Layer - Understanding the Organization of Software Architecture

Understanding the Differences Between IaaS, FaaS, and PaaS in Cloud Computing

Guiding Interns in Your Team

The Pragmatic Programmer; Bend or Break

The Pragmatic Programmer; A Pragmatic Approach

The Pragmatic Programmer; A Pragmatic Philosophy

A Summary of Surrounded by Idiots by Thomas Erikson

The Rules of Work by Richard Templar

Walking the Directory and Creating a TreeNode

AWS SSO with TypeScript

AWS IAM User vs Role

The Observer Pattern

The Decorator Pattern

Strategy Pattern in Dependency Injection

--save-dev in npm

The Strategy Pattern

SFDX Deploy Record using CSV

git diff with Two Tags using simple-git TypeScript

DTO vs Schema

Virtual Class and Abstract Class in Apex

Spread Operator in TypeScript

Retrieve Flow metadata from the sratch org Salesforce

Log Out (Unlink) the Scratch Org from the Project in Salesforce using SFDX

sfdx force:org:display to get the scratch org information Salesforce

Understanding Class Diagrams and UML arrows

Running Apex CLS File on CLI

Partially Applied Types with Type Currying TypeScript

Manage environment variables in TypeScript

What is a Record with Self-Referencing in Salesforce and Why Do We Need It?

Why Apex Test Cannot Find Enum Defined in Apex Class

Shell vs Bash vs Zsh vs Terminal

Get Access Token from Salesforce

How to Switch Scratch Orgs for a VS Code Project Using CLI

Better Validations with includes and Selector Function in TypeScript

How to Fix This Schedulable Class Has Jobs Pending or In Progress Error

Level Up Your JavaScript Skills with Lodash

Resolve a Conflict with Other Devs at Work

Checking If an SObject Exists in a Salesforce Scratch Org

Streamline Your TypeScript Projects with Advanced Path Mapping Techniques

The Imposter, Not Imposter Syndrome in Software Developers

Named vs. Default Imports in TypeScript

Promises in TypeScript

Understanding the Difference Between sfdx force:source:push and sfdx force:source:deploy

Decorators for Class in TypeScript

The Immature Abstraction Problem in Software Engineering - When Code Gets Too Cocky

Setting Up Virtual Environments for Multiple Python Versions

Iterator vs Iterable in TypeScript

Mocking Modules and Functions with Jest

An Introduction to Jest Mock Functionality

Manage Node.js Versions Explained

Use console.time in TypeScript to troubleshoot performance issues

TypeScript's `Pick` and `Omit`

What is the difference between String[] and List<String> in Apex?

Understanding TypeScript's Record Type

TypeScript - What is the difference between type and interface?

Credibility - The Secret Sauce for Success at Work

Optional Chaining in TypeScript

Master TypeScript with Advanced Tricks - Partial

Master TypeScript with Advanced Tricks - Partial Application of Generic Types

Master TypeScript with Discriminated Unions - Enhance Your Coding Skills

Master TypeScript with Conditional Types - Tips for Cleaner, More Efficient Code

Top Techniques for Efficient Array Shuffling

Master TypeScript with Mapped Types - Enhance Your Code Quality

Understanding Taxonomy - Definition, Importance, and Applications

TypeScript Unions - Exploring Discriminated Unions and Best Practices

Efficient Dependency Injection for Testable Code

Understanding Inversion of Control (IoC) in Software Development - Definition and Benefits

Injecting Properties Using Dependency Injection

Exploring Loose Coupling

Understanding Method Injection in Dependency Injection - A Guide to Avoid Common Pitfalls

Understanding Constructor Injection in Dependency Injection - A Comprehensive Guide

Mastering the Open/Closed Principle for Enhanced Software Development

Synology Script - How to Efficiently Move Items from Subfolders to Parent Folder

Understanding and Applying the Liskov Substitution Principle in Object-Oriented Programming

Understanding the YAGNI Principle in Software Development - Less is More