Christopher Okhravi

Christopher Okhravi

I’m on a mission to answer a simple question: Which abstractions should be used when? From the moment I learned my first abstraction, I was hooked. This fascination continues to shape how I think about software and has led me to complete a PhD. On this channel, I share practical frameworks, mental models, and real-world examples to help you make better decisions as a developer. Whether you’re a student, entrepreneur, or seasoned programmer, the right abstraction can make all the difference. I make videos on: 1. Choosing the right abstraction. 2. Reducing complexity without losing flexibility. 3. Decision-making tools for scalable code. 4. When and why to make trade-offs. If you’ve got a question, challenge, or story, email me—I’d love to hear from you. Note: Some links on this channel are affiliate links. If you buy through them, I may earn a commission at no extra cost to you.

Accidentally Used Design Patterns When Rebuilding Pokémon

Accidentally Used Design Patterns When Rebuilding Pokémon

Christopher Okhravi

1 month ago

Computers Education
Rebuilding Pokémon with Object Oriented Programming

Rebuilding Pokémon with Object Oriented Programming

Christopher Okhravi

1 month ago

Computers Education
Nothing Wrong With Procedural Programming?

Nothing Wrong With Procedural Programming?

Christopher Okhravi

2 months ago

Computers Education
Only Use Inheritance If You Want Both of These

Only Use Inheritance If You Want Both of These

Christopher Okhravi

8 months ago

Computers Education
7 Tips to Grow as a Developer

7 Tips to Grow as a Developer

Christopher Okhravi

8 months ago

Computers Education
Depend on Abstractions not Concretions (Framework)

Depend on Abstractions not Concretions (Framework)

Christopher Okhravi

8 months ago

Computers Education
3 Reasons WHY Waterfall Doesn't Work

3 Reasons WHY Waterfall Doesn't Work

Christopher Okhravi

8 months ago

Computers Education
They Knew Waterfall Didn't Work

They Knew Waterfall Didn't Work

Christopher Okhravi

8 months ago

Computers Education
Always Use Interfaces

Always Use Interfaces

Christopher Okhravi

8 months ago

Computers Education
Covariance and Contravariance

Covariance and Contravariance

Christopher Okhravi

8 months ago

Computers Education
3 Ideas on Refactoring by Martin Fowler

3 Ideas on Refactoring by Martin Fowler

Christopher Okhravi

8 months ago

Computers Education
The Square-Rectangle Problem

The Square-Rectangle Problem

Christopher Okhravi

8 months ago

Computers Education
The Only Time You Should Use Polymorphism

The Only Time You Should Use Polymorphism

Christopher Okhravi

8 months ago

Computers Education
Object Oriented Programming – Lecture 2 – Paradigms, Types, Compilation, Purity, Programs

Object Oriented Programming – Lecture 2 – Paradigms, Types, Compilation, Purity, Programs

Christopher Okhravi

8 months ago

Computers Education
Object Oriented Programming – Lecture 1 – Overview of contents

Object Oriented Programming – Lecture 1 – Overview of contents

Christopher Okhravi

8 months ago

Computers Education
My Vim Setup #2 (Mappings / Custom shortcuts)

My Vim Setup #2 (Mappings / Custom shortcuts)

Christopher Okhravi

8 months ago

Computers Education
My Vim Setup #1 (Job Control)

My Vim Setup #1 (Job Control)

Christopher Okhravi

8 months ago

Computers Education
Reactive Programming from Scratch (JavaScript) - Ep3

Reactive Programming from Scratch (JavaScript) - Ep3

Christopher Okhravi

8 months ago

Computers Education
Reactive Programming from Scratch (JavaScript) - Ep2

Reactive Programming from Scratch (JavaScript) - Ep2

Christopher Okhravi

8 months ago

Computers Education
Reactive Programming from Scratch (JavaScript) - Ep1

Reactive Programming from Scratch (JavaScript) - Ep1

Christopher Okhravi

8 months ago

Computers Education
(Ep2) Mandala Maker in JavaScript (functional style)

(Ep2) Mandala Maker in JavaScript (functional style)

Christopher Okhravi

8 months ago

Computers Education
(Ep1) Mandala Maker in JavaScript (functional style)

(Ep1) Mandala Maker in JavaScript (functional style)

Christopher Okhravi

8 months ago

Computers Education
Ramda JS Tutorial – Part 40 (filter)

Ramda JS Tutorial – Part 40 (filter)

Christopher Okhravi

8 months ago

Computers Education
Todo App in Vue.js – The Hard Way (Ep18)

Todo App in Vue.js – The Hard Way (Ep18)

Christopher Okhravi

8 months ago

Computers Education
Todo App in Vue.js – The Hard Way (Ep17)

Todo App in Vue.js – The Hard Way (Ep17)

Christopher Okhravi

8 months ago

Computers Education
Vue.js – The Hard Way (Ep16)

Vue.js – The Hard Way (Ep16)

Christopher Okhravi

8 months ago

Computers Education
Vue.js – The Hard Way (Ep15)

Vue.js – The Hard Way (Ep15)

Christopher Okhravi

8 months ago

Computers Education
Vue.js – The Hard Way (Ep14)

Vue.js – The Hard Way (Ep14)

Christopher Okhravi

8 months ago

Computers Education
Working Software Is Not The Primary Measure of Progress

Working Software Is Not The Primary Measure of Progress

Christopher Okhravi

1 year ago

Computers Education
Rules Have Reasons (Always Ask Why)

Rules Have Reasons (Always Ask Why)

Christopher Okhravi

1 year ago

Computers Education
When Microsoft Violated Liskov Substitution Principle in .NET

When Microsoft Violated Liskov Substitution Principle in .NET

Christopher Okhravi

1 year ago

Computers Education
Liskov Substitution Principle

Liskov Substitution Principle

Christopher Okhravi

1 year ago

Computers Education
8 Wastes of Lean (for Software Developers)

8 Wastes of Lean (for Software Developers)

Christopher Okhravi

1 year ago

Computers Education