All posts
Archive
Every published article, newest first within each year. Prefer cards and filters? Use the blog index.
2026 (268)
- update_recordset: SQL Ran, and update() Never Did
- Kubernetes SIGTERM: The Rolling Update That Cut In-Flight Requests
- Next.js after(): The Side Effect That Ran at Build, Not on the Request
- Screenshots Fill Every Later Turn: Downscale, Then Drop the Pixels
- Filter Rows: The Lookup GUID Is _parentcustomerid_value
- OFFSET Pagination: Page Two Skipped a Row
- FormDataSource.research: The Range You Added Never Ran
- Subsets: Every Prefix Is a Valid Answer
- EF Core ExecuteUpdate: SaveChanges Never Ran, and Neither Did Your Interceptor
- GitHub Actions GITHUB_TOKEN: The Push That Never Started the Next Workflow
- Get a Row by ID: Missing Fails the Run, Empty List Rows Does Not
- Tool Results Fill Every Later Turn: Truncate Before You Append
- Combination Sum: Reuse the Number, Keep the Index
- Transactional Inbox: The Handler That Ran Twice
- React use(): A Promise Created in Render Suspends Forever
- CacheLookup in X++: Found Serves the Stale Row Inside ttsbegin
- GitHub Actions Concurrency: The Group That Cancelled the Production Deploy
- Incremental MERGE Misses Deletes: The Warehouse Row That Never Left
- Claude Thinking Blocks: Echo the Signature or the Tool Loop Breaks
- When an HTTP Request Is Received: The Callback URL Is a Secret
- Two-Phase Commit: Why Distributed Transactions Stall
- Dataverse Custom APIs: Contracts, Binding, and When They Beat Plug-in Steps
- Generate Parentheses: Backtracking With Two Counts
- Next.js 16 proxy.ts: Rename the Function, Drop Edge, and Do Not Trust the Matcher for Auth
- Streaming LLM Output: SSE Events, Partial Tool JSON, and Abort
- GitHub Actions OIDC: Azure Login Without a Client Secret
- Power Automate Do Until: The Loop That Succeeds After Giving Up
- Write Skew: The Anomaly Snapshot Isolation Does Not Catch
- Pass the CancellationToken or the Work Continues After the Client Left
- Patch in Canvas Apps: The Blank Column That Overwrites a Real Value
- Daily Temperatures With a Monotonic Stack
- Dataverse Cascade Delete: Parental, Restrict, and the Children You Lose
- Designing a Shopping Cart: Price Snapshots, Merge, and No Inventory Hold
- Designing Snowflake-Style IDs: Ordering, Workers, and Clock Rollback
- Indirect Prompt Injection: Tool Output Is Not Instructions
- Kubernetes Liveness Probes That Restart a Process That Was Fine
- Power Automate Trigger Conditions: The Run That Never Appears
- crossCompany in X++: The Query That Mixes Legal Entities
- Copilot Auto Model Selection Now Has Tiers: Efficiency, Balance, Intelligence
- Dataverse Filtered Record Ownership: Row-Level Security Without Owners, Teams, or Sharing
- Sales Agent Creates CRM Records From Copilot Chat, and Sales Development Agent Quotes on Its Own: What Went GA on September 30
- GitHub Rewrote the Copilot Runtime in Rust With Agents. The Playbook Is the Story.
- MCP Went Stateless: What the 2026-07-28 Spec Changes for Your Server
- Next.js 16 Cache Components: Replacing revalidate and force-dynamic With 'use cache'
- PostgreSQL 19 on October 29: WAIT for Read-Your-Writes, REPACK Without the Lock, and What Got Pulled
- Power Platform September 2026 Update: The App-Builder Skill, Agent Plugins, and the Refreshed Model-Driven UI
- TypeScript 7 Upgrade: 10x Faster tsc, and the API Gap You Have to Plan Around
- Valid Parentheses: The Stack Problem Every Interview Starts With
- GitHub Copilot AI Model Comparison: Which Model to Use for Each Task
- The Pipeline Was Green Because the Test Stage Never Ran
- Canvas Apps: Concurrent() Is How OnStart Stops Feeling Stuck
- Course Schedule: Topological Sort Detects the Cycle
- Dataverse Triggers in Power Automate: Select Columns or the Flow Wakes Up for Nothing
- IHttpClientFactory: Stop Creating HttpClient Per Request
- Idempotency Keys for Write APIs
- LRU Cache: OrderedDict Gives You O(1) Get and Put
- MCP Tool Descriptions That Route the Model to the Right Call
- PowerShell: Format-Table Breaks the Next Command
- Put the Workflow in Code When the Agent Keeps Improvising
- React List Keys That Survive a Filter
- Read-Your-Writes: The User Just Saved and the Read Replica Does Not Know
- Budget Control in Finance 10.0.49: Closed Periods, Reservations, and Broken Tracking
- Bank and Cash in Finance 10.0.49: Delayed Settlement, Match Preview, and Bridge Selection
- D365 F&O 10.0.49: What to Regression-Test Before the October Auto-Update
- Agentic ERP in September 2026: What Is Available, in Preview, and Still a Date
- Electronic Reporting in Finance 10.0.49: GS1 Barcodes, DIV and MOD, and Copy Counts
- France E-Invoicing and E-Reporting in D365 Finance: What 10.0.49 Actually Files
- Global Inventory Accounting Ends Support on 1 July 2027: What to Inventory Now
- Invoice Capture in Finance 10.0.49: Header Matching, Side-by-Side Review, and Charges
- Supply Chain 10.0.49: Warehouse Defaults, Supplier Engagement, and Quality You Cannot Disable
- Dual-Write Dropped My Field and Reported Success
- OData 429s from F&O: What Actually Throttles You
- Clone Graph: Copy Nodes Without Falling Into the Cycle
- Designing Chat Presence: Online, Away, and the Lie of Instant Status
- GitHub Merge Queues: Serializing main Without Parking Every PR
- MCP Resources vs Tools vs Prompts: Stop Putting Everything in a Tool
- React 19 useOptimistic: Instant UI Without Lying to the Server
- SharePoint Lists vs Dataverse for Canvas Apps: Pick the Storage, Not the Habit
- SysTest in D365 F&O: Unit Tests That Survive a Platform Update
- Consistency Models Beyond CAP: Linearizability, Causal, and Session Guarantees
- Designing an API Gateway: The Front Door as a System
- Designing a CDC Pipeline: Change Data Capture from Binlog to Downstream
- Designing a Content Moderation Pipeline: Trust and Safety at Platform Scale
- Designing a Distributed Rate Limiter: Local Buckets, Global Truth
- Designing a Durable Workflow Engine: How Temporal Makes Code Survive Crashes
- Designing an Experimentation Platform: Assignment, Exposure, and the Stats Engine
- Designing Facebook TAO: A Read-Optimized Store for the Social Graph
- Designing a Feature Store and Model Serving Platform
- Designing an LSM Storage Engine: Memtables, SSTables, and Compaction
- Designing a Metrics System: Time-Series Storage from Gorilla to Downsampling
- Designing Petabyte Log Search: Index Everything vs Grep Smarter
- Designing Real-Time Fraud Detection: Scoring Inside the Payment Path
- Designing a Real-Time Leaderboard: Sorted Sets, Sharded Top-K, and Rank Queries
- Designing a Real-Time OLAP System: Segments, Ingestion, and the Druid/Pinot Shape
- Designing Recommendation Infrastructure: Candidates, Ranking, and the 100ms Funnel
- Designing a Secrets Manager: Sealing, Dynamic Credentials, and the Root of Trust
- Designing Typeahead Autocomplete: Sharded Tries and Precomputed Top-K
- Designing a Web Crawler: The Frontier, Politeness, and Dedup at Billions of Pages
- Designing a WebSocket Gateway: 100 Million Persistent Connections
- Designing YouTube: Upload, Transcoding Pipelines, and Adaptive Bitrate
- Designing a Distributed Lock Service: ZooKeeper and Chubby from the Inside
- Distributed Snapshots: How Flink Checkpoints a Moving Stream
- Lakehouse Table Formats: How Iceberg and Delta Put ACID on Object Storage
- Load Balancing Deep Dive: L4 vs L7, Power of Two Choices, and Subsetting
- Multi-Region Active-Active: Patterns for Serving Writes from Everywhere
- Multiplayer Game Networking: Authoritative Servers, Prediction, and Lag Compensation
- Percolator: Distributed Transactions Without a Transaction Server
- Probabilistic Sketches: HyperLogLog, Count-Min, and t-Digest in Production
- SWIM, Gossip, and Phi-Accrual: How Clusters Know Who's Alive
- Designing Ad Click Aggregation: Exactly-Once Counting at Scale
- Designing a CDN: Cache Hierarchy, Invalidation, and Request Routing
- Designing a Distributed Cache Service: Redis Cluster Internals and Hot Keys
- Designing Dropbox: File Sync with Chunking, Delta Sync, and Conflicts
- Designing Google Docs: Real-Time Collaborative Editing with OT and CRDTs
- Designing Kafka Itself: The Distributed Log, ISR Replication, and Compaction
- Designing Nearby Friends: Real-Time Location Sharing at Scale
- Designing an Online Judge: Sandboxed Code Execution at LeetCode Scale
- Designing an S3-Style Object Store: Erasure Coding and the Metadata Layer
- Designing a Stock Exchange: The Low-Latency Matching Engine
- Designing Ticketmaster: Booking, Inventory Holds, and Write Contention
- Designing Uber: Ride Matching, Live Location, and Surge Pricing
- Designing a Distributed Tracing Backend: Dapper-Style Sampling and Storage
- Designing a Dynamo-Style KV Store: Quorums, Hinted Handoff, and Vector Clocks
- Designing Google Maps Routing: Contraction Hierarchies, Tiles, and ETA
- Designing a Spanner-Style Global Database: TrueTime and External Consistency
- Database Replication: Leader-Follower, Quorums, and the Lag Nobody Budgets For
- Sharding a Database: Partition Strategies That Survive Growth
- Designing a Distributed Job Scheduler That Doesn't Fire Twice (Usually)
- Designing a News Feed: Fan-Out on Write vs Fan-Out on Read
- Designing a Payment System: Double-Entry Ledgers and Idempotent Money
- Distributed ID Generation: Snowflake, ULID, and the Clock-Skew Problem
- Distributed Locks: Leases, Fencing Tokens, and Why Redlock Is Controversial
- Geospatial Indexing: How 'Drivers Near Me' Actually Works
- Load Shedding and Graceful Degradation: Failing the Right Requests First
- Raft in Plain English: How Clusters Agree When Nodes Keep Dying
- CI/CD Pipelines for Data Engineers
- Columnar Storage: How Analytical Databases Work Under the Hood
- dbt Best Practices for Production Data Modeling
- Kafka Consumer Groups, Partitions, and Offset Management Explained
- PostgreSQL Connection Pooling with PgBouncer
- Elastic Tables in Dataverse: When Cosmos-Backed Storage Beats Standard Tables
- Feature Management in D365 Finance and Operations: Flags, States, and Custom Features
- Retry Policies in Power Automate: What Actually Happens When an Action Fails
- The Transactional Outbox Pattern: Publishing Events Without Losing Them
- Designing Webhook Delivery That Survives Flaky Consumers
- Feature Flags: How to Stop Coupling Deployment to Release
- Evaluating LLM Applications: Getting Past 'It Looks Good to Me'
- Getting Structured Output From an LLM Without the Heartbreak
- Business Process Flows in Dynamics 365: Branching, Stage-Gating, and the Limits Nobody Warns You About
- D365 F&O Data Entities: Composite, Computed, and Virtual Fields Explained
- Chunking Strategies for RAG: Where Retrieval Quality Is Won or Lost
- Backpressure: What Happens When Your System Can't Keep Up
- The Dataverse Plugin Execution Pipeline: Stages, Transactions, and Images Explained
- Database Connection Pooling: The Bottleneck You Forgot to Tune
- Power Apps Collections vs. Dataverse: Where Your App's Data Should Actually Live
- Client Scripting in Model-Driven Apps Done Right: formContext, Execution Context, and Async
- Choosing the Right Dataverse Column: Choice vs Choices vs Lookup vs Customer
- Write-Ahead Logging: The Unsung Hero of Database Durability
- Real-Time vs Background Dataverse Workflows: Picking the Right Execution Model
- Server Components vs. Client Components: A Mental Model That Sticks
- Bloom Filters: Saving Gigabytes When 'Probably Not' Is Good Enough
- Bulk Operations with the Dataverse Web API $batch Endpoint
- Resilient Power Automate: Retry Policies and Dead-Letter Patterns
- The Saga Pattern: Transactions That Span Services You Can't Roll Back
- Extending Data Entities in D365 Finance & Operations Without Breaking Upgrades
- Optimistic UI Updates: Making Apps Feel Instant Without Lying to Users
- Chain of Command vs Event Handlers: Extending D365 F&O the Right Way
- Circuit Breakers: Stopping a Cascading Failure Before It Spreads
- Dataverse Plug-in Performance: Avoiding the Slow Plug-in That Times Out
- Customizing the Model-Driven Command Bar with Power Fx and the Modern Command Designer
- Dataverse Auditing and Column Security: Governance for Sensitive Data
- Electronic Reporting in D365 Finance: Building Custom Formats Without Code
- The Transactional Outbox: Reliable Messaging Without Distributed Transactions
- Debouncing and Throttling in React: Taming Expensive Event Handlers
- Designing a Lead-to-Opportunity Qualification Process in Dynamics 365 Sales
- Financial Dimensions in D365 Finance: How They Really Work
- Consistent Hashing: How Distributed Systems Avoid the Great Reshuffle
- Dataverse Many-to-Many Relationships: Native, Manual, and When to Use Each
- Queues and Case Management Fundamentals in Dynamics 365 Customer Service
- Number Sequences in D365 Finance & Operations: Setup, Pitfalls, and X++ Patterns
- D365 Finance & Operations Security: Roles, Duties, and Privileges Done Right
- Managed vs Unmanaged Solutions and Solution Layering in Dataverse
- Recurring Integrations and the REST API in D365 Finance & Operations
- Extensible Data Security (XDS) in D365 Finance & Operations: Row-Level Security That Scales
- Managing D365 Finance & Operations Environments with LCS and Database Refreshes
- Building a Power Pages Portal Backed by Dataverse: Forms, Lists, and Permissions
- Grounding a Copilot Studio Agent on Your Dataverse Data Without the Hallucinations
- Table and Form Data Source Events in D365 F&O: A Practical X++ Reference
- Business Units, Teams, and Ownership: Modeling Dataverse Security Without the Sprawl
- Building and Deploying D365 Finance & Operations Packages with Azure DevOps
- Views, Charts, and Dashboards in Model-Driven Apps: Design That Stays Fast
- Surviving OData Throttling in D365 Finance & Operations Integrations
- Building Custom Workflows in D365 Finance & Operations from Scratch
- Scaling Batch Processing in D365 Finance & Operations: Groups, Threads, and Parallel Tasks
- TempDB vs InMemory Temporary Tables in X++: When to Use Which
- Dual-Write vs Virtual Entities vs OData: Choosing the Right F&O–Dataverse Pattern
- Configuring Purchase Requisition Approval Workflows in D365 F&O Without Code
- Low-Code Plug-ins in Dataverse: Server-Side Logic Without C#
- Building a Balance Sheet and P&L with Financial Reporting in D365 Finance
- Writing Your First Dataverse Plug-in in C#: A Complete Walkthrough
- Query-Based vs RDP SSRS Reports in D365 Finance & Operations
- Business Rules vs Power Fx vs Plug-ins: Where to Put Dataverse Logic
- Copilot in Dynamics 365 Sales: What It Does and How to Configure It
- Inventory Costing Methods in D365 Supply Chain: FIFO, Average, and Standard
- Model-Driven App Forms: Customization Patterns That Scale
- Alternate Keys and Upsert in Dataverse: Reliable Integrations Without Duplicates
- Calculated and Rollup Columns in Dataverse: Patterns and Limits
- Securing Power Pages with Dataverse Table Permissions and Web Roles
- Configuring SLAs and Entitlements in Dynamics 365 Customer Service
- Querying the Dataverse Web API: FetchXML, OData, and When to Use Each
- Canvas vs Model-Driven vs Power Pages: Choosing the Right Power Apps Type
- Solving Power Apps Delegation Warnings for Large Dataverse Tables
- Building Your First PCF Control for Power Apps
- Building Offline-Capable Power Apps for the Field
- Named Formulas and the With() Function: Power Fx Patterns for Faster Apps
- Power Platform Environment Strategy: Dev, Test, Prod, and Everything Between
- Data Loss Prevention Policies in Power Platform: A Practical Setup Guide
- Managed Environments in Power Platform: What They Are and When to Turn Them On
- Building Your First Agent in Copilot Studio
- Embedding Power BI in Power Apps and Driving Cross-Filtering
- Responsive Canvas Apps with Containers: Stop Using Absolute Positioning
- 15 Power Automate Expressions Every Maker Should Memorize
- Calling the Dataverse Web API from Power Automate with the HTTP Action
- Child Flows in Power Automate: Reuse, Pass Data, and Avoid Duplication
- Speeding Up Apply to Each: Concurrency, Filters, and Select in Power Automate
- Mastering Parse JSON in Power Automate: Schemas, Null Handling, and Arrays
- Getting Started with Power Automate Desktop: Your First RPA Bot
- Trigger Conditions in Power Automate: Stop Flows From Running When They Should Not
- Try-Catch-Finally in Power Automate with Scopes and Run After
- Batch Create and Update SharePoint Items in Power Automate with the $batch API
- Posting Interactive Adaptive Cards to Teams from Power Automate
- Connection References and Environment Variables: Power Automate ALM Essentials
- Handling Pagination and Large Datasets in Power Automate
- Securing Secrets in Power Automate: Secure Inputs, Outputs, and Key Vault
- An MCP Server for Dynamics 365 Finance and Operations: Natural-Language Access to ERP
- Event-Driven System Design: The Decisions That Bite You Later
- Power Automate and Azure Service Bus: Reliable Enterprise Messaging
- D365 Unified Routing: Skills-Based Assignment That Works
- Designing a Scalable Search Engine: From Inverted Index to Hybrid Vector Search
- MCP Explained: How Claude Connects to Your Dataverse Data
- Next.js Partial Prerendering: The Production Migration Guide
- OpenTelemetry in .NET: Distributed Tracing Without Vendor Lock-In
- Power Platform Pipelines: Automated ALM Without Azure DevOps
- Querying Dataverse from Claude: A Practical MCP Walkthrough
- Claude Code Hooks: Automating Repo Guardrails Without Pre-Commit Fatigue
- Building Your First MCP Server in Python: A Hands-On Walkthrough
- Prompt Caching with Claude: What It Saves, Where It Fails, and How to Set It Up in Production
- Snowflake Security in Layers: Roles, Column Masking, Row Policies, and Environment Controls
- Tool Use with Claude: Parallel Calls, Retries, and the Patterns That Survive Production
- Claude Agent SDK vs Direct API: When to Reach for Each
- Designing a Scalable Notification System
- Designing a Production-Ready RAG System: What Actually Matters
- API Design Best Practices: REST, GraphQL, and gRPC Compared
- Next.js 16 and React 19: What Actually Matters in 2026
- Event-Driven Architecture: Patterns, Pitfalls, and Practical Guidance
- Vector Databases Compared: pgvector, Qdrant, Pinecone, and When You Don't Need Any
- Caching Strategies for High-Performance Systems
- Idempotency Keys: The Pattern That Saves Your Payment System
- Microservices vs Monolith: Making the Right Architectural Choice
- Database Indexing and Query Optimization: A Deep Dive
- Event-Driven Architecture for LLM Pipelines: Queues, Retries, and the Cost of Synchronous Chains
- Designing a Real-Time Chat System Like WhatsApp
- CAP Theorem Explained: Trade-offs with Real-World Examples
- Multi-Tenant Data Isolation: Row-Level, Schema-Level, Database-Level, and How to Choose
- Building Custom Copilot Plugins for D365 Sales: Your First Action Step by Step
- Designing a URL Shortener: System Design from Scratch
- Autonomous AI Agents in D365 Sales and Customer Service: What You Actually Need to Know
- Building a Real-Time Dashboard with Next.js, Server-Sent Events, and Supabase
2025 (12)
- The New Accounting Rules Engine in D365 Finance: Stop Wasting 30 Hours a Month on Period Close
- Automated Testing for Power Apps with Test Engine — A Practical Walkthrough
- Dual-Write Between D365 F&O and Dataverse: Pitfalls and Patterns That Actually Work
- Monitoring What Matters: Setting Up Alerts That Don't Cry Wolf
- The Incident That Taught Me to Never Skip Staging — A Production Outage Story
- Azure Functions vs Azure Container Apps: Choosing the Right Serverless Model
- Building a Zero-Downtime Deployment Pipeline with Azure DevOps and Slot Swaps
- Infrastructure as Code with Bicep: Moving Beyond ARM Templates
- Rate Limiting and Throttling: Designing APIs That Survive Traffic Spikes
- Authentication Patterns for Modern Web Apps: Sessions, JWTs, and OAuth Compared
- CQRS in Practice: When It's Worth the Complexity and When It Isn't
- Monolith to Microservices: How to Decompose Without Creating a Distributed Monolith
2024 (11)
- X++ Query Performance in D365 F&O: Indexes, Joins, and the Trace Parser
- Virtual Entities in D365 F&O: Exposing External Data Without the ETL Tax
- PowerShell Modules: Packaging and Publishing Reusable Scripts for Your Team
- Migrating Data into D365 F&O with the Data Management Framework — Lessons from the Trenches
- Canvas App Performance: 10 Patterns That Actually Make a Difference
- Power Fx Formulas Every Maker Should Know in 2026
- Power Automate + D365 F&O End-to-End: Consuming Business Events and Calling Data Entities
- Chain of Responsibility in D365 F&O: Extending Standard Logic Without Overlayering
- Business Events and Data Events in D365 Finance & Operations: A Developer Guide
- Dataverse Security Roles: A Practical Guide to Getting Them Right
- SysOperation Framework in D365 F&O: Building Batch Jobs the Right Way
2023 (9)
- Building a Multi-Step Approval Workflow with Adaptive Cards in Power Automate
- Custom Connectors in Power Automate: Integrating Any API Without Writing Code
- Advanced Error Handling in Power Automate Cloud Flows
- Fixing NuGet Error: Unable to Load the Service Index for Source
- Concurrency Control in Power Automate: Preventing Duplicate Runs
- Handling Null and Blank Date Fields in Power Automate
- Managing Environment Variables Across Dev, Test, and Prod in Power Platform
- Detecting Create vs Update Triggers in Dataverse Power Automate Flows
- Remove Duplicates From Arrays in Power Automate — 3 Approaches