✍🏾 Writing on software engineering, startups, marketing, pm, and SaaS building.

All of my in-depth writings, organised chronologically, on topics including entrepreneurship, leadership, personal development and programming.

Laravel Middleware: A step-by-step guide

Learn the basics of Laravel middleware and how to create custom middleware for your application. This step-by-step guide covers everything you need to know about using middleware in Laravel, including how to create, register, and use middleware in your routes.

Laravel Routing: A Beginner's Guide to Mastering URL Management

Learn how to effectively manage your URL routes in Laravel with this beginner-friendly tutorial. From basic routing to advanced techniques, this guide covers everything you need to know to take full control of your application's URLs.

Creating Custom Facades in Laravel: A Step-by-Step Guide

Learn how to create custom facades in Laravel for a cleaner and more organized codebase. This step-by-step guide covers everything you need to know about creating custom facades, including how to define them, how to use them in your code, and how to troubleshoot common issues. Discover the power of custom facades and how they can improve your Laravel development workflow.

Leveraging Laravel Facades for Cleaner, More Readable Code

Learn how to use Laravel Facades to simplify your code and make it more readable. This tutorial covers everything you need to know about Laravel Facades, including how to create them, how to use them, and best practices for using them in your Laravel application.

Slots in Vue 3: A Comprehensive Guide

Learn how to use slots in Vue 3 to pass content from a parent component to a child component. This comprehensive tutorial covers everything you need to know about slots in Vue 3, including how to define slots, how to use slots in templates, and how to use slots in combination with other Vue 3 features. Discover the power of slots and how they can help you build dynamic and reusable UIs with Vue 3.

Emits in Vue 3: A Comprehensive Guide

Learn how to use emits in Vue 3 to pass data from a child component to a parent component. This comprehensive tutorial covers everything you need to know about emits in Vue 3, including how to define emits, how to use emits in templates, and how to use emits in combination with other Vue 3 features. Discover the power of emits and how they can help you build dynamic and reusable UIs with Vue 3.

Props in Vue 3: A Comprehensive Guide

Learn how to use props in Vue 3 to pass data from a parent component to a child component. This comprehensive tutorial covers everything you need to know about props in Vue 3, including how to define props, how to use props in templates, and how to use props in combination with other Vue 3 features. Discover the power of props and how they can help you build dynamic and reusable UIs with Vue 3.

Components in Vue 3: A Comprehensive Guide

Learn how to use components in Vue 3 to build efficient and scalable user interfaces. This comprehensive tutorial covers everything you need to know about components in Vue 3, including how to define components, how to use components in templates, and how to use components in combination with other Vue 3 features. Discover the power of components and how they can help you build modular and reusable UIs with Vue 3.

Watchers in Vue 3: A Comprehensive Guide

Learn how to use watchers in Vue 3 to build dynamic and reactive user interfaces. This comprehensive tutorial covers everything you need to know about watchers in Vue 3, including how to define watchers, how to use watchers in templates, and how to use watchers in combination with other Vue 3 features. Discover the power of watchers and how they can help you build responsive and interactive UIs with Vue 3.

Lifecycle and Template Refs in Vue 3: A Comprehensive Guide

Learn how to use the lifecycle of a Vue 3 component and template refs to build dynamic and reactive user interfaces. This comprehensive tutorial covers everything you need to know about the lifecycle of a Vue 3 component, including how to use lifecycle hooks and template refs to access DOM elements in templates. Discover the power of the lifecycle and template refs and how they can help you build responsive and interactive UIs with Vue 3.

Computed Properties in Vue 3: A Comprehensive Guide

Learn how to use computed properties in Vue 3 to build dynamic and reactive user interfaces. This comprehensive tutorial covers everything you need to know about computed properties in Vue 3, including how to define computed properties, how to use computed properties in templates, and how to use computed properties in combination with other Vue 3 features. Discover the power of computed properties and how they can help you build responsive and interactive UIs with Vue 3.

List Rendering in Vue 3: A Comprehensive Guide

Learn how to use list rendering in Vue 3 to display collections of data in your Vue applications. This comprehensive guide covers everything from basic usage to advanced features such as key tracking and performance optimization.

Building Dynamic Interfaces with Laravel Livewire Events

Learn how to use Laravel Livewire events to create responsive and dynamic user interfaces in your Laravel applications. This tutorial covers the basics of working with events in Livewire.

Conditional Rendering in Vue 3: A Comprehensive Guide

Learn how to use conditional rendering in Vue 3 to build dynamic and interactive user interfaces. This comprehensive tutorial covers everything you need to know about conditional rendering in Vue 3, including how to use the v-if directive, how to use the v-else directive, and how to combine conditional rendering with other Vue 3 features. Discover the power of conditional rendering and how it can help you build responsive and interactive UIs with Vue 3.

Form Bindings in Vue 3: A Comprehensive Guide

Learn how to use form bindings in Vue 3 to build dynamic and interactive forms. This comprehensive tutorial covers everything you need to know about form bindings in Vue 3, including how to bind data to form elements, how to validate user input, and how to use form bindings in combination with other Vue 3 features. Discover the power of form bindings and how they can help you build responsive and interactive UIs with Vue 3.

Event Listeners in Vue 3: A Comprehensive Guide

Learn how to use event listeners in Vue 3 to build interactive and responsive user interfaces. This comprehensive tutorial covers everything you need to know about event listeners in Vue 3, including how to attach listeners to different DOM events and how to use them in combination with other Vue 3 features. Discover the power of event listeners and how they can help you build dynamic and interactive UIs with Vue 3.

The Ultimate Guide to Service Providers in Laravel

Learn how to use service providers in Laravel to register services and bindings, perform bootstrapping tasks, and organize and configure your application. This comprehensive guide covers everything you need to know about service providers, including tips, tricks, and best practices for mastering them in your Laravel projects.

Attribute Bindings in Vue 3: A Comprehensive Guide

Learn how to use attribute bindings in Vue 3 to control the appearance and behavior of your UI elements. This comprehensive tutorial covers everything you need to know about attribute bindings in Vue 3, including how to bind data to styles, classes, and custom attributes. Discover the power of attribute bindings and how they can help you build dynamic and interactive user interfaces.

Declarative Rendering in Vue 3: A Comprehensive Guide

Learn how to use declarative rendering in Vue 3 to build dynamic and interactive user interfaces. This comprehensive tutorial covers everything you need to know about declarative rendering in Vue 3, including template directives, data binding, and more.

Getting Started with Laravel Livewire: A Step-by-Step Guide

Learn how to get started with Laravel Livewire, a front-end framework for Laravel that allows you to build interactive, dynamic, and responsive components using PHP and Blade templates. This step-by-step guide will walk you through the process of installing Livewire, creating a component, defining its behavior and data, and rendering it in a view.

An Introduction to Laravel Service Containers: What They Are and How They Work

Learn about Laravel service containers, a powerful tool for managing dependencies within your applications. This beginner's guide covers what service containers are, how they work, and how to use them in your Laravel projects. Discover the benefits of using service containers and how they can improve the structure and maintainability of your code.

Exploring the Different Repository Types in PHP Composer: Package, VCS, and Path

PHP Composer is a powerful tool for managing dependencies in PHP projects. In this post, we explore the different repository types available in Composer: package, VCS, and path. Whether you're using packages from a central repository, a version control system, or the local filesystem, Composer makes it easy to manage your dependencies and keep your projects up to date.

Optimizing Your Laravel App's Performance: A Guide to the Request Lifecycle

Learn how to optimize the request lifecycle in your Laravel application for improved performance. From bootstrapping the app and routing requests to returning responses, this guide covers the key steps in the request lifecycle and provides tips for optimizing each step. Use these techniques to develop high-performance Laravel apps that can handle large numbers of requests without slowing down.

Git: How to remove the remote origin from a git repository

To remove the remote origin from a git repository, you can use the `git remote remove` command. This command will remove the remote repository that is associated with your local repository.

Optional Chaining In Javascript(?.)

Optional chaining––in javascript––is a syntactic sugar that allows for the shortening of expressions when accessing chained properties in a safe...

State Management Using Vue 3.x Reactivity API

To control the state of the room––`number of people`––some of the people in the room will have to perform the `action` of, empirically, walking out of...

A Law That Helps You Write Loosely Coupled Functions

Coupling is the degree of interdependence that exists between software components. Tightly coupled components are harder to maintain, modify and enhance overtime. For this reason, it's good to write loosely coupled functions as much as we can through out the development of a software program.

Fortify: How to Disable Auto-login After User Registration

A noob mentality will have you thinking you can easily comment out that line and you're good to go. Well, you could do that and your code temporarily behaves as expected but what happens when you run `composer update/install` and your change is overridden––You are back to square one. You should never make changes to any code within the confines of the `vendor` folder.

Laravel: Hotfix for SQLite Drop Foreign Exception

Inside the TestCase class, create a function that calls the Connection class resolverFor method. It takes the driver's name as the first parameter and a callback as the second.

Too many commits? No worries, just squash them into one!

The principle here is, before you merge a working branch into the main branch, all commits of the working branch should be squashed into one single commit, then, rebased from the main branch.

Running Psalm With Github Actions

I have written about Psalm here. Here, I share my workflow for running Psalm in Github Actions:

Static Analysis With Psalm

Over the years there has been tremendous efforts towards development of automated tools and processes to prevent such catastrophic typos from finding their way into or making a home of our software code bases. Extensions of compiler technologies have been built to help us with automated reviews of our code.

PHP null-safe and null-coalescing operators

The null-safe operator supports method while the null-coalescing operator doesn't. The null-coalescing operator supports array while the null-safe operator doesn't.

#NewSong: Anna's Song

Im living in the dark, outside its so sunny. was picking your brains, why you picked me apart?. you drew me in and then you left me alone. and then we started speaking in monosyllables

When to use exceptions

If the record should have been in the database, then an exception can be raised. This is because something unexpected happenend - a record that your program expected to find in the database was not found.

Ruby: Lets talk Symbols

The idea of symbols in ruby speaks to the whole concept of immutable strings. A symbol is a unique instance of the `Symbol` class which is generally used for identifying a resource, that is, a method, a variable, a hashkey etc. It is *unique*, meaning, no matter where it appears in your program, a particular symbol have the same value.

Laravel: Easily Customize Email Verification URL

This is not something you'd want to do if you're building an application the traditional laravel way––that is, a monolithic app. I've had to do this recently while working on a project that has the backend and frontend existing in different code bases.

BEAUTIFUL LIES: AN OPEN LETTER

You are a beautiful girl but, not the most beautiful in the world and, certainly, not the most beautiful I've set my eyes upon. You are not the center of my world; You, hardly, are with the capacity to hold when my elements fall apart. And, in all honesty, my anarchist mind is wilderness for a queen. So, do I really think of you with every clock-ticking?

CONTROL FREAK: MAKING SENSE OF THE ACCUSATIONS

Am I wired differently? The affirmation of that would sound like a broken record. Everyone claims so about themselves. We have been led to believe the lie that our uniqueness is. We are one and the same - neurotic machines of flesh and blood.

WHAT I’VE LEARNT ABOUT HAPPINESS IN MY YEARS SEARCHING FOR IT

Contentment is an island of ‘satisfiables’ in a sea of endless desires. It guarantees peace of mind. It could be one of those factors that must be present for one to be even considered on his way to true happiness. Moderating one’s desires and aspirations to guarantee inner peace is contentment; Something that is far away from the concept that is True Happiness. For happiness to be true, it must be absolute.