Jim Bennett

Jim Bennett

Principal Developer Advocate at liblab

Redmond, Washington, United States

Jim is a Principal Developer Advocate at liblab focusing on skilling and inspiring developers, especially helping API developers deliver high-quality SDKs. He’s British, so sounds way smarter than he actually is, and lives in the Pacific North West of the USA. In the past he’s lived in 4 continents working as a developer in the mobile, desktop, and scientific space. He's spoken at conferences and events all around the globe, organised meetup groups and communities, and written books on mobile development and IoT.

He also hates and is allergic to cats, but has a 10-year-old who loves cats, so he has 2 cats.

Area of Expertise

  • Information & Communications Technology


  • IoT
  • Azure IoT
  • Industrial IoT
  • Iot Edge
  • C++
  • python
  • csharp
  • fsharp
  • api
  • sdk

A gentle introduction to Rust

Rust is constantly rated as the most loved language, and it is growing in popularity with adoption by linux and Microsoft for everything from kernel development to building applications.

There are 2 main reasons for this - speed and security. Rust is just as fast as the major systems programming languages, C and C++. But where these other languages fall down with the potential for security problems and memory issues, Rust shines! The Rust compiler simply won't let you make mistakes with memory management, or even with other features. Folks often joke if a Rust app compiles then it is guaranteed to work!

This demo heavy session is a gentle introduction to Rust for beginners. It will cover everything from installing the tooling and building a hello world application, to demonstrating where the compiler is your friend, and even building web apps. It will also cover the scary parts - the infamous borrow checker, and show that actually it's not that scary, and is definitely your friend.

By the end of this session, you'll be in love with Rust and ready to build your first Rust application.

Build a terrible API for people you hate

We've all been there - you've been asked to build an API to be used by someone you really dislike. Maybe it's the person who keeps stealing your milk from the company kitchen, or the one who asks long winding questions just as the 5pm Friday meeting is about to end. It's someone who annoys you, and you have to build them an API.

So malicious compliance time! You have to build them an API, but no-one said it has to be good. Here's your chance to get revenge on this person by building the Worst. API. Ever.

This session will show you how, covering some of the nastiest ways to create an API that is terrible to use. Together we will dive into how APIs should be defined, so you can learn how to do it wrong, we'll talk user experience, so you can see how to make it terrible, and dig deeper into what most folks expect from a good API so we can do the complete opposite. With plenty of hands-on coding and examples, we'll create something truly terrible, but still meets the requirements. From lack of discoverability to inconsistent API signatures and incomprehensible naming, this session will have it all!

And maybe if you have to create an API for someone you love, this might give you some pointers as to what not to do...

Put the International Space Station in your living room with the industrial metaverse

Everyone loves space, right? The ISS - the International Space Station is one of the greats of the space age. If you are lucky you might even be able to catch a glimpse of it as it races across the sky at 28,000km/h. But what if you could get a live view of ISS right there in your living room?

This is the power of the industrial metaverse. Using sensors connected to IoT or constrained edge devices you can gather live data from anywhere. Add digital twins to model the real world in the cloud, and a 3D rendering environment, you can build models that reflect the real world that can be visualized in extended reality.

In this demo heavy, code light session, Jim takes live data published by the ISS, and shows how to feed this into a digital twin using Azure IoT services from Microsoft. He then will leverage 3D tooling to animate the ISS with this live data, and visualize this using an augmented reality headset.

By the end of this session you will have a deeper understanding of the industrial metaverse and how it can be used to monitor machinery and equipment.

Data visualization from clay tablets to the industrial metaverse

What do clay tablets from the Minoan civilization and the industrial metaverse have in common? Despite being from completely different ends of the technology spectrum, they essentially do the same job – visualizing data.

From recording sales transactions 11,000 years ago to monitoring some of our most sophisticated technological marvels today, data visualization has been an important part of civilization. It has grown in sophistication as we have needed to visualize and manage growing amounts of data that change at an ever-increasing rate.

This session takes you on a journey over that 11,000-year period, showing how we as humans have thought of data and needed to visualize it. From tables in clay to maps and charts, and onwards to structures so complex that the metaverse becomes the perfect tool for visualizing live data that updates sometimes many times a second. We’ll look at the tools and technologies that tame this data and provide the building blocks for the industrial metaverse, discuss the problems of visualizing large amounts of data, and then get hands-on with a demo showing how the industrial metaverse can visualize data in near-real-time.

Lessons learned from building an open source IoT curriculum at Microsoft

During his time at Microsoft, Jim was asked to write a beginners curriculum for IoT. This is now a popular open source project with 13.5k stars on GitHub, contributors working on translations, partnership with a hardware company, is available as a book published in Chinese by TsingHua press, and was described by the CEO of a large IoT company as the best IoT training that exists today.

In this session Jim will walk through the learnings from this project - covering how he navigated a large corporation to get multiple teams involved, how he worked with outside organizations to provide hardware, how he empowered students to contribute to boost their CVs, and how he kept the momentum going.

This is a story from the coal face that will share insights into bringing such a project to life, and will share knowledge useful for anyone thinking to undertake a medium sized open source project at a large corporation.

From APIs to SDKs: Elevating your Developer Experience with automated SDK generation

APIs are everywhere and are a great way for developers to access your service. But not all developers want to access APIs directly. Most want to use SDKs in their preferred programming language using the tools they already know and use everyday. These not only feel more intuitive to a developer, but bring features like type safety, documentation, and code completion.

In this demo-heavy session, Jim will compare APIs and SDKs and show just how much a well crafted SDK can improve the developer experience. Releasing changes to your customer quickly is something every development team strives for, so Jim will go on to show you how this process can be automated, including in your CI/CD pipelines so that every API change can be released as an SDK as soon as possible with minimal engineering effort.

By the end of this session you will have a new appreciation for SDKs and understand that creating and maintaining these does not have to be burdensome. You’ll be ready to automate this process yourself and improve your own APIs developer experience.

KCDC 2019

July 2019 Kansas City, Missouri, United States

Techorama Belgium 2019

May 2019 Antwerpen, Belgium

NDC London 2019

January 2019 London, United Kingdom

Techorama NL 2018

October 2018 Ede, The Netherlands

NDC Sydney 2017

August 2017

Jim Bennett

Principal Developer Advocate at liblab

Redmond, Washington, United States