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

oop,php
9m:48s
Apr 17, 2025
Extracting Layout Components
In this video, we take a major step toward cleaner, more maintainable code by refactoring our static HTML into reusable layout components. ✂️➡️🧩We’ll extract repeated sections of HTML into their own PHP partial view files:
• layout/_nav.view.php 🧭
• layout/_page_head.view.php 🧠
• layout/_header.view.php 🏷️
• layout/_page_foot.view.php 👣
This makes our pages easier to manage and sets the stage for a powerful layout system in future steps. 💡
By the end of this video, our project will be refactored and tagged as v3-layout-files—modular, organized, and ready to grow. 🚀

linux
10m:48s
Feb 3, 2025
File System - Create, Copy, Move, Link
This video is part of the Linux Crash Course series. This video will continue introducing the Linux File System. In this video you will learn how to create / remove directories, copy / move files, and everything you need to know about links.Github Repo: https://github.com/rcravens/linux-crash-course

linux
16m:41s
Feb 3, 2025
File System - Permission
This video is part of the Linux Crash Course series. This video will continue exploring the Linux File System. In this video you will learn about permissions and how to secure access to files.Github Repo: https://github.com/rcravens/linux-crash-course

linux
13m:51s
Feb 3, 2025
File System - Wildcards, Find, Search
This video is part of the Linux Crash Course series. This video will continue exploring the Linux File System. In this video you will learn how to search the file system for files or content inside those files.Github Repo: https://github.com/rcravens/linux-crash-course

linux
23m:8s
Feb 3, 2025
File System Basics - Navigation
This video is part of the Linux Crash Course series. This video will introduce the Linux File System. In this video you will learn how to navigate the file system.Github Repo: https://github.com/rcravens/linux-crash-course
Coming Soon

oop,php
12m:54s
Jul 17, 2025
Final Review & Refactor
This video is all about the last layer of polish — a final walkthrough to tidy up code, views, and structure across the project. Here’s what we touched:🖼️ Views
- index.view.php: added wider screen support with max-w-7xl.
- Removed a duplicate header to clean up the layout.
🧱 Framework Cleanup
- Database.php: fixed IDE issues and added helpful annotations.
- globals.php: minor tweaks to smooth dev experience.
- Model.php: highlighted PHPDoc comments, reviewed skip(), take(), and orderBy() methods.
- Session.php and View.php: both got the “FII” treatment (Fix IDE Issues).
📦 Http Layer
- Policies:
- UserPolicy: FII.
- Controllers:
- AuthenticationController, PhotoController, RegisterController, ReviewController, and UploadController: all reviewed and cleaned up.
🌐 Public Entry Point
- index.php: adjusted try/catch block for better error handling and clarity.
🎯 And that wraps things up at v28-review-refactor — setting the stage for a maintainable, scalable app with a solid foundation.
Coming Soon

oop,php
18m:18s
Jun 3, 2025
First Review & Refactor
It’s time to pause and sharpen the tools. In this video, we take a step back to review our progress and clean up our codebase, because maintainability is key to sustainable development. 🛠️Here’s what we tackle in version v16-framework-refactor:
Emphasize the value of regular review and refactor sessions 🧠
Review our entry point (public/index.php) and extract logic into a new App class 📦
Create Framework/App as a singleton with a start() method to centralize bootstrapping 🚀
Address messy relative paths like '../../' by creating a dedicated Path helper class 🧭
Build Framework/Path as a singleton and introduce helpers like app(), root(), require_app(), and require_root()
Refactor all path-related code to use these clean, expressive helpers 📁
Move globals.php into the Framework directory to keep framework-related code encapsulated
Clean up and clarify all require/import statements 🔄
This refactor sets us up for a cleaner, more organized foundation—making our mini-framework easier to navigate, extend, and love. 💡
Coming Soon

oop,php
17m:11s
Jun 19, 2025
Fluent Validation
In this step, we introduced a flexible and expressive validation system.🧱 Created the Framework/Validation class and added a validate() helper to globals.php.
✍️ The goal was to write intuitive validation logic like:
validate('rating')->integer()->min(0)->max(5)->required();
validate('name')->string()->max(100);
validate('comment')->string()->max(1000);
🧪 This fluent API allowed chaining validation rules for each input field, improving both readability and maintainability.
🔧 We fixed the num_stars constraint in the migration SQL to properly enforce the rating range.
🧹 Ran the migration and reseeded the database to apply the changes.
🕵️ Also refined the reviews logic to default the name to “Anonymous” when one isn’t provided.
This new validation infrastructure enhances data safety and gives us a consistent, clean way to validate user input throughout the application.

php
28m:36s
Mar 19, 2025
Functions
Functions are the building blocks of reusable and efficient code in PHP! In this video we break down everything you need to know to get started with functions, including:✅ Function keyword & syntax – How to define and call functions in PHP.
✅ Naming functions – Best practices for readability and maintainability.
✅ Parameters & return values – Passing data and getting results.
✅ Type hinting – Writing safer, more predictable functions.
To make learning fun and practical, we’ll incrementally build a simple calculator that supports addition, subtraction, multiplication, and division! By the end of this tutorial, you’ll have a solid understanding of PHP functions and how to use them effectively in your projects.

javascript
6m:1s
May 15, 2025
Functions as Values & Callbacks
Time to level up! In this episode, you’ll learn that functions are more than just reusable code blocks — they’re first-class citizens in JavaScript. That means you can treat them just like any other value — assign them to variables, pass them as arguments, and return them from other functions. 🧠➡️📦🎯 Here’s what we’ll cover:
• Assigning functions to variables — because yes, functions are values!
• Passing functions into other functions (aka callbacks) to build dynamic, flexible behavior.
• A clear, simple example where you control how a message is spoken: shouted, whispered, or anything in between.
🎥 Visual Walkthroughs:
• See how callback functions work step by step.
• Build intuition around treating functions like any other data.
• Reinforce learning with a clean, beginner-friendly real-time example.
By the end, you’ll start to see the true power of JavaScript’s flexibility — and you’ll be ready for more dynamic programming patterns ahead! ⚙️🚀

oop,php
6m:26s
May 1, 2025
Handling "Bad" Routes
Not all roads lead somewhere… and that’s okay—as long as we handle it gracefully! In this video, we improve the robustness of our app by dealing with invalid routes and unexpected errors the pragmatic way. 🛡️Here’s what we’ll do:
• Make the header element optional in layout/_header.view.php using isset() 🧩
• Create clean, user-friendly error views:
• views/errors/404.view.php 🔍
• views/errors/500.view.php 💥
• Add a global try-catch block in index.php to handle exceptions gracefully 🧯
With this in place, our app won’t crash or confuse users when something goes wrong. Instead, it responds with clarity and professionalism.
By the end of this video, we’ll be on version v7-handle-bad-routes—stable, polished, and production-ready. 🚀

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! 💻✨
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! 🎬

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! 🎬🔥