SAFI.DEV
BLOG

Thoughts & Tutorials

Writing about software engineering, game development, and everything in between

Building a Game Engine from Scratch with C# and C++: Architecture, Vulkan Rendering, and Lessons Learned

Building a Game Engine from Scratch with C# and C++: Architecture, Vulkan Rendering, and Lessons Learned

A deep dive into building a Bevy-inspired game engine where C# handles game logic through an Entity Component System and C++ powers Vulkan rendering, connected via Mono P/Invoke. Covers architecture decisions, the ECS pattern, dynamic lighting, and what it takes to build a renderer from zero.

Feb 10, 2026 7 min read
Dental Clinic Website

Dental Clinic Website

Jan 23, 2026 • 1 min read
Platform Engineering in Practice: Building Your Internal Developer Platform

Platform Engineering in Practice: Building Your Internal Developer Platform

Jan 05, 2026 • 13 min read
Building VS Code Extensions in 2026: The Complete Modern Guide

Building VS Code Extensions in 2026: The Complete Modern Guide

Jan 03, 2026 • 12 min read

RAG for Developers: Building Context-Aware Documentation Assistants

Jan 01, 2026 • 10 min read
Learn These 10 AI Concepts Before It's Too Late

Learn These 10 AI Concepts Before It's Too Late

Dec 06, 2025 • 8 min read
2026 Web Design Trends: 9 Essential Patterns Shaping the Future of Digital Design

2026 Web Design Trends: 9 Essential Patterns Shaping the Future of Digital Design

Dec 05, 2025 • 10 min read
Anthropic Acquires Bun: What This Means for JavaScript Development and AI Coding Tools in 2025

Anthropic Acquires Bun: What This Means for JavaScript Development and AI Coding Tools in 2025

Dec 03, 2025 • 10 min read
Frontend System Design Essentials: 7 Common Mistakes and How to Avoid Them

Frontend System Design Essentials: 7 Common Mistakes and How to Avoid Them

Dec 01, 2025 • 12 min read
.NET 10 Released: Complete Guide to New Features and Performance Improvements in 2025

.NET 10 Released: Complete Guide to New Features and Performance Improvements in 2025

Dec 01, 2025 • 11 min read
Modern Web Styling Best Practices: Bootstrap vs Tailwind CSS vs Material UI vs Shadcn UI in 2025

Modern Web Styling Best Practices: Bootstrap vs Tailwind CSS vs Material UI vs Shadcn UI in 2025

Nov 29, 2025 • 15 min read
How to Reduce Docker Image Size from 1.2GB to 10MB: A Complete Optimization Guide

How to Reduce Docker Image Size from 1.2GB to 10MB: A Complete Optimization Guide

Nov 29, 2025 • 11 min read
The Ultimate Guide to Google Search Operators: Master Advanced Search Techniques in 2025

The Ultimate Guide to Google Search Operators: Master Advanced Search Techniques in 2025

Nov 29, 2025 • 9 min read

I Built a Better File Explorer for VSCode Because macOS Finder is Painful

Nov 01, 2025 • 6 min read

ClarifAI: Free AI-Powered Code Analysis for Visual Studio Code

Oct 23, 2025 • 8 min read
AWS US-East-1 Outage October 2025: Complete Analysis and Impact Report

AWS US-East-1 Outage October 2025: Complete Analysis and Impact Report

Oct 20, 2025 • 5 min read

API Design and Architecture: A Complete Developer's Guide to Building Scalable APIs

Oct 19, 2025 • 20 min read
Native or Cross-Platform Mobile App? How to Decide in 2025

Native or Cross-Platform Mobile App? How to Decide in 2025

Oct 18, 2025 • 10 min read
How to Choose the Right Web Development Partner for Your Business

How to Choose the Right Web Development Partner for Your Business

Oct 18, 2025 • 13 min read
Prompt vs Context Engineering: A Complete Guide to AI Communication Optimization

Prompt vs Context Engineering: A Complete Guide to AI Communication Optimization

Oct 15, 2025 • 16 min read
Building an AI-Powered Image Renaming Desktop App with Python, tkinter, and Ollama

Building an AI-Powered Image Renaming Desktop App with Python, tkinter, and Ollama

Oct 15, 2025 • 12 min read
Building a Modern Text-to-Speech Application with AI-Powered Text Optimization

Building a Modern Text-to-Speech Application with AI-Powered Text Optimization

Oct 10, 2025 • 12 min read

React 19.2 Is Here — What Developers Need to Know?

Oct 09, 2025 • 3 min read
Mastering rsync: The Ultimate Command for Fast Code Deployment and Server Syncing

Mastering rsync: The Ultimate Command for Fast Code Deployment and Server Syncing

Oct 07, 2025 • 3 min read

PyTorch vs TensorFlow: A Beginner Developer’s Guide to Choosing the Right Framework

Oct 07, 2025 • 4 min read
React Native with Expo vs React Native CLI: A Developer’s Complete Guide (2025)

React Native with Expo vs React Native CLI: A Developer’s Complete Guide (2025)

Oct 06, 2025 • 3 min read
What is Technical Debt? A Complete Guide for Businesses & Developers

What is Technical Debt? A Complete Guide for Businesses & Developers

Oct 04, 2025 • 3 min read
Retrieval-Augmented Generation (RAG) with Local PDFs and Ollama: A Developer’s Guide

Retrieval-Augmented Generation (RAG) with Local PDFs and Ollama: A Developer’s Guide

Sep 30, 2025 • 5 min read
Next.js Middleware: A Developer’s Guide with Real Use Cases and Code Examples

Next.js Middleware: A Developer’s Guide with Real Use Cases and Code Examples

Sep 25, 2025 • 4 min read
How to Optimize SQL Queries to Run Faster: A Developer’s Guide

How to Optimize SQL Queries to Run Faster: A Developer’s Guide

Sep 22, 2025 • 3 min read
Using Partial Views in ASP.NET Core MVC

Using Partial Views in ASP.NET Core MVC

Sep 22, 2025 • 7 min read
How to Use Claude Code Right: The Ultimate Guide to AI-Powered Development Best Practices in 2025

How to Use Claude Code Right: The Ultimate Guide to AI-Powered Development Best Practices in 2025

Sep 11, 2025 • 5 min read
Custom HTML & JavaScript Attributes: A Developer’s Guide with Examples

Custom HTML & JavaScript Attributes: A Developer’s Guide with Examples

Sep 09, 2025 • 3 min read
Is Bootstrap Still Worth It in 2025? Comparing Bootstrap, Tailwind & shadcn/ui

Is It Still Worth Using Bootstrap in 2025 When Tailwind and shadcn/ui Exist?

Sep 07, 2025 • 3 min read
Next.js 15.5: A Developer’s Guide to Turbocharged Builds, Full-Node Middleware & Smarter TypeScript

Next.js 15.5: A Developer’s Guide to Turbocharged Builds, Full-Node Middleware & Smarter TypeScript

Sep 03, 2025 • 3 min read
React 19 Memoization: Do We Still Need useMemo & useCallback in 2025?

React 19 Memoization: Is useMemo & useCallback No Longer Necessary?

Sep 01, 2025 • 3 min read
SQL vs NoSQL: A Look at MongoDB and Its Trade-offs

SQL vs NoSQL: A Look at MongoDB and Its Trade-offs

Sep 01, 2025 • 3 min read
Why Developers Choose Shadcn UI Over Radix UI

Why Developers Choose Shadcn UI Over Radix UI

Aug 24, 2025 • 2 min read
Local SEO and Google My Business (GMB) Listings: A Complete Guide

Local SEO and Google My Business (GMB) Listings: A Complete Guide

Aug 22, 2025 • 3 min read
FilamentPHP v4: The Best Laravel CMS Just Got Smarter

FilamentPHP v4: The Best Laravel CMS Just Got Smarter

Aug 15, 2025 • 3 min read
Threads vs Processes in Programming: A Complete Guide

Threads vs Processes in Programming: A Complete Guide

Aug 12, 2025 • 3 min read
HTML Best Practices for Login and Signup Forms

HTML Best Practices for Login and Signup Forms

Aug 04, 2025 • 3 min read
Razor vs Blazor in .NET: What's the Difference?

Razor vs Blazor in .NET: What's the Difference?

Aug 03, 2025 • 3 min read
Electron vs. Tauri: Can We Really Start Relying on Tauri Instead?

Electron vs. Tauri: Can We Really Start Relying on Tauri Instead?

Jul 28, 2025 • 3 min read
How I Used AI to Instantly Generate a Postman JSON Collection (and Why You Should Too)

How I Used AI to Instantly Generate a Postman JSON Collection (and Why You Should Too)

Jul 27, 2025 • 2 min read
Design Systems Explained: Atoms, Molecules, Organisms, Templates, and Pages

Design Systems Explained: Atoms, Molecules, Organisms, Templates, and Pages

Jul 25, 2025 • 3 min read
7 Signs It’s Time to Upgrade Your Mobile App (and How I Can Help)

7 Signs It’s Time to Upgrade Your Mobile App (and How I Can Help)

Jul 23, 2025 • 3 min read
Progressive Web Apps (PWAs) vs. Native Apps: A 2025 Comparison

Progressive Web Apps (PWAs) vs. Native Apps: A 2025 Comparison

Jul 22, 2025 • 3 min read
How AI Is Influencing Today’s Design Workflows

How AI Is Influencing Today’s Design Workflows

Jul 22, 2025 • 3 min read
Top 5 SVG Icon Libraries for Any Project or Framework (2025)

Top 5 SVG Icon Libraries for Any Project or Framework (2025)

Jul 20, 2025 • 3 min read
Backend as a Service (BaaS): What It Is, Why It Matters, and the Top Tools to Know

Backend as a Service (BaaS): What It Is, Why It Matters, and the Top Tools to Know

Jul 18, 2025 • 4 min read
Building My First .NET Core MVC RSVP Platform for a Banking Association Event

Building My First .NET Core MVC RSVP Platform for a Banking Association Event

Jul 15, 2025 • 3 min read
LibSQL: The Cloud-Native, Distributed Version of SQLite

LibSQL: The Cloud-Native, Distributed Version of SQLite

Jul 14, 2025 • 3 min read
Dia – The AI Browser That’s Changing How We Use the Web (2025 Guide)

Dia – The AI Browser That’s Changing How We Use the Web (2025 Guide)

Jul 10, 2025 • 4 min read
How I Designed a Full UI in 2 Hours Using UX Pilot AI

How I Designed a Full UI in 2 Hours Using UX Pilot AI

Jul 06, 2025 • 3 min read
The Easiest Way to Run LLM Models Locally: A Practical Guide Using Ollama and LM Studio

The Easiest Way to Run LLM Models Locally: A Practical Guide Using Ollama and LM Studio

Jul 05, 2025 • 4 min read
Why 90% of Projects Don’t Need More Than SQLite

Why 90% of Projects Don’t Need More Than SQLite

Jul 05, 2025 • 3 min read
The Ultimate Claude Code Workflow Guide: From Setup to Supercharged Automation

The Ultimate Claude Code Workflow Guide: From Setup to Supercharged Automation

Jul 05, 2025 • 4 min read
Trying Vibe Coding for the First Time with Claude Code: I Built an Invoice Generator in One Day

Trying Vibe Coding for the First Time with Claude Code: I Built an Invoice Generator in One Day

Jul 04, 2025 • 3 min read
 How to Write a Product Requirements Document (PRD) with AI Tools

How to Write a Product Requirements Document (PRD) with AI Tools

Jul 04, 2025 • 5 min read
Frontend Frameworks vs. Meta Frameworks: When to Use React/Vue and When to Choose Next.js/Nuxt.js

Frontend Frameworks vs. Meta Frameworks: When to Use React/Vue and When to Choose Next.js/Nuxt.js

Jun 30, 2025 • 4 min read
Everything You Need to Know About ES2025: What’s New in JavaScript

Everything You Need to Know About ES2025: What’s New in JavaScript

Jun 28, 2025 • 3 min read
When to Use REST, GraphQL, or gRPC: A Practical Breakdown

When to Use REST, GraphQL, or gRPC: A Practical Breakdown

Jun 23, 2025 • 4 min read
Securing Your API: Auth Strategies for REST vs GraphQL with Spring Boot

Securing Your API: Auth Strategies for REST vs GraphQL with Spring Boot

Jun 21, 2025 • 5 min read
Should You Migrate from REST to GraphQL? What to Consider

Should You Migrate from REST to GraphQL? What to Consider

Jun 19, 2025 • 3 min read
Vibe Coding: The Good, The Bad, and the Future of Software Development

Vibe Coding: The Good, The Bad, and the Future of Software Development

Jun 19, 2025 • 3 min read
Building Scalable APIs: REST Best Practices You Shouldn’t Ignore

Building Scalable APIs: REST Best Practices You Shouldn’t Ignore

Jun 19, 2025 • 4 min read
Mastering Self-Hosting with Reverse Proxy Servers: A Beginner's Guide

Mastering Self-Hosting with Reverse Proxy Servers: A Beginner's Guide

Jun 18, 2025 • 4 min read
Cross-Platform Excellence with React Native and Expo: A Developer's Guide to Building Apps Fast

Cross-Platform Excellence with React Native and Expo: A Developer's Guide to Building Apps Fast

Jun 18, 2025 • 4 min read
Where Should You Host Your App? Hosting Providers Compared

Where Should You Host Your App? Hosting Providers Compared

Jun 18, 2025 • 4 min read
Why Figma Bought Payload CMS — And Why It Actually Makes a Lot of Sense

Why Figma Bought Payload CMS — And Why It Actually Makes a Lot of Sense

Jun 18, 2025 • 3 min read
Top Project Management Tools in 2025: ClickUp, Obsidian, Notion & More

Top Project Management Tools in 2025: ClickUp, Obsidian, Notion & More

Jun 16, 2025 • 5 min read
What Are the Core On-Page SEO Elements I Should Focus on Before Launching?

What Are the Core On-Page SEO Elements I Should Focus on Before Launching?

Jun 15, 2025 • 3 min read
Exploring API Types: REST, GraphQL, gRPC, and More

Exploring API Types: REST, GraphQL, gRPC, and More

Jun 05, 2025 • 4 min read
Introducing MCP: The Next Evolution in API Architecture

Introducing MCP: The Next Evolution in API Architecture

Jun 05, 2025 • 3 min read
When & Why You Should Containerize Your Application: A Comprehensive Guide

When & Why You Should Containerize Your Application: A Comprehensive Guide

Jun 04, 2025 • 4 min read
Exploring the Laravel Ecosystem

Exploring the Laravel Ecosystem

Jun 03, 2025 • 4 min read
Mastering SEO: A Comprehensive Guide for Any Website

Mastering SEO: A Comprehensive Guide for Any Website

May 30, 2025 • 4 min read
Beyond "Click Here": A Guide to Different Types of Links You Need to Know

Beyond "Click Here": A Guide to Different Types of Links You Need to Know

May 30, 2025 • 4 min read
Mastering Efficiency: A Guide to Vim, NeoVim, and Motion Commands

Mastering Efficiency: A Guide to Vim, NeoVim, and Motion Commands

May 27, 2025 • 4 min read
GET IN TOUCH

Let's Build Something Together

Whether you have a project idea, want to collaborate on a game, or just say hello

Get in Touch safi.abdulkader@gmail.com