Presentations

I’m a Senior Software Engineer at Microsoft in what we call the Commercial Software Engineering group, and I do a lot of presentations. I always say, the only thing I like more than writing code is talking about writing code. You’ve likely heard it said that the best way to learn is to teach, and that couldn’t be more true than with technical topics.

If I’m coming to present at your event, and you need an avatar and biography, you can get those here:

Avatars

Size Shape Color Download Link
Small (300px) Round Color download
Small (300px) Round Grayscale download
Small (300px) Square Color download (recommended)
Small (300px) Square Grayscale download
Large (1600px) Round Color download
Large (1600px) Round Grayscale download
Large (1600px) Square Color download (recommended)
Large (1600px) Square Grayscale download

Biography

Short

“Jeremy loves his family, the outdoors in the Pacific Northwest, writing code, and even more talking about writing code.”

Long

“My studies in Computer Engineering and Mathematics got me started on a career course in software development. Subsequent job roles - helping build airplanes, teaching high schoolers to code, and more - gained me experience and fueled my passion for not only writing code but also talking about writing code. I joined Microsoft’s evangelism team to inform and inspire other developers - primarily in the areas of web apps and IoT. I have authored one book, countless online videos, and am always trying to keep up with online audiences at codefoster.com and on Twitter at @codefoster. When I’m not working, I’m usually working on maker projects, spending time with my wife and two boys in the Pacific Northwest, hiking and camping, sailing, scuba diving, riding my motorcycle, or working on house projects.”

Topics

Here are some of the presentation topics that I’ve recently delivered and would be ready to come share with your group…

  • Using VS Code Like a Boss!
    VS Code is an amazing IDE. Microsoft has managed to create a highly capable coding tool that’s not too heavy and not too light.
    On the surface, Code appears to be a simple, but there are a lot of hidden and extended features each of which has the potential of carving wasted minutes off of your dev day.
    In this session, we’ll look at keyboard shortcuts, extensions, customizations, and other tips and tricks.
    Whether your editing text files or C++ projects, come learn how to use VS Code like a boss!

  • Angular for IoT
    Angular is great for creating UI’s for corporate websites and modern web apps, but it works very well for the Internet of Things too. Many IoT solutions involve a dashboard of some kind that brings cloud and edge data together to give humans a way to manage and make sense of things.
    In this session Angular for IoT, we’ll use the exciting world of IoT as a platform for learning some Angular development concepts. We’ll host an Angular app on a Raspberry Pi, facilitate communications with other devices and the cloud, and use web sockets to make the whole thing feel instantaneous.

  • A Complete IoT Workshop
    Time to learn some full spectrum IoT solution development!
    In this hands on workshop, you’ll work in a small group to hook a Raspberry Pi 3 and a simple electronic circuit and then write the code to send data to Azure IoT.
    We’ll read a camera, flash lights, push buttons, and learn a lot! If you like hacking on hardware and software, or if you have never done this but want to try, this workshop is for you.
    In this workshop you will learn things like:

    • Getting a Raspberry Pi up and running to code using Node.js
    • Deploying code to your RP wirelessly
    • Wiring up a basic electronic circuit on a breadboard
    • Using the GPIO pins to read a button and flash an LED
    • Capturing images from a camera and analyzing then using Microsoft Cognitive Services
    • Sending data to Azure IoT Hub
  • Rx.js Cleans Up the Async JavaScript Mess
    Can be adapted to a more general session called Observables Everywhere
    Async in JavaScript is totally a thing. Actually, it’s like 4 things, and therein lies the problem. Not only are some of the async patterns in JavaScript flawed, but we often find ourselves in situations where we have to use multiple async strategies at the same time. Talk about a mess!
    Rx.js is one of the coolest things I’ve seen in the field of computer science in my career. Not only is it a solid implementation of the observable pattern available in many different languages, but it’s also a collection of manipulations to those streams that essential does for events what array functions do for arrays.
    Streams aren’t the answer to every async woe, but for countless scenarios it’s absolutely ideal. By ideal I mean that it does what you’re trying to do faster, cleaner, safer, and with more elegance and brevity.
    Come learn about the observable library that Netflix and the Angular 2 team chose.

  • Bring On the Bots
    Microsoft has used a lot of deep learning AI to implement a framework that makes the development of an intelligent conversation with human beings very easy. You can use the Bot Framework to create an intelligent conversation with your customers that understands natural language, works on a variety of messenger platforms, and learns how your customers actually talk. You’ll be surprised how simple it is to make a very powerful bot.
    Let’s get an overview of the platform and then start from scratch with a very simple bot. Then we’ll show how you can use the LUIS service to recognize natural language. Finally, we’ll show some examples of some really good bots and you can dream up what you’re going to make.

  • I Want to Be a Maker Too
    Practical guide to becoming a Modern Maker
    The tech and consumer worlds are abuzz with talk of IoT, wearables, 3D printing, and making.
    I’m headlong into it, but I still remember the day I was bewildered by the terms and wondering how to get started. That’s what id like to do for you – introduce you to the Makers’ world!
    In this session, you’ll learn…

    • What’s a maker?
    • What is IoT?
    • How to get started
    • Basics of material design and manufacturing
    • Basics of electronics
    • Basics of IoT, devices, and device code
    • Basics of cloud services for makers
  • Entry Point Node
    A total noobs guide to Node.js
    Node.js is taking the world by storm and developers can no longer afford to avoid it. Nor should you want to! Writing JavaScript went from ugh to awesome thanks to things like ES6 and TypeScript.
    If you’re a node noob, this is the session for you. I’ll start with the simplest terms and help you climb on top of all of the important concepts. We’ll write some practical code that makes sense, look at some fun productivity shortcuts, and then imagine the kinds of apps there are to write in the future!
    In this session you’ll learn…

    • What is Node.js
    • What kinds of apps it should and shouldn’t be used for
    • How to install and use Node.js
    • The REPL
    • Hello world
    • Packages and modules
    • Node tooling FTW!
  • Spinning Up Node.js for .NET Developers (similar to Entry Point Node)
    Most of us are familiar with .NET, but what’s this Node.js thing? Node.js is taking the world by storm and developers can no longer afford to avoid it entirely. So, maybe it’s time to at least get the concepts in mind and see what sort of value it can bring to your business. Who knows? You may even end up loving Node.js as much as I do.
    In this session, I’ll very clearly describe the anatomy of Node.js itself and the anatomy of a Node.js project. I’ll do some concept mapping to .NET so you’ll understand it quickly.
    Besides sample code, I’ll speak to the massive and growing node community and I’ll show you some fun productivity shortcuts and tooling!
    In this session you’ll learn…

    • Anatomy Node.js and a Node.js project
    • When to use it. When not to.
    • Installing and using Node.js
    • The REPL
    • Hello world
    • Packages and modules
    • Node tooling FTW!
  • Your Mouse is Stealing Your Time
    Tapping keys. It’s the one thing every developer on every platform in every language does thousands of times per day, and the general rule is that fewer taps are better. This one cross-cutting concern is ripe with opportunities to improve your productivity and efficiency.
    In this session, we’ll look at…

    • how to move more of your tasks to the command line and away from the mouse
    • how to identify and automate especially time sucking tasks
    • how to commit keyboard shortcuts to memory
    • how to start using keyboard shortcuts where you couldn’t before
    • how to use the keyboard on tasks you might not today such as managing github repos, browsing the operating system UI, fetching data from the web, and even moving your mouse cursor
    • how to improve your speed
  • Introduction to Angular
    Angular (not to be confused with Angular.js v1.x) is an extremely popular client-side web framework. It’s in broad production use and it’s ready for mass developer consumption! There are a lot of choices in client side web frameworks these days, so I’ll discuss what makes Angular great and why you might want to adopt it for your hobby project or your enterprise app.
    No need for existing Angular knowledge to get up and running in this quick primer. By the end you’ll have a thorough grasp of the basics and be ready and equipped to dig in to the deeper concepts.

  • Elegant Angular
    One of the best reasons to use Angular for your web front-end projects is the sheer elegance of the code.
    Not only does Angular take advantage of TypeScript for modern, strong-typed code and Rx.js for stream processing, but it also embraces component architecture, modern JavaScript paradigms like decorators, and some great native implements like pipes and very sensible and flexible property binding.
    I’ll assume a basic familiarity with Angular (not to be confused with Angular.js 1.x) development and jump right in to some good patterns and concepts to help you understand how to take your app to the next level.
    In this session you’ll learn…

    • A quick review of Angular and comparison to the older Angular.js (v1.x) and other frameworks
    • Good architecture and design patterns for app and components
    • Displaying dynamic lists of data using Rx.js
    • Advanced property binding
  • Azure IoT (aka The I in IoT)
    IoT is a big topic and getting bigger. There are far more devices connected to the internet than there are people in the world and the number is projected to grow dramatically in coming years.
    If you’re smart, you’ll adopt a powerful IoT platform from a company you can trust. Azure IoT gives you purpose-made and near bulletproof cloud services, but did you know that with the recently announced Azure IoT Edge, you also get a library you run on site to handle all of those scenarios where you don’t need your data sent to the cloud.
    Azure IoT includes the dedicated IoT Hub service, IoT solution templates called IoT Suite, as well as many other general services for processing IoT data and turning them into real business insight.
    Azure IoT Hub is extremely capable, extremely adaptable, and best of all it’s not too difficult a concept for developers to learn. In very little time, you’ll have a service that designed to handle massive amounts of communication with devices but also able to scale down to startup and even hobbyist scale.

    • What is IoT and why it’s such a big deal
    • Why many IoT solutions need a hub in the cloud
    • How to easily create an IoT Hub in Azure
    • How to create simulated devices and communicate to your hub
    • Getting started with Azure IoT Edge
  • Your Business Needs IoT
    (no description yet)

  • Be a Digital Producer
    (no description yet)

  • 30 Ninja Tips for Node.js
    Node and JavaScript are eating the world… in a good way. Let’s skill up on Node.js by attempting to cover 30 earth-shattering, mind-blowing Node tips. You’ll come away with a toolbox chock-a-block full of tips, tricks, and awesome, secret npm packages ready to ‘require’ in your next node project. You’ll see fake data generators, hidden command line switches, and tricks that will shave minutes off your day and make your colleagues think you’re a node ninja!

  • Docker + Azure
    To say that Azure supports Docker doesn’t say quite enough. There are actually a variety of ways in which the world’s most popular container service has been made a first class citizen on Microsoft’s powerful yet simple Azure cloud platform. The power is there, the flexibility is there, and the choice is yours.
    In this overview of Azure’s support for Docker, we’ll look at the myriad ways you get started putting your app into a container and onto Azure.
    Here’s what we’ll cover:

    • Brief overview of container technology
    • Containers for devops joy
    • Containers for developer joy
    • Docker in Azure VM’s
    • Azure Container Service
    • Container Registry
    • and Containers in Windows Server Core and Nano Server
  • All Over the Open Source Web Stack
    The open source web stack, dominated by JavaScript via Node.js these days, is a fast-paced and democratic platform. That makes it difficult to keep current on. Rest assured, however, that capabilities are growing and there does exist an entry point for developer trying to learn to make apps – from hobby apps to enterprise scale. And we’re talking about web apps, of course, but also desktop, mobile, and even IoT. This makes it the only stack you can use to target an entire solution end to end without shifting gears and changing languages.
    Let’s have a quick look at one such stack, a fun solution that uses IoT devices to pull data in from multiple active rowing machines. It pushes all of that data into a cloud service and then uses it to visualize a group rowing session for all to see.
    You’ll get to see a bit of…

    • Node.js
    • TypeScript
    • Raspberry Pi
    • Azure IoT Hub
    • Visual Studio Code
    • And more!
  • Learn to Code with Minecraft and JavaScript
    If you want to learn basic programming skills and blow up creepers at the same time, then join me for this fun introduction to programming using Minecraft and JavaScript. You’ll learn about things like basic conditionals, for loops, and functions, but instead of seeing boring text on the screen, you’ll see blocks and creatures of every kind appear.
    This session is perfect for young, aspiring programmers, and there will even be a Minecraft toy as a door prize!
    In this session we will…

    • create a local Minecraft server with the ScriptCraft mod (quickly)
    • learn about variables, control structures, loops, functions, and more by building things
    • and of course, we’ll blow things up with dynamite!
  • Introduction to Fusion 360

  • Using JavaScript to Make Things You Can Touch
    Fusion 360 by Autodesk is an excellent application for designing your next thing. The workflows in this 3D design package are extraordinary and paradigm busting. You’ll be thrilled to imagine what all you can bring to life after you see your first example, and you’ll be thrilled to hear that it’s free for makers, startups, students, etc. This session will give you a short introduction to Fusion 360, but mostly it’s about the API that gives you programmatic access to 3D modelling. One of the three languages that the API supports is JavaScript. That means that besides creating websites and applications and robots, you can now use JavaScript to make things - real things you can touch! You’ll be creating dynamic, generative designs in no time at all.

  • Azure from the Command Line
    Managing your cloud without taking your hands off the keyboard
    Web portals for managing your enterprise (or hobby) cloud services is cute, but when it’s time to get real work done, there’s nothing like a command line. This session is all about the command line!
    Whether you’re used to scripting in bash or scripting in PowerShell or you’re not used to scripting at all! Whether you’re running on a Mac on a Windows PC or on a Raspberry Pi! Wherever you dev, you can use Azure’s cross-platform CLI to spin up services, create databases, git push websites, monitor app logs, and boatloads more.
    Shoot, you can even use the CLI in the Azure Portal these days. It’s pretty great.
    In this session, you’ll learn…

    • Being an absolute boss on the keyboard
    • Controlling Node.js, VS Code, and GitHub from the command line
    • Installing the Azure CLI
    • Creating and maintaining Azure services
  • Making Tweet Monkey
    Tweet Monkey is a hilariously simple maker project that anyone and their mother can make.
    Tweet Monkey responds to tweets. Send a tweet using #tweetmonkey and he dances!
    Usually, creating an IoT projects means dusting off your college reference book on the C language and trying to wrangle a low-level language to do modern, high-level tasks. In this course, however, we’re going to talk about the hardware devices available that enable writing JavaScript with Node.js to control motors, sensors, and switches while simultaneously using easy and modern node modules.
    We’ll walk all the way through the creation of Tweet Monkey including modifying the monkey, setting up a Raspberry Pi, wiring a circuit, and writing the (very few) lines of code required to access Twitter’s streaming API using Node.js.
    Absolute beginners, students, and kids are completely welcome.
    The entire project is available at http://github.com/codefoster/tweetmonkey.io.

  • Developer Life Skills - What You Don’t Learn in a Computer Science Program
    I know it’s heretical, but there’s more to life than writing code!
    You live, breath, and think code, so how do you go about applying your propeller brain to the rest of life? Let’s take some time to talk about the relationships, babies, hobbies, vacations, faith, and finances, and how these aspects of life might be unique or different for software developer types. It’s tempting to call such topics an aside, but as a matter of fact, it’s pretty much central. Try as you may, you will not be successful at neglecting the rest of life no matter how much you love typing semicolons. What is it that makes developers different? What life hacks can you apply to improve efficiency in the build process and continuous delivery of life itself?