2025
- August 06, 2025 - Why Debugging in Microservices Is Still Hard (Even with Good Practices) Understanding the Pain Points and Practical Solutions for Easier Debugging in Microservice Architectures
- July 17, 2025 - The Tech Commandments A timeless guide for modern developers
- July 15, 2025 - Introduction to Two Pointers A powerful technique to reduce time complexity in linear data structures
- June 01, 2025 - Full Disk Encryption on Windows Secure your drives with built-in tools for better data protection
- May 21, 2025 - Building a Domain-Driven Shopping Cart in C# A practical guide to modeling a shopping cart with discounts using clean DDD principles in .NET
- May 15, 2025 - GitHub Commit Signing: Secure Your Codebase with Verified Commits Learn how to protect your projects by signing Git commits using SSH or GPG keys
- April 11, 2025 - Applying the Strategy Pattern to a Payment Service with Dependency Injection Learn how to cleanly implement flexible payment logic in C# using the Strategy pattern and Dependency Injection
- March 06, 2025 - A Smooth Start: The Complete Guide to Employee Onboarding in Tech Teams How to Build a Consistent and Engaging Onboarding Experience that Sets New Hires Up for Long-Term Success
- February 02, 2025 - Building a .NET Site Exporter Tool Using Sitemap and Recursive Crawling A practical way to save full websites including assets
- January 24, 2025 - Secure and Professional Offboarding in Tech Teams A Clear Strategy for Smoother Transitions and Better Security
- December 14, 2024 - Automatically Test Public Methods Using Reflection, xUnit and FluentAssertions How to Quickly Validate Outputs of All Methods in a .NET Core Project Even with Dependency Injection
- October 10, 2024 - Protecting the Backoffice: Domain-Based Access Restriction in Umbraco Implementing custom middleware to restrict unauthorized domain access in ASP.NET Core with Umbraco
- September 07, 2024 - 7 Steps to Avoid the Worst Day of Your Career This checklist will help you design the perfect website launch without chaos or late-night hotfixes
- August 15, 2024 - Effective Communication in Interviews Why how you talk matters as much as how you code
- July 15, 2024 - How to Approach a Problem in an Interview A structured approach to solving coding challenges with confidence
- June 15, 2024 - What Do Interviewers Look For? Understand what signals help you stand out in technical interviews
- April 08, 2024 - Creating a Seamless Scrolling Background in a Python Race Game Achieve a smooth forward motion effect using clever background tiling
- March 13, 2024 - How to Transition a JavaScript Project to TypeScript Without Breaking Things A practical guide to adopting TypeScript gradually and safely
- February 18, 2024 - Why TypeScript Is Taking Over JavaScript How a statically typed superset reshaped modern JavaScript development
- January 16, 2024 - The Evolution of .NET From Windows-only beginnings to a unified, cross-platform ecosystem
- January 02, 2024 - Messaging Concepts in RabbitMQ Understanding the key building blocks of message-based communication
- December 27, 2023 - When to Use Microservices Guidelines to help decide if microservices are the right fit for your project
- December 02, 2023 - Why I Chose Proton for My Digital Privacy Needs Simplify and secure your online life with one private ecosystem that does it all
- November 21, 2023 - How to Protect Against Password Cracking Attacks Minimize risk with stronger passwords, password managers and modern authentication strategies
- October 10, 2023 - Mobile Security Checklist: Keep Your Phone Virus-Free A practical guide to protect your iPhone or Android from malware and data breaches
- September 02, 2023 - How Android and iPhone Handle Viruses Understand the key differences between Android and iPhone when it comes to malware risks, detection and security
- August 08, 2023 - How to Check if Your Phone Has a Virus Essential Steps to Identify and Remove Malware from Your Device
- July 05, 2023 - Unit Testing an ASP.NET Core Controller Using xUnit, Moq and Shouldly How to Write a Clean and Effective Unit Test for a Custom Umbraco Controller
- June 19, 2023 - Best Practices for Building Secure and Maintainable Web APIs in ASP.NET Core A practical guide to designing clean, efficient and secure APIs with ASP.NET Core
- May 23, 2023 - Mastering Microservices: Design Scalable and Independent Systems with Confidence Microservices are small, independent services that work together to form a system.
- April 05, 2023 - Running Azure Blob Storage Locally with Docker Simulate Azure Blob Storage in your local environment using Azurite
- March 16, 2023 - Code Style Essentials: Write Cleaner, Smarter and Maintainable Code Every Day How writing clean code helps you write less of it
- February 23, 2023 - Modular Monolith First: The Microservices Illusion Why starting with a modular monolith often beats jumping straight into microservices
- January 09, 2023 - Mastering the Command Line: A Developer's Cheat Sheet Essential shell commands every developer should know by heart
- December 05, 2022 - Protecting Your .NET Website from Suspicious 404 Spikes: Signs of an Attack How to detect and mitigate bot-driven attacks on .NET applications using custom error handling, traffic filtering and Cloudflare protection
- November 19, 2022 - Access Modifiers in C# Understand how visibility rules shape class design and encapsulation
- October 23, 2022 - Formatting JSON Date Values in JavaScript Handle standard and non-standard date formats when working with JSON
- September 30, 2022 - Converting Strings or Integers to Enums in C# Safely convert values to enum types using built-in methods and checks
- September 12, 2022 - How to Create a Local SSL Certificate on Windows A secure way to develop HTTPS-ready websites without spending a cent
- August 22, 2022 - Pros and Cons of a Microservice Architecture A balanced look at the strengths and challenges of building with microservices
- July 23, 2022 - How to Share Files on Windows Enable file sharing across devices with just a few configuration steps
- June 11, 2022 - How to Calculate Early Credit Payment with Only Installments and Maturity Simplify Loan Repayment Calculations Without Knowing the Interest Rate
- May 06, 2022 - Calculating Loan Interest Rate in C# with Precision Learn how to accurately compute the interest rate of a loan using various numerical methods in C#
- April 04, 2022 - How to Scan Uploaded Files for Viruses in ASP.NET Protect your backend from malicious uploads using antivirus integration
- March 19, 2022 - Handling Chunked and Resumable File Uploads in ASP.NET Build scalable and user-friendly upload workflows for large files
- February 05, 2022 - Securing and Managing File Downloads in ASP.NET Protect your file endpoints with access control, validation and logging
- January 24, 2022 - Implementing Resumable Downloads and Throttling in ASP.NET Deliver large files reliably by supporting partial downloads and controlling bandwidth
- October 16, 2021 - Best Practices for Writing Clean C# Code A practical guide to writing simple, maintainable and production-ready C#
- September 29, 2021 - Calculating Loan Amount from Installment and Total Repayment Reverse Engineering Credit Details for Smart Financial Planning
- August 07, 2021 - A Practical Guide to Unit, Integration and Acceptance Testing in C# Designing a Reliable Testing Strategy for Modern Applications
- July 08, 2021 - Stay in Sync with the Observer Pattern Keep objects updated without tight coupling
- June 02, 2021 - Understanding All Types of Authorization in ASP.NET Core A developer's guide to Role-Based, Claim-Based and Attribute-Based Authorization with real-world use cases
- May 24, 2021 - Achieving Security by Design Build safer applications by making security a fundamental part of architecture
- April 19, 2021 - Flexible Behaviors with the Strategy Pattern Choose your logic at runtime without cluttering your code
- March 29, 2021 - Mastering the Disposable Pattern in .NET Core Clean up resources with precision using the Disposable Pattern
- March 09, 2021 - Secure Your ASP.NET App with Proven Configuration Settings Boost safety and performance with easy-to-apply server and web.config settings
- February 24, 2021 - Bridging Interfaces with the Adapter Pattern Make incompatible systems work together seamlessly
- January 11, 2021 - How to Stop Your Emails from Going to Spam A step-by-step guide to proper DNS and email authentication setup
- January 07, 2021 - My 2020 Year In Review From RescueTime 😎
- December 23, 2020 - String vs StringBuilder Understand when to choose immutable strings or performance-friendly StringBuilder
- November 11, 2020 - Simplifying Complex Systems with the Facade Pattern Provide a clean and unified interface to messy subsystems
- September 26, 2020 - Decoupling Communication with the Mediator Pattern Simplify interactions between components with a centralized controller
- July 02, 2020 - Mastering the Builder Pattern Construct complex objects step-by-step with clarity and control
- June 16, 2020 - Demystifying the Factory Method Pattern Create objects without coupling your code to concrete classes
- May 09, 2020 - Mastering the Singleton Pattern Ensure controlled global access to your most critical resources
- April 12, 2020 - Mastering Software Design Patterns: From Origins to Modern Architecture A Complete Introduction to Design Patterns, Their History, Types and Impact on Modern Software Engineering
- March 16, 2020 - Handling Timeouts and Large File Streaming in ASP.NET Build resilient endpoints that deliver large files and stay responsive under heavy load
- January 24, 2020 - Understanding the Pros and Cons of Using Cloudflare How Cloudflare Can Reduce Website Downtime and Improve Performance
- December 20, 2019 - The Biggest Mistake a Developer Can Make Why rewriting software from scratch is usually a terrible idea
- October 15, 2019 - What Makes a Good Developer
- September 01, 2019 - Essential Tips for ASP.NET MVC Developers Elevate Your MVC Projects with These Time-Tested Practices
- August 08, 2019 - The Evolution of JavaScript From a 10-day prototype to the world’s most-used programming language
- June 23, 2019 - Why Your Creative Mind Needs a System You are not undisciplined. You are looping without structure.
- May 22, 2019 - Understanding Serialization and Deserialization in C# A clear guide to converting objects into data formats and back using C#
- April 19, 2019 - Make Your Website GDPR Compliant Understand and Apply the Key Requirements of the EU's Data Protection Law
- April 18, 2019 - Error Handling Patterns in JavaScript Improve application stability with proven approaches to managing runtime errors
- March 20, 2019 - Learn SQL Server Version from an MDF File Using PowerShell Determine the database version by analyzing MDF file bytes directly with a simple PowerShell command
- March 05, 2019 - How to Make HTTP Requests in JavaScript Learn how to send and handle HTTP requests using native features and popular libraries
- March 01, 2019 - Visual Studio Build Events Script – Part 2: Automating Release Builds with PowerShell Zip Archiving How to automatically zip your Release build output with a PowerShell script triggered by Visual Studio post-build events
- February 19, 2019 - Solving the "Maximum Request Length Exceeded" Error in ASP.NET Learn how to resolve this common issue when uploading large files to your web application
- February 08, 2019 - Automating Version Updates in Visual Studio with Build Events How I automated assembly versioning using a batch script triggered by Visual Studio build events
- January 02, 2019 - Understanding Structs in C# A guide to defining immutable value types in C#
- December 18, 2018 - Mastering Task Cancellation in C# Graceful Cancellation Patterns for Responsive and Reliable Applications
- October 09, 2018 - Dependency Inversion Principle: Decouple to Gain Control How to make high-level code independent from low-level details
- September 01, 2018 - Interface Segregation Principle: Designing Interfaces That Fit Why smaller and focused interfaces lead to more maintainable code
- August 19, 2018 - Understanding the Liskov Substitution Principle Through Real Inheritance Issues Learn how improper class hierarchies can silently break your application
- July 06, 2018 - Mastering the Open-Closed Principle in Real Projects Avoid unnecessary changes and protect production stability by designing for extension
- June 18, 2018 - The Single Responsibility Principle How one class, one responsibility leads to sustainable and maintainable software
- May 19, 2018 - Mastering SOLID Principles in C# Writing Better Code with Proven Object-Oriented Design Practices
- April 27, 2018 - Types of Locks in SQL Server A Quick Guide to Shared, Exclusive, Update and Intent Locks
- April 25, 2018 - Value Type vs Reference Type Understanding memory behaviour, data handling and core differences
- April 16, 2018 - How to Evaluate the Quality of a Software Team A simple yet powerful checklist that says a lot more than lines of code
- March 02, 2018 - The Most Important Secret in Programming Why solving the right problem matters more than solving it fast
- August 09, 2017 - Why WordPress Can Be So Frustrating Even the world’s most popular CMS can give you a headache if you're not prepared
- July 04, 2017 - Keep the Footer Stuck to the Bottom of the Page How to Make Your Site’s Footer Stay at the Bottom, No Matter the Content Length
- May 16, 2017 - How to Know If Your Phone Has a Virus Five Clear Signs Your Android Device Might Be Infected
- April 04, 2017 - Why Developers End Up Working Overtime Common Mistakes That Lead to Late Nights and Burnout
- February 04, 2017 - 15 Ways to Get Things Done When the Deadline Is Looming Actionable Tactics to Spark Ideas and Beat the Clock
- February 03, 2017 - Top 20 Excuses Every Programmer Has Used at Least Once A Lighthearted Look at the Classic Phrases Developers Fall Back On
- February 01, 2017 - Let’s Encrypt Everything: Free SSL for Everyone Why You No Longer Have an Excuse to Run a Website Without HTTPS
- January 31, 2017 - Why Android Is Better Than iPhone A Practical Comparison of Flexibility, Freedom and User Choice
- January 30, 2017 - The Universal Declaration of Developer Rights Simple demands that lead to productive and happy programmers
- January 30, 2017 - Security and Privacy Tips for Real Paranoids Protect Yourself From Tracking, Spying and Digital Intrusion
- June 15, 2015 - Better Sleep for a Better You Practical sleep habits to improve your rest and reset your energy
- May 09, 2015 - How to Stay Motivated While Studying Practical and personalized strategies to boost your focus and keep your momentum
- April 10, 2015 - Understanding CSS Margin Shorthand Notation Remembering the order of margin values without needing to look it up again
- March 23, 2015 - Why Your SQL Server Might Be Sluggish Performance Pitfalls and Pro Tips to Keep Your Database Fast and Healthy
- February 03, 2015 - How to Fix the Orientation of Videos Recorded on Your Phone Simple Steps to Correct Video Direction for Easy Viewing on Your Computer
- February 02, 2015 - Setting Up GIT on Your Own Windows Server for Visual Studio How to Install and Configure a GIT Server on Windows Using GitStack
- January 02, 2015 - Looking Back at 2014: Code, Screens and Surprises A Year of Projects, Scripts, Shows and One Strange Discovery
- November 23, 2014 - Writing to a Text File with VB.NET and Reading from It in Access Creating Dynamic Certificates Using a Shared TXT File Between VB.NET and Access
- October 23, 2014 - Convert AVI to MP4 with VB.Net A practical approach to batch video conversion using FFMPEG and VB.Net
- October 23, 2014 - How to Design Software for Difficult Users Popular blogs and magazines about Umbraco
- August 23, 2014 - Running Classic DOS Games on Modern Windows Why old games stopped working and how to bring them back with DOSBox
- August 02, 2014 - Writing a Harmless Keylogger in .NET Experimenting with Low-Level Keyboard Hooks and Simulated Input
- June 27, 2014 - Step-by-Step Guide: Migrating from Access to MS SQL Server Learn how to transfer your database from Microsoft Access to SQL Server reliably
- January 10, 2014 - How to Automatically Back Up MySQL Databases on Windows Server A simple method using 7-Zip, a batch script and Windows Task Scheduler
- November 10, 2013 - How to Use Bing Images as Backgrounds on Your Website A simple method to automatically display Bing's daily background image using RSS and ASP
- July 21, 2013 - Resetting MySQL Password on Windows Server A practical guide to changing MySQL passwords easily or manually when needed
- June 02, 2013 - How to Display Server Uptime with ASP and ASP.NET Learn how to display the server's uptime using a mix of ASP Classic, ASP.NET and AJAX
- April 07, 2013 - Easy Way to Hide Image URLs on Your Website How to Keep Your Image Folder Addresses Private and Serve Images Securely
- February 24, 2013 - How to Show Detailed Error Messages on Server 2008 IIS7 – Fixing 500 Internal Server Error How to configure IIS 7 on Windows Server 2008 to display detailed error messages for easier debugging
- February 06, 2013 - How to Connect to SQL Server 2012 via TCP/IP Solve common connection issues and configure SQL Server for remote access
- January 13, 2013 - Understanding Procrastination and How to Overcome It Break the cycle and take control of your time
- December 11, 2012 - Connecting VB.NET to MSSQL Server A modular and practical approach for switching between local and remote SQL Server connections
- September 17, 2012 - How to Prepare a CV A Step-by-Step Guide to Creating an Effective Curriculum Vitae
- August 12, 2012 - Sending Email via Gmail Using ASP How to Send Email from an ASP Page Using a Gmail Account
- July 01, 2012 - How to Batch Rename Files Easily Rename multiple files in seconds using Bulk Rename Utility
- April 19, 2012 - How to Create a Mosaic Photo Easily A step-by-step guide to making mosaic images using AndreaMosaic
- January 23, 2012 - Why I Recommend Agora Hosting Lessons from unreliable hosts and one provider that finally got it right
- January 11, 2012 - What My DISC Personality Report Revealed About My Work Style A reflection on my DISC personality test results and how they align with how I work and make decisions
- January 09, 2012 - Running PHP on IIS 6.0 How I finally set up PHP on IIS after years of trying and what steps actually worked
- November 19, 2011 - How Separating Design from Code Made My Sites Better A lesson learned the hard way after building my first proper website
- November 01, 2011 - From Blogger Dreams to WordPress Realities How a Personal Website Journey Evolved Through Curiosity, Mistakes and Growth
- October 28, 2011 - Reviving an Old Laptop: A Personal Repair Journey How I fixed my broken screen and audio without buying a new computer
- April 27, 2011 - From Legacy Code to Clean Code A structured approach to transforming messy systems into maintainable ones
- March 14, 2011 - Adding a Video Album to Your ASP Website Create a dynamic video gallery using Classic ASP and FlowPlayer
- February 07, 2011 - Essential Features of a Modern School Management Application Building a Smarter Way to Run Schools With Technology
- January 28, 2011 - My First Website Revamp Experience Breathing New Life Into an Old Company Website
- October 26, 2010 - How to Rewrite URLs in ASP for Better SEO and Usability Step-by-Step Guide to Clean URLs Using ASP and IIS Custom 404 Handling
- September 30, 2010 - Discovering Ninite.com Discovering Ninite.com
- July 04, 2010 - Virtual Villagers and Its Impact on Me My Experience with the Game and What I Learned
- June 15, 2010 - Cross-Domain Communication with iframes in Classic ASP Cross-domain communication workaround using nested iframes and query strings
- June 11, 2010 - My Principles as a Programmer Guiding Values That Shape My Professional and Personal Life
- February 16, 2010 - Protocols for Administrative Access to Network Devices Understanding the essential protocols for managing all types of network environments
- January 05, 2010 - HTTP Response Codes Understanding status codes and their meaning in web communication
- February 05, 2009 - How to Sit Properly at a Computer Protect your body and boost your productivity with posture that works for you
- January 29, 2009 - The Benefits of Forests for Our Planet A green treasure we must protect
- October 23, 2008 - Before You Start Programming Essential Qualities That Shape Your Logic and Skill as a Developer
- October 22, 2008 - I Bought a Nokia E51 A compact phone packed with powerful features that I finally got my hands on