Articles
Posts, tutorials, documentation, and everything else.
Return to Article Atlas
↗
Productivity
2
SaaS
2
VS Code
1
Compliance
1
Technology
3
Troubleshooting
4
User Interface Design
1
Debugging
3
Testing
1
Git Tips
1
2026
Jul 30
Using AgentCore Identity Without a Shared Client Secret
Jul 18
Charters and Plumbing: Why AI Coding Guidelines Always Sound Generic
Jul 02
WAF Comes to AgentCore Gateway: Perimeter Security for the MCP Front Door
Jul 02
Where Do You Run Agent-Generated Code? Lambda MicroVMs and the Isolation Tradeoff
Jun 22
When Google Standardizes the Thing You Built Anyway
Jun 15
Owning the Learning Loop
Jun 09
OpenSearch Serverless NextGen: Does Scale-to-Zero Actually Change RAG Costs (And What It Doesn't)
Jun 08
Interactive Shells in Bedrock AgentCore Runtime — The Debugging Blind Spot Just Closed
Jun 04
Step Functions × AgentCore: When Your Async Pipeline Already Runs Agents
Jun 03
ElastiCache Just Got Durable — What That Means for RAG and Agent Orchestration
Jun 03
Why MCP Clients on AgentCore Gateway Need OAuth Auth Code Flow (Not M2M)
Jun 01
Per-Request Cost Attribution on Amazon Bedrock — InvokeModel Metadata, Inference Profiles, and What to Use When
May 30
Docker Build SSL Failures Behind a Corporate MITM Proxy: Two Patterns
May 28
Bruno + AWS SigV4 with an SSO Profile (No More Pasting Access Keys)
May 27
Adding llms.txt to a Hugo Blog with Output Formats
May 23
Deploy Your Own AI Agent to AWS — Hermes on ECS Fargate with Slack Integration
Mar 30
Personal AWS Cost Guardrails: Budget Alerts, Auto-Stop, and Anomaly Detection on a Hobby Account
Feb 28
AWS Strands vs LangGraph on Bedrock AgentCore: Lessons from Building an Agentic Platform
Feb 14
Why You Should Switch to uv for Python Projects
Feb 09
Why Do Python Experts Use the @property Decorator?
Feb 09
Python __init__.py Explained: Mastering Package Structure and Imports
2025
Dec 20
Updated guide
Build a Governed Agent Platform on AWS
Dec 17
Updated guide
Zero-Trust Agent Systems on AWS
Dec 16
Validate Policy Claims with Amazon Bedrock Automated Reasoning Checks
Dec 15
Updated guide
Amazon Bedrock AgentCore: A Service Map for Production Boundaries
Dec 14
Updated guide
Real-Time Voice Agents with Amazon Nova 2 Sonic
Dec 13
Updated guide
Multi-Tenant Isolation with Amazon Bedrock AgentCore
Dec 12
Designing Multi-Agent Systems Only When One Agent Is Not Enough
Dec 11
Updated guide
MCP and A2A Boundaries on Amazon Bedrock AgentCore
Dec 09
Updated guide
AgentCore Memory Events, Strategies, and Isolation
Dec 08
Updated guide
Durable Long-Running Jobs with Amazon Bedrock AgentCore
Aug 20
Updated guide
Run n8n Queue Mode on AWS ECS with Recoverable Operations
Jul 22
Kiro After General Availability: Specs, Agents, CLI, and Web
May 25
AWS Vector Databases for RAG — A 2026 Architectural Decision Guide
May 21
Updated guide
A Practical Taxonomy for AI Agent Systems
Apr 11
Updated guide
Cognito and Salesforce OIDC Trust Topologies
Jan 31
Ruby Syntax and Core Collection Methods for Beginners
Jan 24
Build a Privacy-Aware Meeting Transcription Workflow with Amazon Transcribe
2024
Dec 30
Updated guide
Debug AWS Amplify and Cognito Sign-In Flows
Dec 24
A Safe Terraform Init, Plan, and Apply Workflow
Nov 25
DNS and Email Authentication Without the Misleading Shortcuts
Nov 05
Working with VS Code Multi-root Workspaces
Nov 01
Understanding Git Ignore Patterns - .gitignore vs .git/info/exclude
Oct 15
Git Branches, Remotes, and HEAD
Sep 30
Git Diff for Pull Request Analysis
Sep 21
Useful VS Code Shortcuts for Everyday Editing
Sep 14
Updated guide
Package and Install a Python Command-Line Application
Aug 22
Python Package Updates - A Guide to Updating and Verifying Your Packages
Aug 18
How to Ignore Files Locally in Git Without Modifying .gitignore
Aug 12
Updated guide
Evidence-Driven AI-Assisted Software Development
Jul 31
Efficiently Read a Git Repository from AWS Lambda
Jul 16
Resolving 'No Default Dev Hub' Error When Creating Salesforce Scratch Orgs
Jun 22
Why `forEach` Cannot Handle Async - A Real-Life Example and Solutions
Jun 15
Updated guide
Salesforce CI/CD with AWS CodePipeline and CodeBuild
Jun 04
Updated guide
Use Salesforce Record Types Without Hard-Coded IDs
May 05
Updated guide
Choose the Right Salesforce API
Apr 30
Leveraging NPX and NVM for Efficient Backend Development
Apr 28
Updated guide
Debug Flow-Invoked Queueable Apex with Correlated Logs
Apr 20
How to Fork a Repository, Make Changes, and Update a Submodule in Your Main Project
Apr 05
Understanding the Git Remote Named 'origin'
Mar 25
Setting Up a Shortcut for GitHub Copilot in VS Code
Mar 20
Node.js Guide to package.json and package-lock.json
Mar 19
Testing Dependencies in Node.js Projects - A Focus on Package.json
Mar 18
Understanding Metadata API vs Tooling API in Salesforce Development
Mar 17
Mastering SF CLI - In-Depth Guide to sf project convert source and mdapi Commands
Mar 12
How to Fix Divergent Branch Problems in Git - A Step-by-Step Guide.
Mar 11
Updated guide
Choosing a Python Project and Dependency Workflow
Feb 26
Update Notifications in Node.js with TypeScript
Feb 19
Structured CLI Tasks with Listr2
Feb 11
Mastering Salesforce CLI with Grep - A Guide to Finding Commands Efficiently
Feb 10
Testing TypeScript with Jest
Feb 05
Updated guide
Choose a Salesforce Package Model: 1GP, Managed 2GP, or Unlocked
Jan 27
Git Diff for Working Trees, Commits, and Branches
Jan 25
How to Check if Google Analytics is Working
Jan 24
Understanding Git Revert vs. Manual Reversion - Best Practices for Code Rollbacks
Jan 23
Resolve CloudFront CNAMEAlreadyExists Without an Avoidable Outage
Jan 22
Updated guide
Safe Container Updates on a Personal Docker Host
Jan 21
Understanding and Managing Narcissistic Behaviors in Everyday Life
Jan 20
Environment Variables in Shell Scripts with set -a
Jan 17
Run Java Applications on macOS without a System-Wide JDK
Jan 15
Mastering the Art of Effective Writing in the Information Era
Jan 14
Freeing Up Ports 80 and 443 on Synology NAS for Reverse Proxy Usage
Jan 13
Unboxing Leadership - Insights from "Leadership & Self-Deception"
Jan 01
Managing Multiple Versions with Pyenv and Virtual Environments
2023
Dec 01
How to Uninstall Salesforce CLI from a Specific Node.js Version on macOS
Nov 30
Domain-Driven Design Practices and Pitfalls
Nov 29
Deep Dive into Domain-Driven Design - Simplifying Complex Projects
Nov 28
Solving SSH Connection Issues on macOS - A Guide to Fixing 'Unprotected Private Key File' Error
Oct 30
How to Rename a Git Branch Using the CLI
Sep 12
How to Clean Up Inaccessible Scratch Org Authorizations
Sep 08
Updated guide
Safely Update Python Project Dependencies
Sep 06
Updated guide
Salesforce Source Format, Conversion, and Deployment
Aug 31
Initializing a Python Project in Visual Studio Code
Aug 18
Passing Command-Line Arguments to a TypeScript Script using NPM
Jul 31
Using Git Stash to Save and Restore Work in Progress
Jul 05
Checking Object Type in TypeScript
Jul 03
Creating Zip Files from JSON Configuration with Node.js and TypeScript
Jun 26
Query S3 Buckets Safely with the AWS CLI and JMESPath
Jun 25
Fish Shell for Interactive Development
Jun 24
Understanding Origin and Branches in GitHub
Jun 23
Git Vs GitHub
Jun 22
Updated guide
Install and Update Salesforce CLI Safely
Jun 21
Updated guide
Choose the Right Salesforce Configuration Tool
Jun 20
Retreive GitHub Pull Requests Code
Jun 19
Updated guide
Safely Remove Unwanted Files from a Pull Request
Jun 18
How to Add Tags in GitHub
Jun 17
Best Practices for Defining Paths for RESTful APIs
Jun 16
Path Parameters in Amazon API Gateway
Jun 15
Updated guide
Use AWS Temporary Credentials Without Reading Cache Files
Jun 14
The Art of Decision-Making - Why Engineers Should Stop Being Imposters
Jun 13
Updated guide
Sign API Gateway Requests with SigV4 and AWS SDK for JavaScript v3
Jun 12
Designing Reliable Work Queues with Amazon SQS
Jun 11
Secure Direct Uploads with Amazon S3 Presigned URLs
Jun 10
Choosing When to Use Amazon API Gateway
Jun 09
Getting to Yes - Negotiating Agreement Without Giving In by Roger Fisher
Jun 08
Updated guide
Export IAM Identity Center Credentials Only When a Tool Requires Them
Jun 07
A Summary of Influence - The Psychology of Persuasion
Jun 06
When to Use a Sequence Diagram - A Real Life Example
Jun 05
Updated guide
Deploy a Serverless API Safely with AWS CDK v2
Jun 04
Story or Die - How to Use Brain Science to Engage, Persuade, and Change Minds in Business and in Life Summary
Jun 03
Creating an Empty Commit in GitHub
Jun 02
Updated guide
Create Salesforce Scratch Org Users with sf CLI
Jun 01
Tier vs Layer - Understanding the Organization of Software Architecture
May 31
Understanding the Differences Between IaaS, FaaS, and PaaS in Cloud Computing
May 30
Guiding Interns in Your Team
May 29
The Pragmatic Programmer; Bend or Break
May 28
The Pragmatic Programmer; A Pragmatic Approach
May 27
The Pragmatic Programmer; A Pragmatic Philosophy
May 26
A Summary of Surrounded by Idiots by Thomas Erikson
May 25
The Rules of Work by Richard Templar
May 24
Walking the Directory and Creating a TreeNode
May 23
Updated guide
Use IAM Identity Center Profiles Safely from TypeScript
May 22
Updated guide
AWS Access in 2026: Federation and Temporary Credentials First
May 21
The Observer Pattern
May 20
The Decorator Pattern
May 19
Strategy Pattern in Dependency Injection
May 18
--save-dev in npm
May 17
The Strategy Pattern
May 16
Updated guide
Upsert Salesforce Data from CSV with sf CLI
May 15
git diff with Two Tags using simple-git TypeScript
May 14
DTO vs Schema
May 12
Virtual Class and Abstract Class in Apex
May 12
Spread Operator in TypeScript
May 11
Retrieve Flow Metadata from a Salesforce Scratch Org
May 10
Log Out (Unlink) the Scratch Org from the Project in Salesforce using SFDX
May 09
Updated guide
Inspect Salesforce Orgs Without Exposing Secrets
May 08
Understanding Class Diagrams and UML arrows
May 07
Updated guide
Run Anonymous Apex Safely with sf CLI
May 06
Partially Applied Types with Type Currying TypeScript
May 05
Manage environment variables in TypeScript
May 04
What is a Record with Self-Referencing in Salesforce and Why Do We Need It?
May 03
Updated guide
Apex Nested Enums and Name Shadowing
May 02
Shell vs Bash vs Zsh vs Terminal
May 01
Updated guide
Salesforce CLI Authentication Without Token Leaks
Apr 30
How to Switch Scratch Orgs for a VS Code Project Using CLI
Apr 29
Better Validations with includes and Selector Function in TypeScript
Apr 28
How to Fix This Schedulable Class Has Jobs Pending or In Progress Error
Apr 27
Level Up Your JavaScript Skills with Lodash
Apr 26
Resolve a Conflict with Other Devs at Work
Apr 25
Updated guide
Check Salesforce Object Availability with sf CLI
Apr 24
Streamline Your TypeScript Projects with Advanced Path Mapping Techniques
Apr 23
The Imposter, Not Imposter Syndrome in Software Developers
Apr 22
Named vs. Default Imports in TypeScript
Apr 21
Promises in TypeScript
Apr 20
Updated guide
Salesforce CLI Deployment and Source Tracking
Apr 19
Updated guide
TypeScript Decorators After TypeScript 5.0
Apr 18
Recognizing a Premature Abstraction
Apr 17
Updated guide
A Practical Python Environment Workflow in 2026
Apr 16
Iterator vs Iterable in TypeScript
Apr 15
Mocking Modules and Functions with Jest
Apr 14
An Introduction to Jest Mock Functionality
Apr 13
Manage Node.js Versions Explained
Apr 12
Use console.time in TypeScript to troubleshoot performance issues
Apr 11
TypeScript's `Pick` and `Omit`
Apr 10
Updated guide
Apex List Syntax and Nested Collections
Apr 09
Understanding TypeScript's Record Type
Apr 08
TypeScript - What is the difference between type and interface?
Apr 07
Credibility - The Secret Sauce for Success at Work
Apr 06
Optional Chaining in TypeScript
Apr 05
Using TypeScript's Partial Utility Type
Apr 04
Partial Application of Generic Types in TypeScript
Apr 03
Modeling States with TypeScript Discriminated Unions
Apr 02
Using Conditional Types in TypeScript
Apr 01
Top Techniques for Efficient Array Shuffling
Mar 31
Using Mapped Types in TypeScript
Mar 30
Understanding Taxonomy - Definition, Importance, and Applications
Mar 30
TypeScript Unions - Exploring Discriminated Unions and Best Practices
Mar 29
Efficient Dependency Injection for Testable Code
Mar 28
Understanding Inversion of Control (IoC) in Software Development - Definition and Benefits
Mar 27
Injecting Properties Using Dependency Injection
Mar 27
Exploring Loose Coupling
Mar 26
Understanding Method Injection in Dependency Injection - A Guide to Avoid Common Pitfalls
Mar 25
Understanding Constructor Injection in Dependency Injection - A Comprehensive Guide
Mar 24
Applying the Open/Closed Principle
Mar 23
Synology Script - How to Efficiently Move Items from Subfolders to Parent Folder
Mar 22
Understanding and Applying the Liskov Substitution Principle in Object-Oriented Programming
Mar 21
Understanding the YAGNI Principle in Software Development - Less is More