Mert Özen Further With Every Line

Blog

Mert Özen's blog posts on software development, backend, frontend, and DevOps.

Series
.NET Core Web API 36 Angular 31 JavaScript Basics 19 JavaScript Intermediate 18 JavaScript Advanced 16 TypeScript Basics 14 TypeScript Intermediate 14 TypeScript Advanced 12 Entity Framework Core 28 Dapper 16 Git & GitHub 29 Web Security (OWASP Top 10) 21 LLM Fundamentals 20 C# Fundamentals 20 Object-Oriented Programming in C# 16 C# Collections and Generics 11 LINQ 17 Asynchronous Programming in C# 17 Advanced C# 14 C# Versions 6 Solution Patterns 22 SOLID and Design Principles 12 Clean Code 13 Design Patterns 23 UML and Modeling 18 Introduction to Software Architecture 9 Clean, Onion and Hexagonal Architecture 8 Vertical Slice Architecture 6 Domain-Driven Design 12 CQRS and Event Sourcing 10 Messaging and Event-Driven Architecture 9 Modular Monolith 2 Microservices 10 UI Architecture Patterns 9 Architecture Decisions 7 System Design 15 Distributed Systems Fundamentals 11 Background Jobs and Scheduled Jobs 11 Working with Message Queues 14 Logging in .NET 10 Caching 10 Real-time Applications 9 ASP.NET Core MVC and Razor Pages 13 CI/CD Fundamentals 8 GitHub Actions 16 Jenkins 12 Web Servers and Hosting 12 Deployment Strategies 9 Kubernetes 19 Authentication and Authorization 18 ASP.NET Core Security 8 Frontend Security 9 API Security (OWASP API Top 10) 11 AI with .NET 14 RAG 13 AI Agents and MCP 14 Test Strategy 4 Unit Testing 13 SDLC (Software Development Life Cycle) 6 Agile Mindset 6 Scrum 11 Kanban 7 Introduction to Product Management 9 SEO Fundamentals 7 Technical SEO 12 GEO (Generative Engine Optimization) 7 Algorithms and Data Structures 22 Debugging and Problem Solving 13
918 posts found
infer in TypeScript: Capturing Types Inside Conditional Types
Frontend PART 02

infer in TypeScript: Capturing Types Inside Conditional Types

We use infer to capture pieces of a matching type, write ReturnType, Parameters and Awaited ourselves, match tuple and string patterns, constrain infer and avoid the overload pitfall.

3 Nov 2026 8 min 40
Conditional Types in TypeScript: Making Decisions at the Type Level
Frontend PART 01

Conditional Types in TypeScript: Making Decisions at the Type Level

We look at the T extends U ? X : Y syntax, what extends means for assignability, distributive behavior over unions, turning it off with [T] and filtering unions with never, backed by real tsc output.

3 Nov 2026 8 min 44
JavaScript's Next Features: TC39 Stages, Temporal and using
Frontend PART 16

JavaScript's Next Features: TC39 Stages, Temporal and using

We learn how a feature passes TC39's stages into the language, how Temporal (PlainDate, ZonedDateTime, Duration) fixes Date's problems, and resource management with using, with notes on Safari support.

3 Nov 2026 10 min 35
JavaScript Web Components: Custom Elements, Shadow DOM and Slots
Frontend PART 15

JavaScript Web Components: Custom Elements, Shadow DOM and Slots

We write our own HTML tag with customElements.define, learn the lifecycle callbacks and observedAttributes, and build a framework-free star rating component with Shadow DOM, template and slot.

3 Nov 2026 10 min 42
Drawing with JavaScript Canvas: 2D Context, Animation and Pixel Data
Frontend PART 14

Drawing with JavaScript Canvas: 2D Context, Animation and Pixel Data

We draw shapes, paths, gradients and text with the canvas 2D context, process images pixel by pixel, build an animation loop with requestAnimationFrame and fix blurriness on retina screens.

3 Nov 2026 10 min 41
Files and Binary Data in JavaScript: File, Blob, ArrayBuffer and Typed Arrays
Frontend PART 13

Files and Binary Data in JavaScript: File, Blob, ArrayBuffer and Typed Arrays

We take files from the user via input and drag and drop, read Blobs and Files, go down to bytes with ArrayBuffer, typed arrays and DataView, and learn ES2026's base64/hex methods and file downloads.

3 Nov 2026 10 min 32
JavaScript Observer APIs: Intersection, Mutation and Resize Observer
Frontend PART 12

JavaScript Observer APIs: Intersection, Mutation and Resize Observer

We build lazy loading and infinite scroll with IntersectionObserver, watch DOM changes with MutationObserver and element size with ResizeObserver, and learn how to clean observers up properly.

3 Nov 2026 9 min 32
JavaScript Web Workers: postMessage, Transferable Objects and Module Workers
Frontend PART 11

JavaScript Web Workers: postMessage, Transferable Objects and Module Workers

We move heavy work off the main thread with Web Workers and learn postMessage and structured clone, single-file Blob URL workers, transferable objects, module workers and life without the DOM.

3 Nov 2026 10 min 41
JavaScript Performance Tips: Debounce, Throttle and Layout Thrashing
Frontend PART 10

JavaScript Performance Tips: Debounce, Throttle and Layout Thrashing

We learn to measure with performance.now, mark and measure, write our own debounce and throttle, and cover requestAnimationFrame, layout thrashing, lazy loading and the DevTools Performance tab.

3 Nov 2026 10 min 30
JavaScript Memory Management: Garbage Collection, Memory Leaks and WeakRef
Frontend PART 09

JavaScript Memory Management: Garbage Collection, Memory Leaks and WeakRef

We look at the stack and heap, reachability and garbage collection, then cover leaks from forgotten listeners, timers, closures and detached DOM, plus WeakMap, WeakRef and heap snapshots in DevTools.

3 Nov 2026 10 min 38
JavaScript Proxy and Reflect: Traps, Validation and Reactivity
Frontend PART 08

JavaScript Proxy and Reflect: Traps, Validation and Reactivity

We intercept reads, writes and deletes on an object with Proxy and keep default behavior with Reflect, then build validation, default values and a reactive UI while covering the pitfalls and the cost.

3 Nov 2026 9 min 32
JavaScript Async Iterators: for await...of, Async Generators and Array.fromAsync
Frontend PART 07

JavaScript Async Iterators: for await...of, Async Generators and Array.fromAsync

We walk through data that arrives over time with Symbol.asyncIterator and async generators, learn for await...of and ES2026's Array.fromAsync, read a paginated API as a stream and meet ReadableStream.

3 Nov 2026 9 min 30
Blog Map