Code Whisper

@codewhisper.bsky.social

👾 Anonymous engineer, sharing thoughts on code, tech & systems. 🚫 No face, just logic. x.com/codewhisperdev

REST Tip – Use HATEOAS to guide the client HATEOAS = Hypermedia as the Engine of Application State 📦 Instead of sending just data, include actions 🧠 Why? • Makes APIs discoverable • Reduces hard-coded logic on the client • Enables better versioning and evolution

Bild

HTTP Tip Idempotent methods can be safely retried without causing side effects. 🔹 GET, PUT, DELETE, HEAD, OPTIONS → Idempotent 🔹 POST → NOT idempotent 🧠 Why? Using the correct method: ▪️ Makes APIs predictable ▪️ Enables retries in network failures ▪️ Helps with caching, monitoring, and debugging

Bild

SQL Tip – Avoid Scalar Functions in SELECT for Performance 🚫 Bad (Scalar function kills performance on large data) ✅ Good (Inline logic or apply in WHERE/CTE for better performance) Example:

Bild

.NET DI Lifetime Tips: 🔹 Singleton - one of instance for entire app 🔹 Scoped - one instance per request 🔹 Transient - new instance every time 🚨 Be careful: - Dont inject Scoped/Transient into Singleton (causes bugs/memory leaks) - Use Singleton only for stateless or thread-safe services.

Bild

LINQ Tip: Use ToList() after filtering, not before Why? 🔹 First version loads everything into memory before filtering 🔹 Second version filters at source, better for DB or large collections 🔹 Especially important when using EF Core or APIs with IQueryable

Bild

Efficient Async Data Streaming with IAsyncEnumerable<T> Scenario: You need to process a large dataset (e.g., database records, file lines, etc.), but you don’t want to load everything into memory at once. Using IAsyncEnumerable<T> lets you stream data asynchronously with minimal memory usage.

Bild

🔹 What is Queue<T>? Queue<T> is a First-In-First-Out (FIFO) collection in C#. It means the first item you add is the first one to be removed. When to use? - Task scheduling - Print jobs - Message handling - Breadth-first search (BFS) in graphs Example:

Bild

SQL Tip: Always monitor and maintain your indexes. Unused or duplicate indexes = slower writes and wasted space. Why? - Clean indexes = faster inserts/updates - Less I/O, better performance 🔍 Use this to find unused indexes in SQL Server

Bild

LINQ Trip: Use GroupJoin for efficient one-to-many relationships instead of nested loops. Why? 🔹 Cleaner than SelectMany + Where 🔹 Ideal for creating master-detail structures in memory

Bild

SQL Tip: Use CROSS APPLY for row-wise calculations or to invoke table-valued functions per row. Why? 🔹Powerful for row-by-row subqueries 🔹Cleaner & faster than correlated subqueries in many cases

Bild

Pass by Value vs Pass by Reference 🔹 Pass by Value: A copy of the value is passed to the function. Changes inside the function don’t affect the original variable. 🔹 Pass by Reference: The memory address (reference) is passed. Changes inside the function do affect the original variable.

Bild

SQL Tip: Use EXISTS instead of COUNT(*) > 0 for better performance when checking if rows exist. ✅ EXISTS stops at the first match. ❌ COUNT(*) scans the whole table. Faster checks = faster queries ⚡

Bild

EF Core Tip – Bulk Update: Need to update thousands of rows? Avoid looping with .SaveChanges() in EF Core — it's slow. Use a bulk update library like EFCore.BulkExtensions for massive performance gains. Bonus: Works for Insert, Delete, Merge too.

Bild

SQL Trick: Use COALESCE() to return the first non-null value from a list of columns or expressions. Why it’s awesome: • Handles null values seamlessly • You can chain multiple options: COALESCE(col1, col2, 'default') Cleaner queries, fewer CASE statements!

Bild

RESTful Tip – Filtering like a pro: Support flexible filtering via query parameters, not custom endpoints. Why? 🔹 Keeps your endpoints clean (/products stays consistent) 🔹 Easy to combine filters (e.g. by brand, price, rating) 🔹 Plays well with sorting & pagination

Bild

LINQ Trick: Use Any() instead of Count() > 0 for better performance when just checking for existance. Any() stops at the first match, Count() goes through the whole collection. Speed matters!

Bild

I’ve always wondered whether a new social media app could make its way among established and popular platforms like Instagram, X, or TikTok. Right now, I think Bluesky has the potential to do that.