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
javascript,node
32m:14s
Dec 20, 2025
Popular JavaScript Frameworks
Your JavaScript framework journey is about to level up 🔍📦We’ve built our own lightweight Node.js MVC framework — now let’s look outward and explore how it stacks up against several strong contenders in the ecosystem. Why use a framework, when vanilla Node gives you full control? What trade-offs come with more structure? In this episode, we dig deep into those questions.
👉 In this episode, you’ll learn how to:
🚀 Understand the value frameworks bring: structure, built-in features, community, performance
⚙️ Compare what we’ve built against mature solutions
🧭 Decide when it’s worth adopting a full framework and when you might stick with custom
⚖️ Spot the key trade-offs between flexibility and convention
📚 Frameworks we cover:
[03:19] Next.js — https://nextjs.org/
[06:39] NestJS — https://nestjs.com/
[10:38] Express.js — https://expressjs.com/
[13:38] Nuxt.js — https://nuxt.com/
[16:00] Meteor — https://www.meteor.com/
[17:58] Koa.js — https://koajs.com/
[19:20] Fastify — https://fastify.io/
[21:39] Remix — https://remix.run/
[24:04] Sails.js — https://sailsjs.com/
[26:32] AdonisJS — https://adonisjs.com/
[29:06] Hapi.js — https://hapi.dev/
By the end, you’ll not only appreciate how well your custom framework works — you’ll also be ready to evaluate the full-scale options and pick the right tool when it’s time to scale.
💡 Relevant Links
Previous TekCasts series:
- JavaScript for Beginners: https://tekcasts.com/play/javascript-for-beginners-what-is-javascript
- JavaScript in the Browser: https://tekcasts.com/play/javascript-in-the-browser-browser-runtime-environment
Libraries / Docs mentioned:
- Node.js HTTP: https://nodejs.org/api/http.html
- Node.js URL: https://nodejs.org/api/url.html
linux
38m:26s
Feb 3, 2025
Processes and Jobs - Monitor, Kill, Background Jobs, Crontab, SystemD
This video is part of the Linux Crash Course series. This video will cover how to manager processes and jobs. We will cover the following:1. How to monitor running processes
2. How to kill or stop existing processes
3. Run a script in the background as a job
4. Run a script at a scheduled interval (e.g., once per minute...) using crontab
5. Run a script as a service using systemd
Github Repo: https://github.com/rcravens/linux-crash-course
oop,php
12m:3s
Mar 22, 2025
Properties and Methods
Unlock the power of Properties and Methods in PHP OOP! In this action-packed lesson, we dive into public and private properties & methods, breaking down the magic of encapsulation 🔒. Watch as we create a class, instantiate objects, and interact with public properties & methods from the outside 🌎. But wait—what about private ones? 🤔 No worries! I’ll show you how to work with them inside the class like a pro.Get ready to level up your PHP skills one method at a time! ⚡👨💻
Coming Soon
laravel,php
21m:37s
Apr 16, 2026
Public Survey Page
🚀 Make your surveys inviting, shareable, and public-readyIn this episode of Pragmatic Laravel, we shift from internal tooling to public-facing surveys — transforming raw survey listings into marketing-friendly experiences that people actually want to click.
This is where backend structure meets frontend presentation.
🧠 What You’ll Build:
🗂️ Public Survey Cards
- More inviting, marketing-style survey cards
- Clear descriptions instead of placeholder text
🗄️ Database Improvements
- Migration to add description and image_url
- Clean, forward-compatible data modeling
✏️ Survey Management Updates
- Update create/edit modals to support descriptions
- Display descriptions directly on edit pages
📧 Better Invites
- Enhance invite emails with images and descriptions
- Make surveys feel intentional — not transactional
🧩 Why This Matters:
Most Laravel tutorials stop at “it works.” This lesson focuses on how it feels to users — and how small design and data decisions dramatically improve adoption.
If you care about:
- Real-world UX
- Clean migrations
- Maintainable UI changes
- Professional-grade Laravel apps
This video is for you.
💥 About the Series:
Pragmatic Laravel focuses on building real applications with Laravel — emphasizing clarity, maintainability, and thoughtful design decisions instead of shortcuts or magic.
#Laravel #PragmaticLaravel #PHP #CleanCode #TekCasts
composer,packagist,php
8m:41s
Mar 11, 2025
Publishing Your Package on Packagist
Now it’s time to publish our package and make it available to the world! 🌍 We’ll walk through submitting our package to Packagist and using Composer to install it in a project.📌 What you’ll learn:
✅ Registering a package on Packagist
✅ Using Composer to install your package
✅ Replacing old code with the new package
By the end of this video, your PHP package will be live and ready for developers to use! 🚀
🔔 Subscribe for more PHP tutorials!
🔗 Resources:
• Packagist Guide
laravel,php
11m:17s
Nov 11, 2025
Question Data Model
In this episode, we shift from static components to data-driven questions by introducing a simple Question Data Model. This prepares our Survey App to dynamically render questions based on data — not hard-coded markup.💡 What You’ll Learn
- How to represent survey questions as PHP objects
- Passing structured question data into Blade components
- Using props to render reusable question types
- Handling dynamic attributes like placeholders, required flags, and default answers
- Setting up for conditional logic and future dynamic surveys
🧠 You’ll see how clean data structures unlock flexibility in your Blade components — a key step toward building a fully dynamic survey system.
📺 Up Next: Survey Data Model — where we combine question data into full survey definitions and begin organizing sections for more complex forms.
💥 About the Series:
Pragmatic Laravel focuses on building real applications with Laravel — emphasizing clarity, maintainability, and thoughtful design decisions instead of shortcuts or magic.
#Laravel #PHP #WebDevelopment #TekCasts #Blade #Eloquent #FullStack #SoftwareEngineering #LaravelDevelopers #CleanCode #ComponentDrivenDevelopment
javascript,node
10m:34s
Dec 30, 2025
Recap & Next Steps
Your Node.js journey comes full circle 🌎✨In this final episode of JavaScript on the Server, we recap everything you’ve learned — from your first console.log() to deploying a full-featured web app — and explore what comes next 🚀
👉 In this episode, you’ll:
🧩 Review each module and how it fits into the bigger picture
⚙️ Connect key concepts like routing, MVC, sessions, and middleware
💡 See how frameworks build on the foundation you’ve created
🧭 Discover practical next steps to deepen your skills
🔥 Leave with a clear path forward for your JavaScript and Node.js mastery
By the end, you’ll have a strong grasp of how the server-side ecosystem works — and the confidence to keep building, learning, and exploring 💪
💡 Relevant Links
Previous TekCasts series:
- JavaScript for Beginners → https://tekcasts.com/play/javascript-for-beginners-what-is-javascript
- JavaScript in the Browser → https://tekcasts.com/play/javascript-in-the-browser-browser-runtime-environment
Key Topics from this Series:
- Node.js HTTP → https://nodejs.org/api/http.html
- Node.js fs → https://nodejs.org/api/fs.html
- Node.js path → https://nodejs.org/api/path.html
- EJS Templates → https://ejs.co/
- Express (for further learning) → https://expressjs.com/
linux
32m:13s
Feb 3, 2025
Redirection and Pipes - Output & Input, Chaining Commands
This video is part of the Linux Crash Course series. This video will continue exploring the Linux File System. In this video I will discuss redirecting stdin, stdout, and stderr. In addition, we will look a chaining commands together using pipes.Github Repo: https://github.com/rcravens/linux-crash-course
laravel,php
19m:14s
Feb 12, 2026
Resource Controllers
In this video, we continue building our survey application by exploring Resource Controllers, CRUD operations, and RESTful routing conventions in Laravel.You’ll learn how Laravel connects controllers, models, and routes using expressive, convention-driven patterns that dramatically simplify your codebase.
What We Cover
✔ Controllers
- Off-loading logic from route files
- Organizing application behavior into coherent action methods
- Coordinating Models and Views
✔ Eloquent Models
- Representing database tables as objects
- Simplifying database interactions
- Handling model relationships
- Working with PHP instead of SQL
✔ CRUD Fundamentals
- Create, Read, Update, Delete
- Why nearly every model needs these operations
✔ RESTful Routes
- Mapping CRUD operations to HTTP verbs
- GET, POST, PUT/PATCH, DELETE
- Using _method to simulate non-GET/POST verbs in forms
✔ Resource Controllers
- Scaffolding with: `php artisan make:controller SurveyController --resource`
- Understanding index, create, store, show, edit, update, destroy
- Conventions that keep your controllers clean and predictable
✔ Resourceful Routing
- Connecting all CRUD routes with a single line: `Route::resource('surveys', SurveyController::class);`
- Overview table of every generated route, verb, URI, and action
✔ Nested Resources & Relationships
- Handling survey sections with nested resource routes
- Using ->scoped() to ensure child models belong to parent models
- Auto-generated nested route names (e.g., surveys.sections.index)
Links & References
- Laravel Resource Controllers Documentation: https://laravel.com/docs/12.x/controllers#resource-controllers
If you're learning Laravel the pragmatic way — by building real features, with clean code, using the framework as intended — hit subscribe and follow the full series!
#Laravel #PHP #RESTful #CRUD #CleanCode #WebDev #TekCasts
php
8m:32s
Mar 19, 2025
Reusable Code
Writing clean, maintainable code is a key skill for any developer! In this video we take our calculator project to the next level by refactoring it for better structure and reusability.Here’s what you’ll learn:
✅ Refactoring code – Moving related logic into separate files.
✅ require & include – How to properly import and reuse PHP files.
✅ Why structured code matters – Better organization, easier maintenance, and reusability.
By the end of this tutorial, you’ll have a more structured, modular, and reusable PHP application—just like professional developers do!
oop,php
10m:34s
May 13, 2025
Router Infrastructure
Let’s bring structure and scalability to our routing system! In this video, we encapsulate all routing logic into a dedicated Router infrastructure class, giving us a clean and centralized way to manage routes. 🧭Here’s what we’ll accomplish:
• Move and rename load_route() into the new Router class as a static view() method 🔁
• Add static get() and post() methods to define routes declaratively 🚪
• Simplify how our application connects URLs to controllers using a centralized approach 🧠
By the end, we’ll have version v10-router-infra—a solid foundation for routing that’s clean, powerful, and easy to scale. 🚀
laravel,php
24m:14s
Dec 16, 2025
Routing Basics
In this episode, we dive into Laravel’s routing system — the foundation of handling incoming requests and returning the right responses.You’ll learn how to:
✅ Define routes using closures or controllers
✅ Use route parameters, dependency injection, and model binding
✅ Explore HTTP verbs like GET, POST, PUT, and more
✅ Work with different response types — views, JSON, files, and downloads
✅ Understand how routing connects to your app setup in bootstrap/app.php
We’ll also update our app to:
- Create /s/{id} and /s/{survey} routes to demo parameters and DI
- Add a hash column to the surveys table
- Update model factories and re-seed data
- Introduce route model binding with /s/{survey:hash}
Laravel Routing Docs: https://laravel.com/docs/12.x/routing
💥 About the Series:
Pragmatic Laravel focuses on building real applications with Laravel — emphasizing clarity, maintainability, and thoughtful design decisions instead of shortcuts or magic.
#Laravel #PHP #Routing #Eloquent #WebDevelopment #ModelBinding #LaravelTips #FullStack #TekCasts #LearnToCode
javascript,node
11m:33s
Oct 23, 2025
Routing Basics
👉 Every time you type a URL, click a link, or submit a form, your server has to decide: what happens next? That’s where routing comes in.💥 In this video, we’ll break down Routing Basics in Node.js and learn how servers handle requests:
- How URLs, HTTP methods (GET, POST), and headers guide server responses.
- Writing simple routes to serve different pages (Home, About, Contact).
- Handling form submissions with POST requests.
- Returning JSON vs. HTML based on client preferences ⚡️.
🤖 By the end, you’ll understand how to map requests to responses — the foundation for building APIs, web apps, and more.
💡 Relevant Links
Previous TekCasts series:
- JavaScript for Beginners: https://tekcasts.com/play/javascript-for-beginners-what-is-javascript
- JavaScript in the Browser: https://tekcasts.com/play/javascript-in-the-browser-browser-runtime-environment
Official Docs:
- Node.js Documentation: https://nodejs.org/en/docs/
- MDN JavaScript Guide: https://developer.mozilla.org/en-US/docs/Web/JavaScript
oop,php
19m:31s
Jul 10, 2025
Second Refactor & Review
🧠 Model Hydration Fixes- Solved the issue where results weren’t instances of the child model class
- Introduced hydrate() and hydrate_rows() to handle model instantiation
- Added PHPDoc annotations with generics to assist with static analysis and better typing
- Updated type hints across Policies and Controllers for clarity and consistency
📦 Model Enhancements
- Added an update() method
- Introduced pagination support with skip() and take()
- Added sorting via order_by() and order_by_desc()
- Modified / route to use pagination
🛡️ New Policy Classes
- PhotoController: created Http/Policies/PhotoPolicy
- AuthController: created and used AuthPolicy
- RegisterController: created UserPolicy
- ReviewController: created ReviewPolicy
- UploadController: updated to use PhotoPolicy
- Fixed return $data in UploadController to include a proper URL
📌 All of that polish and organization lands us at v26-review-refactor — making the codebase smoother, smarter, and more maintainable.
browser,javascript
18m:11s
Sep 4, 2025
Selecting & Modifying Elements
Now that you know what the DOM is 🌳, it’s time to grab it, shape it, and make it dance 💃! In this video, you’ll learn how to find elements on the page and update them dynamically with JavaScript.We’ll cover:
🔎 Powerful ways to query the DOM (getElementById, querySelector, querySelectorAll)
📂 The difference between NodeLists vs HTMLCollections (and why it matters)
📝 How to read & update text/HTML with innerText, textContent, and innerHTML
🏷️ Working with attributes (getAttribute, setAttribute)
✅ Best practices to keep your DOM manipulation clean & safe (hint: don’t abuse innerHTML!)
💡 With live demos, we’ll query by IDs, classes, attributes, even complex CSS selectors — and then we’ll modify elements on the fly, from text and attributes to inline styles.
⚡ By the end of this video, you’ll have the skills to take control of your webpage’s content and structure like a true DOM wizard 🧙♂️!
Coming Soon
laravel,php
29m:23s
Mar 24, 2026
Sending Emails
Sending emails is where your application officially leaves the sandbox and enters the real world.In this video, we finish the Survey Invites feature by wiring up Laravel Mail—covering everything from configuration to creating and sending real email invitations.
Along the way, we clean up loose ends, refactor problem areas, and tighten up the user experience so the system feels intentional, not accidental.
What you’ll learn in this lesson:
✨ Refactoring and cleanup after major feature work
🔐 Managing invite-only surveys correctly
📬 Laravel mail drivers, transports, and configuration
📨 Creating a Mailable class
🚀 Sending survey invite emails (dev + prod-ready)
🧩 UI improvements and edge-case handling
No Livewire. No shortcuts. Just clear MVC design, maintainable code, and real-world Laravel patterns you can reuse with confidence.
🎯 Up Next:
Automated notifications using jobs and queues — taking survey invites to the next level.
💥 About the Series:
Pragmatic Laravel focuses on building real applications with Laravel — emphasizing clarity, maintainability, and thoughtful design decisions instead of shortcuts or magic.
#Laravel #PragmaticLaravel #PHP #CleanCode #TekCasts