Business Cheat Sheet

A glossary of the key terms, acronyms, and ratios commonly considered business basics. Finance and Metrics Accrual Accounting: Records revenue when earned and expenses when incurred, regardless of cash movement. Gives a truer picture than cash accounting. (Basic accounting) EBITDA: Earnings Before Interest, Taxes, Depreciation, and Amortization. A “cleaner” view of profitability before financial structuring. (Basic accounting) CAC (Customer Acquisition Cost): Total cost to acquire a new paying customer (ads + sales + marketing overhead ÷ new customers) [100M Leads p.208]. Industry CAC Benchmarks: Varies heavily. Rule of thumb: aim for CAC ≤ 1/3 of LTGP [100M Leads p.208]. LTV (Lifetime Value): The total revenue expected from a customer over their relationship with you [100M Money Models p.226]. LTGP (Lifetime Gross Profit): LTV × Gross Margin %. More accurate than LTV since it accounts for cost of goods sold [100M Money Models p.228]. LTGP:CAC Ratio: Healthy is ~3:1 (spend $1 to acquire, get $3+ in gross profit). If <1:1, you’re losing money; if 10:1, you’re under-investing [100M Leads p.208]. Free Cash Flow (FCF): Cash left after operating expenses + capital expenditures. Critical because cash pays bills, not “profits” [100M Money Models p.233]. Gross Margin: (Revenue – Cost of Goods Sold) ÷ Revenue. High gross margin = scalable business. Net Margin: Net profit ÷ Revenue. Bottom-line profitability after all costs. Gross vs Net: Gross = before costs (top-line). Net = after costs (bottom-line). Sales ARPU (Average Revenue Per User): Revenue ÷ total customers. Useful in SaaS. BAMFAM (Book A Meeting From A Meeting): Sales discipline: never leave a conversation without scheduling the next step [100M Closing Playbook §Closes]. Churn: % of customers who cancel in a given time period. Inverse of retention [100M Retention Playbook §Churn Math]. Business Models B2C: Business to Consumer: Selling directly to end users. Usually higher volume, lower ticket. B2B: Business to Business: Selling to other companies. Often longer sales cycles, higher ticket. B2B2C: Business sells to another business that serves end consumers (e.g., Shopify → merchants → buyers). Marketplace: Connects buyers and sellers, takes a cut (Airbnb, Uber). Recurring/Subscription: Predictable monthly revenue. Gold standard for valuations. Transactional/One-off: One-time purchases, low predictability. Value Equation Value Equation = (Dream Outcome × Perceived Likelihood of Achievement) ÷ (Time Delay × Effort & Sacrifice) [100M Offers p.47]. Grand Slam Offer: Offer so good people feel stupid saying no [100M Offers p.22]. Risk Reversal: Guarantees that shift risk from buyer to seller [Playbook – Guarantees §Hard Guarantees]. Scarcity/Urgency: Limiting supply or time to push action [100M Offers p.113]. Cost to Value: The perceived value must significantly exceed the price paid; customers buy when the benefit outweighs the cost. Healthy Business Ratios LTGP:CAC = 3:1: minimum healthy [100M Leads p.208]. Churn <5% monthly: strong retention [100M Retention Playbook §Churn Math]. Payback Period ≤ 12 months: CAC recovered within a year [100M Lifetime Value Playbook §Payback]. EBITDA Margin 15–30%: common range for service & SaaS businesses.

September 28, 2025 · 3 min

Entity Resolution with Senzing and the .NET SDK

Context Record vs Entity vs Relationship Data Quality Issues ER Addresses Senzing Repository Key Senzing Attributes Resolution Concepts Candidates Features Feature Scores Match Levels Resolution Rules .NET SDK Primary Interfaces Common Data Structures Typical Implementation Flow Best Practices Performance Optimization Error Handling Configuration Management Troubleshooting Quick Reference Common Issues Diagnostic Tools Senzing V4 Setup on Metal Native Senzing SDK Setup .NET SDK Setup Setup local NuGet source and push Senzing.Sdk Senzing V4 C# Snippets Senzing V4 SDK CLI Tools sz_configtool listFeatures listAttributes listRules listFragments principles sz_explorer get how (tree) Load Sample Data with sz-file-loader Resources Context The process of identifying and linking records that refer to the same real-world entity across different data sources, even when the records contain variations, errors, or incomplete information. ...

September 19, 2025 · 16 min

18 Month Software Project Retrospective

This retrospective reflects my observations about technology and human matters as a result of working on a complex 2 year software development project in a geographically dispersed team. Key Successes Technical Achievements Process Improvements Project Management Challenges Individuals and Interactions over Processes and Tools Working Software over Comprehensive Documentation Customer Collaboration over Contract Negotiation Responding to Change over Following a Plan Challenges and Learnings Technical Challenges Team and Communication Architecture Decisions What Worked Well Technology Stack Team Dynamics Recommendations for Future Projects Personal Growth Lessons for Future Projects Key Successes Technical Achievements Successfully built a big data horizontally scalable ingestion system using Kubernetes and leaned into cloud native approaches early on Established heavy use of Python type hints early on, which improved code quality and editor aid Evangelised Elasticsearch early in the design phase: Led the adoption of Elasticsearch for read workloads, in the face of aprehension and inexperience in the broader team Implemented and tuned sophisticated text analysis pipelines Optimised search with ngram tokenizers, stemming, and asciifolds Designed efficient denormalised document structures and indexing strategies Lesson learned how important it is to make the the most appropriate data storage and management choices, make or break analytic solutions such as the one we collectively built. What consistency guarantees do are required? How fast? How are you going to calculate aggregations? What kind of read or write workloads need to be handled? Can these be separated and tackled as different problems? Elasticsearch is a HUGE reason why we were successful Created flexible hierarchy layering design, allowing differing customers to stamp the data with their own ways of doing things. Integrated OpenTelemetry for comprehensive observability Developed optimistic locking scheme and deep linking capabilities Automated deployments and quality verification with a gigantic test suite investment (unit and integration), linting, autoformatting, all orchestrated with a Makefile frontend and Bamboo CI pipeline The team embraced containers heavily from day 1. From running local vendor infra containers (redis, mongo, elasticsearch, etc) to running repeatable build workloads. Process Improvements Adopted Make for development automation, significantly boosting productivity Leveraged code generation effectively for complex scenarios, an ever powerful technique Implemented comprehensive integration testing with containerization Successfully broke down the system into functional components early Established well-defined data schemas upfront, which provided stability Project Management Challenges Individuals and Interactions over Processes and Tools Team structure and collaboration issues: ...

June 20, 2025 · 7 min

How to Win Friends and Influence People

Key Lessons Fundamental People Handling Techniques If you want honey, don’t kick the beehive - avoid criticism The big secret of people - appreciation Those who can do this have the whole world - arose eagerness Make People Like You Do this and be welcome anywhere - be interested in others Make a good first impression - smile Mini essay by Elbert Hubbard Don’t be headed for trouble - names Become a good conversationalist - listen How to interest people - others interests How to Make People Like You Instantly - make others feel important How To Win People To Your Way Of Thinking You Can’t Win an Argument - avoid like the plague Disagreement Handling Cheat Sheet A Sure Way of Making Enemies and Avoiding It - respect others opinions If You’re Wrong, Admit It - admit wrongs quickly A Drop of Honey - be friendly The Sun and The Wind The Secret of Socrates - focus on agreeable points, not differences A Safety Value in Handling Complaints - talk less, listen more How to Get Cooperation - don’t take credit, plant seeds A Formula That Will Work Wonders - see things from others perspective What Everybody Wants - sympathy An Appeal That Everybody Likes - nobler motives Hollywood Does It - dramatize ideas When Nothing Else Works - stimulate competition Leadership If Must Find Fault, Begin This Way - sandwich technique How to Criticise and Not Be Hated But To And - highlight others mistakes indirectly Talk About Your Own Mistakes First - start with your own shortcomings No One Likes to Take Orders - ask questions Let Others Save Face - be respectful of others pride How to Spur People on to Success - praise every improvement Give A Dog A Good Name - give others a grand reputation to strive for Make The Fault Seem Easy to Correct - encouragment Making People Glad To Do What You Want - empathy Changing Peoples Attitudes Cheat Sheet Dale Carnegie’s flagship “How to Win Friends and Influence People” is a foundational book on communication, relationship-building, and personal effectiveness. First published in 1936, its principles remain relevant for anyone seeking to improve their social skills, leadership, and influence. ...

June 11, 2025 · 54 min

Self taught MBA

This reading list covers the fundamentals of wealth building, personal development, income generation, business scaling, and inspiration from successful entrepreneurs. Each book offers practical insights and strategies for building business acumen and financial success. 🧠 Personal Development How to Win Friends and Influence People by Dale Carnegie Essential communication skills and understanding people’s motivations for effective interaction. The 7 Habits of Highly Effective People by Stephen R. Covey Seven habits for increased efficiency and effectiveness, including “begin with the end in mind.” ...

June 2, 2025 · 4 min

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. Glossary 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 Presentation layer Presentation Layer Key Responsibilities Input Handling and Validation Request Translation Response Formatting Authentication and Authorization Error Handling and Translation Dependency Injection Configuration What the Presentation Layer Does NOT Do Business Logic Data Access Complex Validation State Management Cross-Cutting Concerns Implementation API Controllers and Endpoints Seed Data and EF Migrations .NET Implementation Tips General .NET Tips Domain Layer .NET Tips Application Layer .NET Tips Infrastructure Layer .NET Tips Presentation Layer .NET Tips 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 Glossary Term Definition Aggregate A cluster of domain objects that can be treated as a single unit. An aggregate has one aggregate root and enforces consistency boundaries. Aggregate Root The only member of an aggregate that outside objects are allowed to hold references to. It controls access to the aggregate’s internals. Anemic Domain Model An anti-pattern where domain objects contain little or no business logic, acting mainly as data containers with getters and setters. Application Service A service in the application layer that orchestrates domain objects and infrastructure to fulfill use cases. Bounded Context A central pattern in DDD that defines explicit boundaries within which a domain model is valid and consistent. Clean Architecture An architectural pattern that separates concerns into concentric layers, with dependencies pointing inward toward the domain. Command An object that represents a request to perform an action, often used in CQRS to separate write operations. Context Map A visual representation showing the relationships and integration patterns between different bounded contexts. CQRS Separating read and write operations into different models and potentially different databases. Dependency Inversion A principle stating that high-level modules should not depend on low-level modules; both should depend on abstractions. Domain The subject area or sphere of knowledge and activity around which the application logic revolves. Domain Event Something that happened in the domain that domain experts care about and that triggers side effects. Domain Model An object model of the domain that incorporates both behavior and data, representing the business concepts and rules. Domain Service A service that encapsulates domain logic that doesn’t naturally fit within a single entity or value object. Entity A domain object that has a distinct identity that runs through time and different states. Event Sourcing A pattern where state changes are stored as a sequence of events rather than just the current state. Hexagonal Architecture Also known as Ports and Adapters, isolates the core business logic from external concerns through well-defined interfaces. Infrastructure Layer The outermost layer containing technical details like databases, external APIs, and frameworks. Onion Architecture Similar to Clean Architecture, organizing code in concentric layers with dependencies pointing inward. Port An interface that defines how the application core communicates with external systems (part of Hexagonal Architecture). Query In CQRS, a request for data that doesn’t change system state, optimized for reading operations. Repository A pattern that encapsulates the logic needed to access data sources, centralising common data access functionality. Rich Domain Model A domain model where business logic is encapsulated within domain objects rather than external services. Saga A pattern for managing long-running business processes that span multiple aggregates or bounded contexts. Specification Pattern A pattern used to encapsulate business rules and criteria that can be combined and reused. Ubiquitous Language A common language shared by developers and domain experts within a bounded context. Use Case A specific way the system is used by actors to achieve a goal, often implemented as application services. Value Object An object that describes characteristics or attributes but has no conceptual identity. Guiding Principles High level qualities that a good software architecture should (and enforce) strive for; maintainability, testability and loose coupling. ...

May 29, 2025 · 42 min

Pro CSS

Modern CSS Fundamentals Baseline Progressive Enhancement Logical properties and values CSS Reset CSS Cascade Layers CSS Custom Properties (variables) Colors Typography Media queries and custom properties Structured custom properties Base styles Meaningful links Big picture design system Wrappers Modifiers Option 1: BEM approach Option 2: Data attributes Landmark regions Gems Resources Modern CSS Fundamentals Baseline Baseline features are ones that are supported by all the major browsers (Chrome, Edge, Safari, and Firefox). Both the MDN web docs and caniuse show when a feature has reached either the Newly available or Widely available threshold. ...

May 10, 2025 · 10 min

Zero to One: Notes on Startups and Building the Future

Zero to One is a book by Peter Thiel and Blake Masters about the value of true innovation made accessible to the masses through startups. It outlines several tenets that keen-minded business people should hold dear, including why technology trumps globalization, why we should be supporting monopolies instead of “healthy competition”, why successful innovators have the worldview of a “definite optimist” and why no one should be afraid of losing their job to a robot. Zero to One also delivers unique business insights, such as the four most important things to pay attention to about your product (they’re not quantitative) and the seven questions every business must answer for itself. ...

March 9, 2025 · 27 min

Reflections on ElasticON Sydney 2025

ElasticON in Sydney this March was a packed day, blending technical deep dives with executive-level discussions. The event featured interviews with partners and customers, but the real highlight was the keynote from Ken Exner and Baha Azarmi. Their presentation was slick, showcasing cutting edge GenAI features across the Elastic stack, including the new semantic_text field type, RRF, BBQ, LogsDB mode, and the ability to ETL unstructured data onto ECS using an LLM. The introduction of the ESQL query engine with native joins was another game changer. ...

March 7, 2025 · 6 min

Effective Study Techniques

Studying effectively isn’t just about putting in the hours, it’s about using the right techniques. Research shows that some popular methods, like re-reading notes or highlighting, are far less effective than people assume. Instead, techniques that leverage how our brains naturally process and retain information yield far better results. The Problem with Common Study Habits Memory Palaces: The Ancient Greek Technique The Protégé Effect & The Feynman Technique The Zeigarnik Effect: Why Unfinished Tasks Stick Distributed Learning: The Power of Spacing Conclusion The Problem with Common Study Habits Ineffective techniques: Reading over and over, highlighting, using mnemonics for simple memorization, starting early without a plan, reading notes before and after class, listening to music while studying. ...

March 1, 2025 · 4 min