DEV Community

Sukhpinder Singh profile picture

Sukhpinder Singh

A questionable humor from a developer who’s convinced his bugs are funnier than yours.

Education

M.Tech & B.Tech Computer Science

Pronouns

he/him

Work

Technical Lead at SourceFuse

Five Year Club
April Fools Challenge Completion Badge
C#
Four Year Club
Web Game Challenge Completion Badge
8 Week Community Wellness Streak
Three Year Club
Coze AI Bot Challenge Completion Badge
100 Thumbs Up Milestone
Icebreaker
4 Week Community Wellness Streak
Frontend Challenge Completion Badge
My /robots.txt Was Paying Full Pipeline Price

My /robots.txt Was Paying Full Pipeline Price

Comments
4 min read

Want to connect with Sukhpinder Singh?

Create an account to connect with Sukhpinder Singh. You can also sign in below to proceed if you already have an account.

Already have an account? Sign in
I Booted a Whole Web Server to Check a 404

I Booted a Whole Web Server to Check a 404

Comments
4 min read
616 Bytes to Add Up Sixteen Numbers

616 Bytes to Add Up Sixteen Numbers

Comments
5 min read
Sorted Fine at 16, Broke at 17

Sorted Fine at 16, Broke at 17

Comments
4 min read
I Allocated 1.5 GB Just to Add Vectors Together

I Allocated 1.5 GB Just to Add Vectors Together

1
Comments
5 min read
The string.Create I Didn't Need

The string.Create I Didn't Need

Comments
4 min read
The VaryBy Line That Served Everyone Page 1

The VaryBy Line That Served Everyone Page 1

1
Comments
4 min read
My 'Cached' Endpoint Ran the Handler Ten Times Anyway

My 'Cached' Endpoint Ran the Handler Ten Times Anyway

1
Comments
5 min read
40 Bytes a Call, Just to Pass Four Ints

40 Bytes a Call, Just to Pass Four Ints

1
Comments
5 min read
48 Bytes a Call I Kept Handing the Garbage Collector

48 Bytes a Call I Kept Handing the Garbage Collector

2
Comments 1
4 min read
I Added One ? and 1,000 Method Calls Vanished

I Added One ? and 1,000 Method Calls Vanished

1
Comments
4 min read
500 Async Calls, One Number That Explains Why

500 Async Calls, One Number That Explains Why

2
Comments
5 min read
The Tidy Helper That Made JSON Serialization 60x Slower

The Tidy Helper That Made JSON Serialization 60x Slower

Comments
5 min read
120 Bytes Per Log Line Nobody Read

120 Bytes Per Log Line Nobody Read

Comments
5 min read
The Lock Type Didn't Make My Locks Faster

The Lock Type Didn't Make My Locks Faster

Comments
5 min read
MCP Python SDK Extension Method Collisions: Fail Before the Server Starts

MCP Python SDK Extension Method Collisions: Fail Before the Server Starts

5
Comments 1
4 min read
.NET 10 Generic Math Shift Masking: Catch Overshifts That Now Wrap

.NET 10 Generic Math Shift Masking: Catch Overshifts That Now Wrap

6
Comments 1
4 min read
EF Core 10 Named Default Constraints: Preview the Migration SQL Before Deploying

EF Core 10 Named Default Constraints: Preview the Migration SQL Before Deploying

7
Comments
4 min read
OpenAI Responses API previous_response_id Instructions: Repeat Policy on Every Turn

OpenAI Responses API previous_response_id Instructions: Repeat Policy on Every Turn

5
Comments
4 min read
.NET 10 InlineArray Explicit Size: Fix TypeLoadException with a Wrapper

.NET 10 InlineArray Explicit Size: Fix TypeLoadException with a Wrapper

5
Comments 1
4 min read
.NET 10 LDAP VlvRequestControl Validation: Stop Sending Replacement Bytes

.NET 10 LDAP VlvRequestControl Validation: Stop Sending Replacement Bytes

5
Comments
4 min read
OpenAI Usage API api_key_id: Reconcile Tokens and Costs by Key

OpenAI Usage API api_key_id: Reconcile Tokens and Costs by Key

12
Comments 1
4 min read
MCP C# Task Polling: Stop Infinite input_required Loops

MCP C# Task Polling: Stop Infinite input_required Loops

6
Comments 3
3 min read
OpenAI Responses API `user` Migration: Split Safety from Prompt Caching

OpenAI Responses API `user` Migration: Split Safety from Prompt Caching

5
Comments
4 min read
MCP C# Per-Request Client Capabilities: Read the Request, Not the Server

MCP C# Per-Request Client Capabilities: Read the Request, Not the Server

6
Comments 2
4 min read
Claude API Workspace Verification: Catch Misrouted Requests Before Attribution

Claude API Workspace Verification: Catch Misrouted Requests Before Attribution

5
Comments
4 min read
Claude Structured Outputs Refusal Handling: Stop Parsing HTTP 200 Refusals

Claude Structured Outputs Refusal Handling: Stop Parsing HTTP 200 Refusals

6
Comments
4 min read
.NET 10 ActivitySamplingResult PropagationData: Why Recorded Turns False

.NET 10 ActivitySamplingResult PropagationData: Why Recorded Turns False

11
Comments 2
4 min read
.NET 10 BufferedStream WriteByte: Flush Full Buffers Explicitly

.NET 10 BufferedStream WriteByte: Flush Full Buffers Explicitly

5
Comments 1
3 min read
.NET 10 NU1510 Package Pruning: Fix CI Without Breaking Legacy Targets

.NET 10 NU1510 Package Pruning: Fix CI Without Breaking Legacy Targets

5
Comments
4 min read
MCP Pagination Empty `nextCursor`: Don't Stop After Page One

MCP Pagination Empty `nextCursor`: Don't Stop After Page One

5
Comments
4 min read
.NET 10 NU1015: Fix PackageReference Without Version Restore Failures

.NET 10 NU1015: Fix PackageReference Without Version Restore Failures

6
Comments
4 min read
.NET 10 JSON Console Logging: Stop Parsing State.Message

.NET 10 JSON Console Logging: Stop Parsing State.Message

7
Comments
4 min read
MCP C# SDK Array Tool Outputs: Stop Looking for a `result` Wrapper

MCP C# SDK Array Tool Outputs: Stop Looking for a `result` Wrapper

5
Comments
4 min read
.NET 10 Numeric String Sorting: Put File 10 After File 9

.NET 10 Numeric String Sorting: Put File 10 After File 9

5
Comments
4 min read
MCP C# SDK Hybrid Sessions: Serve Old and New Clients on One Endpoint

MCP C# SDK Hybrid Sessions: Serve Old and New Clients on One Endpoint

5
Comments 1
4 min read
MCP x-mcp-header Validation: Keep Bad Tool Schemas Out of tools/list

MCP x-mcp-header Validation: Keep Bad Tool Schemas Out of tools/list

6
Comments 1
4 min read
.NET 10 dotnet tool exec: Pin the Version and Feed in CI

.NET 10 dotnet tool exec: Pin the Version and Feed in CI

5
Comments
4 min read
xUnit 4 ParallelMode.All: Protect Shared State from Test Races

xUnit 4 ParallelMode.All: Protect Shared State from Test Races

5
Comments 1
4 min read
ASP.NET Core 10 Authentication Metrics: Distinguish No Result from Failure

ASP.NET Core 10 Authentication Metrics: Distinguish No Result from Failure

5
Comments
4 min read
Microsoft.Testing.Platform Crash-Resilient TRX: Keep Evidence When the Host Dies

Microsoft.Testing.Platform Crash-Resilient TRX: Keep Evidence When the Host Dies

5
Comments
4 min read
MCP cacheScope: Stop Private Results Leaking Across Users

MCP cacheScope: Stop Private Results Leaking Across Users

6
Comments 3
4 min read
MCP C# SDK Protocol Negotiation: Pin 2026-07-28 When Fallback Is Unsafe

MCP C# SDK Protocol Negotiation: Pin 2026-07-28 When Fallback Is Unsafe

7
Comments 2
4 min read
7.8 MB of Keys I Allocated Just to Throw Away

7.8 MB of Keys I Allocated Just to Throw Away

14
Comments
4 min read
I Hashed Every Word Twice to Count It Once

I Hashed Every Word Twice to Count It Once

11
Comments 1
4 min read
The Feature Flag That Needed a Restart

The Feature Flag That Needed a Restart

7
Comments 2
4 min read
One Outage, Four Times the Traffic

One Outage, Four Times the Traffic

9
Comments
4 min read
I Loaded 8,956 Rows to Flip One Boolean

I Loaded 8,956 Rows to Flip One Boolean

6
Comments 1
4 min read
The Factory Class I Finally Deleted

The Factory Class I Finally Deleted

6
Comments
4 min read
My Shell Scripts Speak C# Now

My Shell Scripts Speak C# Now

6
Comments
4 min read
Upgrade .NET 8 to .NET 10 Without Breaking Your API Contract

Upgrade .NET 8 to .NET 10 Without Breaking Your API Contract

8
Comments
4 min read
The Test That Slept and the Test That Never Woke Up

The Test That Slept and the Test That Never Woke Up

6
Comments
5 min read
19 Requests Through a 10-Request Limit

19 Requests Through a 10-Request Limit

6
Comments 1
4 min read
The Freeze Fee: What FrozenDictionary Charges and When It Pays

The Freeze Fee: What FrozenDictionary Charges and When It Pays

6
Comments 1
4 min read
The 400 I Didn't Have to Write

The 400 I Didn't Have to Write

5
Comments
4 min read
Two Includes, 2,880 Rows: EF Core's Quiet Cartesian Tax

Two Includes, 2,880 Rows: EF Core's Quiet Cartesian Tax

7
Comments 1
4 min read
The WhenAny Drain Loop Can Finally Retire

The WhenAny Drain Loop Can Finally Retire

7
Comments 1
4 min read
Your Request Timeout Is a Polite Suggestion

Your Request Timeout Is a Polite Suggestion

7
Comments
4 min read
One Unbounded Channel, 188 MB of Regret

One Unbounded Channel, 188 MB of Regret

7
Comments
4 min read
One Task.Run Quietly Killed the BackgroundService Startup Footgun

One Task.Run Quietly Killed the BackgroundService Startup Footgun

6
Comments 1
4 min read
loading...