Welcome

đź‘‹ I’m Benny, a software engineer and entrepreneur. Here I like to write about computers, life hacks and ideas.

Claude Code Gems

Insight Report Effort level Remote Control Batch tasks Simplify Recurring work (loops) Rewind Mode Hooks and Automation BTW side questions Agent Teams and Parallel Work Danger Mode Insight Report Generates a structured report about your codebase and how you’ve been working with Claude Code. It analyses your conversation history, tool usage patterns, and the types of tasks you’ve been tackling. Useful for understanding your own workflow patterns — where you spend time, what types of tasks you delegate most, and where friction tends to occur. Think of it as a retrospective on your AI-assisted development habits. ...

April 10, 2026 Â· 8 min

Claude Code Gems

Insight Report Effort level Remote Control Batch tasks Simplify Recurring work (loops) Rewind Mode Hooks and Automation BTW side questions Agent Teams and Parallel Work Danger Mode Insight Report Generates a structured report about your codebase and how you’ve been working with Claude Code. It analyses your conversation history, tool usage patterns, and the types of tasks you’ve been tackling. Useful for understanding your own workflow patterns — where you spend time, what types of tasks you delegate most, and where friction tends to occur. Think of it as a retrospective on your AI-assisted development habits. ...

April 10, 2026 Â· 8 min

Do It Now - Brian Tracy

Brian Tracy’s “Do It Now” philosophy is about overcoming procrastination by developing a sense of urgency, programming your subconscious with positive commands, setting clear goals, and acting quickly and consistently to achieve them, transforming thoughts into actions for success. He teaches that this mindset involves mental conditioning through repetition (like saying “Do it now”), focusing on goals, managing your environment, and cultivating a positive self-concept, leading to faster progress and a more fulfilling life. ...

December 16, 2025 Â· 8 min

Managing multiple SSH GitHub identities

Now I’m involved in multiple businesses, I’m finding I need to frequently juggle multiple SSH key pairs (aka identities) with choose your favourite git offering (e.g. GitHub). When I push and pull to origins on the same machine, I need to alternate the identities I use. The best approach is to use an SSH config file to define host aliases. This lets you seamlessly use different keys without manually switching anything. ...

December 12, 2025 Â· 2 min

Entity Resolution and the Instability Problem

The Problem Solution 1: Make the API record‑centric, not entity‑centric Solution 2: Introduce your own stable external Entity ID and map it to Senzing 2.1. Public vs internal IDs 2.2. Handling merges 2.3. Handling splits 2.4. Pros / Cons Solution 3: Provide an entity change feed (events) for downstream sync 3.1. Why? 3.2. Event model Solution 4: Treat entity IDs as ephemeral handles with TTL semantics Solution 5: Event‑sourcing / versioned entities (for heavy compliance/audit use‑cases) FrankenRes Internals API surface Detecting Splits and Merges with Senzing What Senzing actually provides (the barebones) Minimum state you need to track Robust per-event processing pattern Concurrency safeguard Split vs Merge Detection Detecting splits Detecting merges A simplier way Senzing Lifecycle Detector C# Implementation Single-file example Usage TL;DR The Problem The classic entity resolution gotcha: the thing that looks like a primary key (e.g. Senzing’s entity ID) is actually a volatile cluster ID that can legitimately change as the engine learns. Senzing explicitly says their resolved entity ID is not a globally unique persistent identifier and that it’s just an identifier for a grouping that may be transient. (senzing.zendesk.com) ...

December 2, 2025 Â· 23 min

Shadcn UI Quick Reference

wat components.json The cn() Helper globals.css & Theming Dark Mode Dependencies Explained CVA Example Blocks vs Components Quick Start Workflow Forms with TanStack + shadcn/ui Claude Code + MCP Tips Essential Commands Mental Model wat shadcn/ui is a set of beautifully-designed, accessible components and a code distribution platform. Works with your favorite frameworks and AI models. Open Source. Open Code. components.json Controls how CLI installs components, paths, and styling preferences. ...

December 1, 2025 Â· 5 min

React v19

React React No Frills Tools npm Prettier ESLint Vite Vite Proxy TypeScript Bleeding Edge and Alternative Tools JSX DOM control Styling Rendering Lists Handling Events Passing Parameters to Event Handlers Passing JSX as Props React Hooks useState useEffect Custom Hooks useContext useRef Forms and User Input Push Cart to Server React Ecosystem TanStack Router Vite Setup routeTree.gen.ts Router Setup TanStack Query Resources React React is a JavaScript library for building component based interactive UI’s. ...

May 5, 2019 Â· 27 min

Derivatives Trading

This post captures foundational knowledge that will help master Australian derivates trading. Options Fundamentals Call Option Analogy: Renting the Right to Buy a House Later Put Option Analogy: Renting the Right to Sell a House Later American vs European Buyer vs Seller Options Bring Flexibility The Value of an Option Call Value Example Option Premiums End-To-End Call Walkthrough Portfolio Strategies Covered Calls Covered Puts Spread Trading Bull Call (debit) Bull Put (credit) Bear Put (debit) Bear Call (credit) Condor (debit) Iron Condor (credit) Indicators Stochastics Bollinger Bands 50-Day Moving Average (50-DMA) Volume Options Trading Cheat Sheet FAQ Glossary Options Fundamentals An option is a contract that gives you the right, but not the obligation, to buy or sell a stock at a specific price (called the strike price) before a certain date (the expiration date). ...

October 11, 2025 Â· 22 min

.NET Clean Architecture

Domain centric architectures, like clean architecture, have inner architectural cores that model the domain. Dependency inversion is king, with inner layers defining abstractions and interfaces and outer layers implementing them. Clean architecture is a good fit when aligning to Domain Driven Design (DDD), dealing with complex business logic, high testability is desirable and/or working in a large team, as the architecture can enforce design policies. Guiding Principles Clean Architecture Layers Domain layer Entities Value Objects Domain Events Domain Services Interfaces Results and Exceptions Application layer: The Use Case Orchestrator Application Layer Key Responsibilities Use Case Orchestration Higher Order Business Logic Cross Cutting Concerns Exception Translation & Handling Dependency Injection Hub What the Application Layer Does NOT Do Example Application Service Dependency Injection and MediatR Bootstrapping CQRS Abstractions Handling Domain Events Cross Cutting Concerns with MediatR Pipelines Logging Pipeline Validation Pipeline with FluentValidation Infrastructure layer Infrastructure Layer Key Responsibilities Data Persistence and Access External Service Integration Cross Cutting Concerns Implementation Event Handling Infrastructure What the Infrastructure Layer Does NOT Do Example Concrete Provider for IDateTimeProvider EF Core Setup Integrating Domain Entities with EF Core Publishing Domain Events in the Unit of Work Handling Race Conditions with Optimistic Concurrency Distributed Cache Service Presentation layer Presentation Layer Key Responsibilities What the Presentation Layer Does NOT Do API Controllers and Endpoints Seed Data and EF Migrations Authentication (authn) with Keycloak Authorization (authz) Role-based Authorization Permission-based (Policy) Authorization Resource-based Authorization Structured Logging Health Checks .NET Implementation Tips General .NET Tips Domain Layer .NET Tips Application Layer .NET Tips Infrastructure Layer .NET Tips Presentation Layer .NET Tips Structured Logging Serilog Serilog and Seq Setup Guide Outbox Pattern The Problem The Solution Key Benefits Outbox .NET Implementation Outbox Message Definition Transactionally Publish Domain Events as Outbox Messages Background Worker Job with Quartz.NET Hookup Dependency Injection ASP.NET Core Minimal APIs Controller to Minimal API Conversion Cookbook Centralising Route Opinions with Route Groups Testing Domain Layer Unit Testing Application Layer Unit Testing Mocking with NSubstitute Application Layer Integration Testing with TestContainers Troubleshooting Accessing Internal Symbols Bonus: Contemporary .NET gems Primary Constructors Switch Expressions Records Async Tips MediatR IRequest and IRequestHandler - Request/Response Publishing INotification and INotificationHandler - Pub/Sub Publishing MediatR.Contracts Package Visual Studio and Roslyn Code Quality Level Ups dotnet CLI Tips Guiding Principles High level qualities that a good software architecture should (and enforce) strive for; maintainability, testability and loose coupling. ...

May 29, 2025 Â· 57 min

AI Dev Setup

A place to document how I use AI to assist the development of software. Context Is King Token Sizing Guidelines (Pebble → Boulder) Claude Code Awesome Claude Level Ups Claude Code Cheat Sheet Basics Context Management Miscellaneous Caching Codebase Knowledge CLAUDE.md Files (Persistent Memory) API Prompt Caching Async Subagents Skills Plugins Hooks Teleport Sessions General Purpose Context Management vibe-rules Context Is King Managing the context window for your model is the most benefitial thing you can do as the human-in-the-loop. ...

October 18, 2025 Â· 6 min