Welcome

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

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 Application layer Infrastructure layer Presentation layer .NET Implementation Tips Records 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, centralizing 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 Â· 9 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

Stubborn Attachments: A Vision for a Society of Free, Prosperous and Responsible Individuals

Stubborn Attachments is a book by Tyler Cowen that paints a picture of an altruistic and bright future for the human race. Cohen argues and highlights the importance of sustained economic growth, moral philosophy and consequentialism, radical uncertainty, rules-based ethics, that future generations matter deeply, and how we as a race must be stubbornly attached to certain core principles as the necessary pre-conditions for sustainable prosperity. To be honest I avoid books like this, because they are hard. I mean, where do you start pulling apart such a broad and complicated topic. I thank Cohen for expanding my thinking towards civilization and painting the broad brushstrokes of a future pathway our race must strive for. ...

February 15, 2025 Â· 7 min

Hiking Retrospectives

Getting out on the trail is one my favourite things to do, especially long multi-day hikes. I’ve got into the habbit of reflecting after each adventure, what worked well, what didn’t, potential opportunities or tips I discovered from other more experienced hikers. In software, some agile methods refer to this act as a retrospective and its a powerful way to get better at something. “At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly” - Agile Manifesto, 2001 ...

February 9, 2025 Â· 4 min

Certified Kubernetes Administrator (CKA)

Glossary Certification tips Bookmarks kubectl imperative commands Docker vs containerD ctr nerdctl crictl etcd etcdctl kube-apiserver kube-controller-manager ReplicaSets Deployments Services Namespaces Working with namespaces Creating a new namespace Declaratively Imperatively Namespace-less objects Gems Glossary Term Definition cri Container Runtime Interface, the contract between k8s and the container runtime crictl ctr Debugging tool for containerD oci Open Container Initiative, formalised the specification of an imagespec and a runtimespec nerdctl Docker like CLI experience for containerD Certification tips Bookmarks https://kubernetes.io/docs/reference/kubectl/conventions/ ...

January 19, 2025 Â· 8 min

Rubiks Cube Algo

This algorithm is just muscle memory in my hands and wasn’t as easy to explain in words as I thought. To help teach my 5yo nephew I wanted clear, simple steps. Step 1: Form a Daisy Step 2: Fill in the White Corners (“Chase the White Dogs”) Step 3: Solve the Middle Row Step 4: Create a Yellow Plus Step 5: Align the Yellow Corners (“Feed the Yellow Fish”) Step 6: Match Top Corners Step 7: Solve the Final Layer Step 1: Form a Daisy Start by creating a white plus sign (the petals) on the yellow face (center). Align each white petal’s adjacent color with its matching middle-row center color. Once matched, rotate the petal 180° to move it to the bottom face. Repeat this process for all petals until you form a white cross on the bottom face. Step 2: Fill in the White Corners (“Chase the White Dogs”) Find any white corner pieces on the bottom layer (the “dogs”). Rotate the bottom layer to position a white corner directly below its matching color. For example, a white/green corner should be under the green side. Bring the corner into the white face by rotating the side it’s under downward, “scooping” the corner piece into place. Repeat until the entire white face is completed, and the bottom row edges align with their center colors. Step 3: Solve the Middle Row Identify edge pieces on the bottom layer that do not contain yellow (e.g., an orange/blue edge). Determine the direction the piece needs to move: left or right. Follow this sequence to place it: Turn the bottom layer away from the target destination. Rotate the bottom layer towards the destination. Move the corresponding side of the middle layer downward. Rotate the middle layer toward the destination. Move the same side of the middle layer upward. Restore the white cross if needed. Repeat until all middle-row edges are in place. Step 4: Create a Yellow Plus Use the FUR-RUF sequence: Front, Up, Right, Right, Up, Front. Repeat this pattern until you form a yellow cross on the top face. Step 5: Align the Yellow Corners (“Feed the Yellow Fish”) Look for a “yellow fish” pattern on the top face (a yellow triangle or “arrow”). Perform this sequence: Rotate the Right face clockwise twice. Rotate the Top face counter-clockwise once. Rotate the Right face clockwise again. Rotate the Top face clockwise once. Flip the cube so the yellow face remains on top, then rotate the Top face counter-clockwise. Step 6: Match Top Corners Find two adjacent corners with matching side colors. Position them so they face the correct side. Use this sequence to adjust the corners: Counter-clockwise, Clockwise, Counter-clockwise, Flip, Clockwise, Counter-clockwise, Counter-clockwise, Flip, Flip. Repeat as needed until all corners align with their sides. Step 7: Solve the Final Layer Finish the cube with this sequence: Flip, Clockwise x3, Counter-clockwise x5, Clockwise, Counter-clockwise. Adjust any remaining misaligned edges by repeating this pattern.

December 26, 2024 Â· 3 min