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
I Expected string.Create to Be Faster. It Just Stopped Allocating.

I Expected string.Create to Be Faster. It Just Stopped Allocating.

1
Comments
5 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
My Struct Update Copied 64 Bytes Twice

My Struct Update Copied 64 Bytes Twice

1
Comments
5 min read
I Threw Away 786 MB of Scratch Buffers

I Threw Away 786 MB of Scratch Buffers

Comments
4 min read
I Summed 400,000 Rows on Every Refresh

I Summed 400,000 Rows on Every Refresh

Comments
5 min read
I Parsed the Same Format String Five Million Times

I Parsed the Same Format String Five Million Times

Comments
4 min read
A New JsonSerializerOptions Every Call Cost Me 120x

A New JsonSerializerOptions Every Call Cost Me 120x

Comments
4 min read
I Stamped Every Row With DateTime.Now and Paid Twice

I Stamped Every Row With DateTime.Now and Paid Twice

Comments
4 min read
I Expected a 100x JSON Slowdown. I Got 1.9x.

I Expected a 100x JSON Slowdown. I Got 1.9x.

Comments
5 min read
I Changed object to Lock and Stopped Paying the Monitor Tax

I Changed object to Lock and Stopped Paying the Monitor Tax

Comments
6 min read
The Handler Signature That Kept Growing

The Handler Signature That Kept Growing

Comments
5 min read
133,334 Projections for 66,667 Receipts

133,334 Projections for 66,667 Receipts

Comments
5 min read
I Drained a List From the Front. It Shifted Five Billion Elements.

I Drained a List From the Front. It Shifted Five Billion Elements.

Comments
5 min read
My Extension Method Became a Property and Lost Nothing

My Extension Method Became a Property and Lost Nothing

Comments
5 min read
One Contains Call, 375 Million Comparisons

One Contains Call, 375 Million Comparisons

Comments
5 min read
SortedDictionary Kept Sorting My Insertion Order Away

SortedDictionary Kept Sorting My Insertion Order Away

Comments
5 min read
My Struct Key Boxed Itself Two Million Times

My Struct Key Boxed Itself Two Million Times

Comments
5 min read
I Knew the Count and Let the List Guess Twenty Times

I Knew the Count and Let the List Guess Twenty Times

Comments
6 min read
Four Million Checks for Two Million Orders

Four Million Checks for Two Million Orders

Comments
5 min read
I Only Wanted Six Sums. GroupBy Gave Me 100 MB

I Only Wanted Six Sums. GroupBy Gave Me 100 MB

Comments
4 min read
The Backing Field a Typo Could Reach

The Backing Field a Typo Could Reach

Comments
4 min read
I Clamped Two Million Readings and Nothing Happened

I Clamped Two Million Readings and Nothing Happened

Comments
5 min read
GetOrAdd Ran My Factory Three Times

GetOrAdd Ran My Factory Three Times

Comments
5 min read
OrderBy().First() Wasn't Sorting Anything

OrderBy().First() Wasn't Sorting Anything

Comments
5 min read
440 MB of Closures on Pure Cache Hits

440 MB of Closures on Pure Cache Hits

1
Comments 1
4 min read
I Split Two Million Rows and the GC Noticed

I Split Two Million Rows and the GC Noticed

1
Comments 1
4 min read
Every Comma Was Costing Me an Array

Every Comma Was Costing Me an Array

Comments
4 min read
My Logging Middleware Ate the Request Body

My Logging Middleware Ate the Request Body

Comments
4 min read
StartsWith Was Asking ICU Every Time

StartsWith Was Asking ICU Every Time

1
Comments
4 min read
The GUID That Sorts Itself (Until It Doesn't)

The GUID That Sorts Itself (Until It Doesn't)

1
Comments
5 min read
My /robots.txt Was Paying Full Pipeline Price

My /robots.txt Was Paying Full Pipeline Price

Comments
4 min read
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

6
Comments 1
4 min read
loading...