Development
Technical guides, coding best practices, and software engineering insights for building robust, maintainable applications
Software Development Excellence
This category dives into technical topics across the software development lifecycle:
- Programming techniques across multiple languages and paradigms
- Architecture patterns for scalable and maintainable systems
- DevOps practices for reliable deployment and operation
- Testing strategies to ensure quality and prevent regressions
- Performance optimization for responsive and efficient applications
- Security considerations to protect user data and system integrity
- Open source contribution approaches and community engagement
These articles range from practical tutorials to conceptual explorations, suitable for developers at all experience levels. The focus is on pragmatic approaches that lead to high-quality software while acknowledging the trade-offs and constraints of real-world development.
Git Diff Deep Dive: Choosing the Right Algorithm for Your Workflow
Have you ever stared at a Git diff that looks like it was generated by a cat walking across your keyboard? You're not alone. While Git's default diff algorithm works well enough most days, there are times when it produces cryptic, unusable output that leaves you scratching your head.
Git Notes & Trailers: The Hidden Features You Should Be Using
I stumbled across Git Notes during a late-night debugging session last week, and honestly, I'm slightly annoyed that I hadn't been using this feature for years. If you've ever wanted to attach persistent metadata to commits without changing commit hashes (and who hasn't?), this hidden gem deserves your attention. And while we're exploring Git's underappreciated features, let's also look at Git trailers - another powerful tool for managing metadata in your repositories.
Git Merge vs Git Rebase: Understanding the Perfect Integration Strategy
Version control with Git offers developers multiple ways to integrate changes across branches, with merge and rebase standing as the two primary approaches. While both accomplish the same fundamental goal—incorporating changes from one branch into another—they do so through fundamentally different mechanisms, resulting in distinct commit histories and team workflows. Understanding when to use each strategy can significantly impact your project's history clarity, team collaboration, and conflict resolution process. In this deep dive, we'll explore how each option works under the hood, examine real-world usage patterns, and provide clear guidelines for choosing the right approach for your specific situation.
MFA on the Command Line with PowerShell
Ever find yourself juggling endless passwords, worried about whether they’re secure enough? You’re not alone. In today’s digital landscape, protecting sensitive accounts and data goes beyond just a clever passphrase. Enter multi-factor authentication (MFA)—an effective layer of defense that ensures a random intruder can’t waltz in with stolen credentials.
How to contribute to open source software projects
Open-source software is everywhere. Most of the software you use daily is open-source or built on top of open-source components. Contributing to open-source software is a great way to learn new skills and gain experience. It can also be an opportunity to help others, as many people worldwide often use open-source projects. It might seem intimidating initially, but it doesn't need to be.
How to update all your software at once with Winget
Historically, updating software on Windows has been a pain. You had to go to each website, download the installer, and run it. This was especially true for software that was not installed from the Microsoft Store. While this is still true for some software, there is a new tool that makes updating software much easier.
Fixing bad SSH keys
SSH keys are a great way to authenticate with a remote server. They are secure, and they are easy to use. However, they can be a pain to manage. If you have ever had to deal with a bad SSH key, you know what I mean. Especially if you are using cloud services where IP addresses may be reused.
How to calculate estimated reading time
When publishing an article it is often a nice touch to let users know roughly how long it will take to read, and what level of investment they can expect to make. While every reader is different, the average reader can ingest about 150 - 200 words per minute, depending on the type of text.
Loading Visual Studio environment in your default PowerShell profile
As a developer, you may want to load the Visual Studio environment in your default PowerShell profile. This is useful for debugging and developing.
The Diversity problem in Open-Source projects
The software industry has a diversity problem. Specifically that there isn't much diversity at all. We are also living in a time where we are hearing about project maintainers engaging in targeted harassment against minorities. This is a problem that we need to address. Why do we as a community have to deal with this, and how can we as maintainers help? Trying to fix a broken system is not a solution, but trying to make it better is the first step.
Becoming an effective open source maintainer
Developing code is not easy. It is a challenge, but it is also a fun thing to do. Maintaining a project, however, is not easy either. It requires a very different skillset and time investment. When I became a maintainer of Selectize, I was able to learn a lot about the project and how to improve it, and I was able to learn so much about how to interact with the community.
Redirecting pages in jekyll (Without Plugins)
Hosting your site on Github Pages is fantastic, easy and inexpensive. Using Jekyll to generate your pages is easy and very configurable. It's the perfect solution for a static site (as well as what I use for this blog). Sometimes, however, you may run into situations where you need to redirect a page to another page, and without access to your backend to use server-side redirects you need to do it manually.
Display all environment variables with powershell
When configuring a development environment, you can use the PowerShell command to display all environment variables. This can be useful for gathering information about the environment, or for debugging.
Git Tip of the day -- Remove accidentally added files
Oops! That was a mistake
How to determine what app is using a port
While it is sometimes easy to determine what app is using a port, it is not always the case. For example, if you are running a web app, and you want to know what app is using port 80, you can't just look at the process list. You have to run a script to find the culprit. In the past this was a netstat command, but it can be simpler to use PowerShell.
Punctuate your alt text.
It's the tiny details that show you care
Amplify unheard voices in the open-source community
Organizations that leverage social media to amplify their voices may find that they missed a crucial step. Often, people will not speak up, if we don't let them. Let's discuss how we can be sure to include diverse points of view.
Automatically Update WSL on Startup
How to keep your WSL instance up to date
Developer Productivity Tips
Eight tips for becoming more productive as a developer
Git Tip of the Day -- What Changed?
Discovering Changes in Your Git Repository