A Small but Powerful Feature in xUnit v3 You’ll Use Everywhere
xUnit v3 game-changing feature - test-aware cancellation tokens for better async test management and automatic resource cleanup.
Read more →Thoughts on innovation, design, leadership, and building products that change the world.
xUnit v3 game-changing feature - test-aware cancellation tokens for better async test management and automatic resource cleanup.
Read more →Build C# Repository with selective caching and MongoDB search - complex patterns, cache invalidation, and performance optimization.
Vertical Slice Architecture benefits - faster teams, reduced coupling, feature-focused development over layered approaches.
Debug .NET code in Cursor AI on M1/M2 Macs - comprehensive setup guide using Samsung's open-source debugger alternative.
Software engineering coupling and cohesion fundamentals - build maintainable code with low coupling and high cohesion principles.
Top 10 architecture diagramming tools 2025 - comprehensive comparison of Miro, Lucidchart, draw.io, and essential design platforms.
C# Result pattern inspired by Rust - implement explicit error handling, reduce guesswork, and improve function clarity and safety.
Build serverless .NET APIs with AWS Lambda and DynamoDB - infrastructure-free development, automatic scaling, and pay-as-you-go pricing.
3 compelling KafkaFlow features - multi-threaded consumers, message ordering, and .NET dependency injection for Apache Kafka.
Build better C# Kafka event-driven applications with KafkaFlow - simplified patterns, middleware, and maintainable architecture.
Refactor C# code with Chain of Responsibility pattern - decouple business logic, segregate responsibilities, and improve maintainability.
Simplify C# test assertions with domain-specific extensions - create readable, expressive Fluent Assertions for complex objects.
DTOs analysis - when to use Data Transfer Objects, benefits vs drawbacks, and the tradeoffs between boundaries and complexity.
Migrate ASP.NET Controllers to Minimal APIs - refactoring guide with feature-driven organization and practical examples.
.NET integration testing with Docker Compose - reuse existing compose files, avoid duplicate infrastructure definitions, TestContainers alternative.
Comprehensive .NET testing stack 2023 - xUnit framework, Fluent Assertions, Moq mocking, FluentDocker containers, and K6 load testing.
Eliminate loops from test code - apply Zero, One, or Many testing principle for clearer, more maintainable unit test cases.
Master 3 TDD techniques most developers ignore - Fake It, Obvious Implementation, and Triangulation for effective test-driven development.
Avoid InternalsVisibleTo in .NET testing - explore alternatives, maintain proper encapsulation, and design better APIs.
Learn 3 types of C# unit tests - Result-based, State-based, and Component Interaction testing patterns for maintainable test suites.
Master 3 Fluent Assertions features - assertion scopes for multiple checks, HttpResponseMessage testing, and advanced assertion techniques.
Organize .NET Dependency Injection by features - move beyond technical grouping to feature-based DI configuration patterns.
Structure-sensitive tests break refactoring - mock implementation details, coupling issues, and behavior-focused testing strategies.
Avoid the librarian folder structure mistake - organize .NET projects by features, not technical concerns, for better navigation.
Recreate Netflix intro in .NET Console - Spectre.Console animations, SkiaSharp GIF processing, and terminal graphics programming.
DateTimeOffset vs DateTime differences - Microsoft recommendations, timezone handling, and avoiding UTC conversion pitfalls.
Why DRY principle damages C# test readability - avoid over-abstraction, maintain test clarity, and embrace necessary duplication.
The missing Composition Root project in .NET - organize Clean Architecture dependencies and avoid coupling to frameworks.
Implement Hexagonal Architecture in .NET - project structure, dependency inversion, and practical Ports & Adapters examples.
Hexagonal Architecture guide for .NET developers - Ports & Adapters pattern, testability, and swappable dependencies explained.
5 improvements needed for .NET Central Package Management adoption - tooling enhancements, IDE support, and developer experience.
C# 11 Required Members replace constructor brittleness - object initializers with mandatory fields and improved instantiation.
C# 11 Auto Default Structs eliminate field initialization requirements - improved maintainability and Class-Struct consistency.
Clean up .NET transitive dependencies with Snitch tool - identify unnecessary references, reduce package conflicts, and optimize projects.
C# 11 UTF-8 String Literals evolution - design changes, community feedback, and performance-readability balance in web scenarios.
C# 11 Generic Attributes beyond syntax sugar - compile-time constraints, type safety, and framework quality-of-life improvements.
C# 11 List Patterns introduction - pattern matching with collections, array shapes, and F#-inspired syntax for elegant code.
Complete C# 11 Raw String Literals guide - escape-free JSON, SQL, XML strings with triple quotes and indentation handling.
C# Records immutability blind spot - mutable collections break immutability promises, understand reference vs value semantics.
Optimize .NET build pipelines - CLI configuration options, Release mode, --no-restore, --no-build flags for faster CI/CD cycles.
Improve .NET developer experience with CallerArgumentExpression - better error messages, guard clauses, and API usability.
Embed dotnet format in CI/CD pipelines - automate C# code formatting, enforce standards, and reduce code review friction.
C# Property Patterns performance analysis - benchmark comparisons with traditional approaches and guard clause optimization tips.
Customize xUnit test names with configuration files - DisplayName attributes, naming conventions, and test readability improvements.
Learn expressive c# code with property patterns techniques and best practices for C# development for software developers and engineers.
Organize C# 10 Global Usings effectively - central placement strategies, project-level declarations, and tidier source code management.
File uploads in ASP.NET Minimal APIs - migration from Controllers, IFormFile handling, and 415 Unsupported Media Type fixes.
Azure Storage local testing with Azurite emulator - Docker container setup, integration tests, and offline development benefits.
Simplify complex React components - recognize boolean prop warnings, component contracts, and Single Responsibility violations.
Replace React boolean flags with state enums for cleaner component management - finite state machines, XState library, and better state control.
Make refactoring a continuous practice - TDD cycle integration, daily habits, and avoiding technical debt accumulation.
Avoid GetAwaiter().GetResult() in C# at all costs - prevents deadlocks, thread pool starvation, and ensures proper async/await usage.
Embrace early return pattern - reduce cyclomatic complexity, improve readability, and eliminate nested conditions in functions.
Migrate to Eleventy static site generator - simplest 11ty setup, GitHub Pages hosting, markdown support, and Gatsby comparison.
Virtual conference speaking guide - NDC Oslo 2020 experience, setup requirements, camera positioning, and online presentation tips.
Avoid boolean flag arguments that violate Single Responsibility Principle - refactor into separate, focused methods for cleaner code.
Write meaningful code comments - explain the 'why' not the 'what', avoid obvious statements, and improve code documentation.
Avoid boolean flag arguments that violate Single Responsibility Principle - refactor into separate, focused methods for cleaner code.
Build JavaScript test data simply with spread operator - elegant alternative to complex builder pattern for object creation.
Declare variables close to usage, not at the top - reduce cognitive load, improve readability, and signal function extraction.
Debug .NET Core memory leaks with WinDbg - setup SOS extension, analyze garbage collector handles, and find heap issues.
Optimize React rendering performance - avoid object references, prevent unnecessary re-renders, and improve component efficiency.
Maximize one-on-one meeting impact with behavioral science - effective goal setting, achievement strategies, and team development.
Think inside the box for better creativity - how constraints like iPhone design limitations drive innovation more than limitless freedom.
Improve code maintainability by extracting complex IF statements into well-named methods - reduce cognitive load and enhance readability.
Start remote work gradually - 5 reasons to work from home once weekly, productivity benefits, and convincing management strategies.
Discover self-awareness secrets - why voice recordings reveal truth about ourselves and how observation beats introspection.
Build improvement culture through honest feedback - overcome restaurant politeness syndrome and lead teams with genuine, constructive criticism.
Log gRPC requests with Serilog using interceptors - correlation IDs, response times, request tracking, and unary call monitoring.
Version .NET Core applications with Cake Build - Directory.Build.props integration, automated versioning, and build strategies.
Understand Docker containers through shipping metaphors - servers as ships, containers for isolation, and containerization benefits.
JSON Patch Builder Online tool - create RFC6902-compliant patches for HTTP PATCH operations with visual JSON transformation.
Implement HTTP Prefer Header in ASP.NET Core - RFC-7240 compliance for return=representation and return=minimal preferences.
Stop naming classes 'Utils' - improve code readability, discoverability, and maintainability with meaningful class names like Logger.
Automate SQL Database index maintenance with Azure Functions - rebuild fragmented indexes, reorganize thresholds, multi-database support.
5 compelling reasons to convince your boss to adopt Cake Build - C# familiarity, living documentation, and automation benefits.
Tuga IT conference talk - Cake Build automation presentation with slides, demos, references, and practical build examples.
Add custom command-line arguments to Topshelf Windows services using AddCommandLineDefinition with practical examples.
Create ASP.NET Web Deployment Packages with Cake Build - MSBuild integration, configuration settings, and packaging automation.
NetPonto Portuguese talk - building efficient software with CQRS. Includes video, slides, and comprehensive CQRS references.
Implement dependency injection in Azure WebJobs using Unity container - IJobActivator interface, UnityJobActivator, and configuration setup.
C# Scripting API with Roslyn - runtime code evaluation, expression parsing, and scripting capabilities for .NET applications.
CQRS simplified - Command Query Responsibility Segregation isn't complicated, just separate read and write models effectively.
Create email templates in .NET using T4 text templates - 6-step guide for HTML emails with dynamic content and formatting.
Organize your wine cellar with Trello - track bottles by location, manage inventory, and choose wines using stickers and boards.
NetPonto Community 7th meeting in Porto - SOLR in .NET search solutions and ECMAScript vNext talks at ISEP, free registration.
Honest comparison - Android vs Windows Phone from a long-time WP user's perspective after switching for one month testing period.
Solve Windows path length limitations in Node.js projects - tips for npm dependencies, Visual Studio development, and Azure deployment.
NetPonto Community 6th meeting in Porto - ASP.NET VNext on Mac and Xamarin Forms talks at ISEP, free registration required.
Azure App Service API Apps tutorial published in Portuguese Revista PROGRAMAR magazine - features, benefits, and implementation guide.
Key lessons from Agile Portugal 2015 - visual management importance, user story writing, and building transparent team culture with physical boards.
Troubleshoot Azure App Service API Apps Microsoft.Rest.HttpOperationException errors with debugging techniques and solutions.
Create AngularJS after-render directive - execute code after template rendering completes using \ and custom attributes.
Azure SQL Database performance tiers analysis - comparing Web/Business models to new Basic/Standard/Premium pricing and performance.
Create AngularJS number inputs with 2 decimal validation - HTML5 step attribute, ng-pattern regex, and mobile keyboard support.
Cross-platform encryption - encrypt data in Node.js with AES256 and decrypt in C# using RijndaelManaged for secure messaging.
Connect to Azure Storage Emulator with Node.js SDK using generateDevelopmentStorageCredentials() for local development testing.
T-SQL query to identify which database schemas consume most space in multi-tenant architectures using sys.dm_db_partition_stats.
Discover 5 tools for perfect domain names - WORDOID, Name Mesh, Panabee, Impossibility, and DomainsBot for finding available .com domains.
Resolve Node.js DEPTH_ZERO_SELF_SIGNED_CERT errors - handle self-signed certificates in development with NODE_TLS_REJECT_UNAUTHORIZED.
Control browser caching behavior in ASP.NET - disable HTML cache while enabling resource file caching through web.config settings.
Fix Windows path length limitation in Azure Cloud Service deployments by configuring ServiceOutputDirectory in .ccproj files.
Configure automatic Azure SQL Database backups - set up scheduled exports to storage accounts without PowerShell scripts or custom code.
Implement Getting Things Done (GTD) methodology with Trello - combine David Allen's productivity system with Kanban boards for workflow.
Automate NuGet package creation with Grunt for metro-bootstrap - streamline builds, eliminate manual packaging, and integrate with CI/CD workflows.
Metro-bootstrap 3.2.0.1 release notes - Bootstrap 3.2.0 update, Bower main configuration, and new tile font size variables.
Discover fun and useful Windows Phone Cortana voice commands - jokes, reminders, calendar, music, weather, and entertaining interactions.
Build products with strong identity using Seth Godin's philosophy. Learn why targeting everyone means targeting no one in product development.
Query Azure diagnostic logs with SQL using AzureLogSpelunker tool. Escape slow Azure Storage Explorer with fast, local SQLite analysis.
Metro-bootstrap 3.1.1.2 release - improved tiles with flexible positioning, new colors, dashboard template, and Bootstrap grid integration.
Auto-generate ASP.NET Web API documentation in 5 steps using HelpPage package. Create XML comments and interactive API docs effortlessly.
Automate GitHub Pages deployment using git subtree - push project subfolders to gh-pages branch without manual branch management.
Add Grunt and Bower to metro-bootstrap open source project - automate builds, manage dependencies, and structure frontend workflows.
Why choose GitHub Pages and Sandra.Snow over WordPress for .NET developers - markdown writing, no database, version control, and zero maintenance.
Build an improved AngularJS smart-float directive for number validation with comma/dot decimal separators and thousands separators support.
Master the Pomodoro Technique for developers - 25-minute focused work sessions with breaks to boost productivity and eliminate distractions.
Discover C# dynamic typing performance costs vs static typing with benchmarks. Learn when to avoid dynamic for better .NET application speed.
Step-by-step guide to migrate SQL databases to new Azure Basic and Standard tiers with bacpac export/import and troubleshooting tips.
Meet Portuguese .NET developer Guilherme Ferreira sharing software development lessons, entrepreneurship tips, and productivity insights from Porto.
What I'm building, learning, and discovering each week.