Short Bio:
Bob Cravens is a seasoned technology leader, software architect, and educator with a passion for empowering others through practical, real-world knowledge. As the founder of TekFoundry, Bob has dedicated his career to designing and delivering innovative software solutions that combine cutting-edge technology with elegant simplicity.
At TekCasts, Bob leverages over two decades of experience in software engineering, application architecture, and team leadership to create engaging, high-impact courses for developers and technology professionals. His instructional style is rooted in practical application, offering insights drawn from his extensive background in industries like medical devices and global technology consulting.
Bob’s expertise spans a variety of technologies and methodologies, including PHP/Laravel, FastAPI, and DevOps, as well as architecture best practices and team dynamics. Whether teaching foundational concepts or advanced strategies, he’s passionate about helping others turn complex challenges into streamlined solutions.
When not crafting elegant code or inspiring the next generation of tech innovators, Bob enjoys exploring the intersection of technology, business strategy, and creative problem-solving.
At TekCasts, Bob leverages over two decades of experience in software engineering, application architecture, and team leadership to create engaging, high-impact courses for developers and technology professionals. His instructional style is rooted in practical application, offering insights drawn from his extensive background in industries like medical devices and global technology consulting.
Bob’s expertise spans a variety of technologies and methodologies, including PHP/Laravel, FastAPI, and DevOps, as well as architecture best practices and team dynamics. Whether teaching foundational concepts or advanced strategies, he’s passionate about helping others turn complex challenges into streamlined solutions.
When not crafting elegant code or inspiring the next generation of tech innovators, Bob enjoys exploring the intersection of technology, business strategy, and creative problem-solving.
Videos
Checkout Videos By This Instructor

esp32
7m:40s
Apr 4, 2025
Hardware & Schematics
Time to dig into the guts of the project! 💥 In this video, we break down the hardware behind the Smart Garage Door system and show how everything connects.We kick things off with a high-level circuit diagram featuring the ESP32 and four key sub-circuits:
🔹 Garage Door Sensor – tracks door position
🔹 Garage Door Button – mimics your wall-mounted opener
🔹 Device Status – provides visual feedback using a "blink code"
🔹 Device Control Button – allows manual toggling of the device into various modes
Then we zoom in 🔍 and walk through detailed schematics for each sub-circuit — showing exactly how they hook up to the ESP32 pins.
To bring it all home, I share real photos and video of the development board so you can see how the schematics translate into actual hardware on the bench 🛠️📸.
Whether you’re following along or designing your own spin on the project, this episode helps you build with confidence. Let’s wire it up! ⚡️

php
4m:47s
Mar 17, 2025
Hello World!
Every programming journey begins with a simple “Hello, World!”, and PHP is no different! In this video, we’ll walk you through writing your first PHP script, embedding PHP within HTML, and running it on a local server. You’ll see the difference between static .html files and dynamic .php files and understand how PHP generates content on the fly. Whether you’re brand new to coding or just getting started with PHP, this is the perfect first step into the world of backend development! 💻✨
Coming Soon

javascript
16m:59s
Sep 4, 2025
Higher-Order Functions
In this episode, we explore a superpower of JavaScript: higher-order functions — functions that can take other functions as inputs or return new functions as outputs.🎯 What you’ll learn:
- What higher-order functions are and why they’re important.
- Functions as arguments with real-world examples using map, filter, and forEach.
- Functions returning functions to create flexible, configurable behaviors.
- A practical Pub/Sub pattern (publish/subscribe) — showing how higher-order functions enable reusable and event-driven code.
💡 Why it matters:
Understanding higher-order functions is a game-changer. They’re the foundation for functional programming patterns, modern libraries, and frameworks. Once you master them, you’ll start seeing opportunities to write code that’s cleaner, more modular, and easier to extend.
By the end of this episode, you’ll know how to bend functions to your will — letting them build, transform, and orchestrate other parts of your program. ⚡️

php
8m:36s
Mar 17, 2025
How the Web Works
Ever wondered what happens behind the scenes when you visit a website? In this video, we break down the fundamentals of how the web works, focusing on how PHP processes requests and responses on the server. You’ll learn about HTTP & HTTPS, how browsers communicate with web servers, and what happens when you enter a URL. We’ll also explore key HTTP concepts like request methods, headers, response codes, and more. Plus, we’ll walk through a live example using browser developer tools to see it all in action. By the end, you’ll have a clear understanding of how PHP fits into the bigger picture of web development! 🚀
oop,php
14m:11s
Mar 26, 2025
Inheritance
Inheritance—one of the core pillars of Object-Oriented Programming! 💡 But how does it actually work in PHP? 🤔In this video, we’ll break it down step by step:
✅ What inheritance is and why it’s useful
✅ How a child class can inherit properties & methods from an abstract base class 🏗️
✅ The rules & limitations of PHP’s single inheritance 🔒
✅ Use inheritance to extend an existing class with new properties & methods that add functionality 🎯
By the end, you’ll be harnessing inheritance like a pro—structuring your code for maximum reusability and maintainability! 💻🔥 Let’s dive in! 🎬
Coming Soon

javascript
9m:8s
Sep 23, 2025
Inheritance
Ready to level up your JavaScript classes? 🚀 In this episode, we’ll explore how objects can inherit behavior from one another, making our code more powerful and reusable.Here’s what we’ll cover:
🌳 Why Inheritance matters for organizing and scaling your code.
🔗 Using extends to create child classes.
🧩 Leveraging super() to tap into parent constructors.
✍️ Overriding methods to customize behavior for specific classes.
We’ll bring it all together with an Animal → Dog example, showing how subclasses can extend functionality while keeping your code DRY and elegant. 🐾
By the end, you’ll have the tools to structure your JavaScript programs like a true object-oriented pro. ⚡

oop,php
19m:38s
Mar 24, 2025
Interfaces
Welcome to the world of Interfaces—where we take PHP code structure to the next level! 🎯💡 In this video, we explore how interfaces help us write cleaner, more flexible, and more maintainable code.✨ What’s inside?
✅ The power of explicitly defining types for parameters & return values 🏷️
✅ Extracting an interface from an abstract base class 🔄
✅ Converting methods using the interface keyword ✍️
✅ Decomposing large interfaces into smaller, focused ones 🔧
✅ Leveraging interfaces as parameter & return type constraints 🔗
By the end, you’ll see how interfaces bring ultimate flexibility and extensibility to your PHP projects! 🚀🔗 Watch now and level up your OOP game! 🎬🔥

composer,packagist,php
7m:4s
Mar 11, 2025
Intro to Composer & Packagist
Welcome to the PHP Package Development series! 🎉 In this first video, we introduce the problem we’re solving and explore the world of package management systems. You’ll learn what Composer and Packagist are, why they matter, and how they simplify PHP development.📌 What you’ll learn:
✅ What are package management systems?
✅ Introduction to Composer & Packagist
✅ Why use Composer for PHP projects?
🔔 Subscribe for more PHP content!
🔗 Resources:
• Composer Documentation
• Packagist

linux
13m:10s
Feb 3, 2025
Introduction - History, Quick Setup
This video is part of the Linux Crash Course series. This video will discuss the history of Linux and help prepare a sandbox where you can practice as you follow along.Github Repo: https://github.com/rcravens/linux-crash-course

oop,php
3m:54s
Apr 8, 2025
Introduction & Overview
Welcome to PHP: The Pragmatic Way! In this video, we set the stage for an exciting journey into dynamic web development. 🌐We’ll start by touring the project’s goals, showing you where we’re landing and what’s ahead. The rule is simple: all the PHP code is ours! We begin with static HTML pages and gradually convert them into dynamic applications. 💻
Along the way, we’ll cover:
• Extracting a layout to avoid repetition 🔄
• Refactoring into an MVC architecture 🏗️
• Building a “mini-framework” to streamline development ⚙️
You’ll also learn how this framework introduces powerful features like routing, sessions, databases, models, views, and controllers. 🛠️
We’ll stick to best practices throughout—focusing on clean, secure, and maintainable code that’s easy to use. By the end of this series, you’ll be ready to implement these principles in your own projects!
Prerequisites: Basic PHP and OOP knowledge are recommended to get the most out of this series. Ready to dive in? Let’s go! 🚀
Coming Soon

javascript
18m:12s
Sep 11, 2025
Introduction to Async Functions
Async programming doesn’t have to feel like juggling chainsaws. In this episode, we’ll unravel the magic of async and await—two keywords that make working with asynchronous code in JavaScript cleaner, easier, and far more readable. 🚀We’ll start by exploring why async matters: JavaScript is single-threaded but non-blocking, so operations like network requests need special handling. You’ll see how we moved from callbacks ➝ Promises ➝ async/await, and why this evolution makes your code shine. ✨
Next, you’ll learn:
🔑 What makes an async function special (spoiler: it always returns a Promise).
⏸ How await pauses execution until a Promise settles—without freezing your app.
💻 Real-world examples, including a simulated network request written both with .then() and the async/await style.
🛡 How to handle errors gracefully with try/catch.
By the end, you’ll feel confident writing asynchronous JavaScript that’s elegant, predictable, and easy to read. ⚡
Coming Soon

javascript
12m:53s
Sep 9, 2025
Introduction to Recursion
In this episode, we unlock the power of recursion — functions that call themselves! 🔄 You’ll see why recursion needs a clear exit point (the base case), and how this elegant approach can simplify tricky problems. Together, we’ll walk through three hands-on examples:⏱ A countdown timer that rockets to blast off!
✖️ Factorial computation (the classic recursion demo)
🔀 A recursive bubble sort that organizes chaos step by step
By the end, recursion will go from intimidating to intuitive — a tool you’ll actually want in your problem-solving toolkit. 🚀

oop,php
18m:5s
Jun 12, 2025
Invalid Form Submissions
In this video, we tackle the next critical part of the form experience—handling invalid submissions with grace. When a user submits a form with missing or incorrect data, we want to redirect them back, repopulate the form, and show helpful error messages. 💡Here’s what we build in version v19-redirect-with-errors:
- Define the ideal usage:
- session()->invalid($errors)->redirect_back();
- Then… we make it real! 💥
- Introduce invalid() and redirect_back() methods in the Session class
- Store transient $old and $errors values to survive the redirect and improve UX ✨
- Refactor Session::old() into a more flexible Session::flash() and flash_message() pattern 🔁
- Improve the old($key, $default) helper to escape HTML using htmlspecialchars() for security 🛡️
- Add a validation_message() helper to display specific errors next to form fields
- Update the review form:
- Loosen validation so comment is optional
- Add hidden rating input with default of 0
- Test with extreme values (e.g., rating=10, long name) to confirm validation is triggered
- Clean up temporary debug outputs (like var_dump()) and finalize the flow ✅
This update makes your app smarter, friendlier, and much more user-friendly when things go wrong. A polished user experience, even on failure? Now that’s pragmatic. 🚀

laravel,pulse
18m:6s
Mar 11, 2025
Laravel Pulse: Install & Deploy to Production (Step-by-Step Tutorial)
🚀 Learn how to install and deploy Laravel Pulse in a production environment using Laravel Forge and Envoyer!In this tutorial, I’ll walk you through:
✅ Installing Laravel Pulse in your Laravel project
✅ Configuring it for real-time performance monitoring
✅ Deploying Laravel Pulse to production with Forge & Envoyer
✅ Best practices to keep Pulse running smoothly in production
🔧 Tools Used: Laravel Forge, Laravel Envoyer, Laravel Pulse
If you found this video helpful, don’t forget to like, comment, and subscribe for more Laravel content! 🔥
📌 Links & Resources:
👉 Laravel Pulse Docs: [https://pulse.laravel.com/]
👉 Laravel Forge: [https://forge.laravel.com/]
👉 Laravel Envoyer: [https://envoyer.io/]
#tekfoundry #tekcasts

php
17m:3s
Mar 18, 2025
Logic, Conditionals & Branching
In this video from the PHP for Beginners series, we explore logic, conditionals, and branching—key concepts that control the flow of your PHP programs. You’ll learn how to use if, else, and switch statements to make decisions in your code, allowing your programs to respond dynamically to different conditions.By the end of this lesson, you’ll have a strong understanding of conditional statements and how to apply them effectively in real-world scenarios.
🔹 Beginner-friendly explanations
🔹 Hands-on coding examples
🚀 Master PHP conditionals and take control of your code today!

javascript
6m:35s
May 22, 2025
Looping Through Arrays
Ready to do something with all those array items? In this episode, you’ll learn how to loop through arrays and apply logic to each value — one of the most common tasks in JavaScript!🎯 What you’ll learn:
• The classic for loop — great for full control
• The cleaner, modern for…of loop
• The elegant and expressive .forEach() method
• A fun mini-challenge: Loop through numbers and log which are even 🔍
🎥 What you’ll see:
• Step-by-step demos of each loop type
• Code that transforms and filters array data
• A clear comparison so you know when and why to use each loop
By the end, you’ll be confidently cycling through arrays and writing logic that reacts to each item. 🧠✨