Most Active Speaker

Craig Spence

Craig Spence

Architect @ HeroDevs

Christchurch, New Zealand

Actions

Craig is a Software Engineer from New Zealand, currently travelling the world, freelancing, teaching and consulting! He's an Angular GDE, and he loves using all kinds of technologies to build cool things that help teams build cool things!

Awards

  • Most Active Speaker 2024

Area of Expertise

  • Information & Communications Technology

Topics

  • JavaScript
  • TypeScript
  • Angular
  • Front-End Development

Craig's Amazing Rust Spectacular (brought to you by Rust-eze)

Rust-eze is an American company owned by Dinoco. It sells medicated bumper ointment for cars with rusty bumpers, to eradicate rust. It was created by Rusty and Dusty Rust-eze and since then became recognized trademark in the United States.

Rust ⚙️ on the other hand is a multi-paradigm, general-purpose programming language. Rust emphasizes performance, type safety, concurrency, and enforces memory safety. Rust is popular for systems programming but also offers high-level features!

It's all the rage in Radiator Springs, and becoming the hottest way to build tools that go faster than Lightning McQueen 🏎️. Let's explore the language from the perspective of Angular engineers, see how it compares to TypeScript, and how it might influence the future of front-end.

🏁 Ka-chow! 🏁

Advanced TypeScript Workshop

Are you a Front-End Engineer looking to level up your TypeScript game?

If you're currently working on a modern front-end application and working with TypeScript everyday, this is your chance to take your knowledge up a notch with Craig Spence - ex-Spotify, Google Developer Expert (Angular), International Speaker.

Solidify your type-safety skills in 2023 with a in-depth one-day workshop covering the full TypeScript type system including:

* Type System basics - Primitives, Objects, Functions, Type Aliases
* Type Narrowing - Type Guards, Type Coercion, Unions & Intersections
* Generic Types - including Conditional Types, Mapped Types, Template Literal Types and more!

Into The Unknown

Sven the reindeer and Olaf the snowman have a big problem! They're creating a new TypeScript library, and they want to give their users the best possible experience. They know that TypeScript has incredible powers (they're almost magical! 💫), but they don't know exactly how to use it to its full potential.

What is `unknown`? How is it different from `any`? How do you use `infer`? What are conditional types? Unions and Intersections?! It's all too much...

Thankfully Elsa, beloved Queen of Arendelle is a TypeScript master, and along with her sister Anna, they *love* to teach others all about type magic.

Come along with Elsa, Anna, Olaf and Sven, and they learn all about advanced TypeScript typing by going INTO THE UNKNOWN 🎶❄️🎵

Fantastic ASTs and Where To Find Them

Oh no! Harry Potter, the hero from the J K Rowling’s wizarding universe, has been cursed by the super-villain, Lord Voldemort, and now he is trapped inside the Internet!

Harry knows Parseltongue, which means that he can talk to snakes. Incredibly, Parseltongue also happens to be a Turing complete programming language! In order for Harry to escape from the Internet, we need to transpile Parseltongue into JavaScript. In order to do that we need to learn all about Abstract Syntax Trees and how to use them to manipulate code.

This talk goes through the details of these magical data-structures, and all about language transformation, including lexing, parsing, code generation and creating source maps.

By the end of the talk, attendants should have an idea of how ASTs work, how they are used in code transformation, and how they can be used to manipulate and interrogate code at a structural level.

Do You Want to Build a Build Tool?

Tooling for code generation, transformation and interrogation has improved in leaps and bounds over the last few years! We now have things like Webpack, Prettier and TSLint, that can manipulate code in powerful ways, speed up development, and provide insight into how our applications work. But how exactly do they work? Some of the ideas that make these kinds of tools tick are rather tricky, and not the kinds of thing you come across in day-to-day web development...

This talk will be Code Tooling 101, and act as an introduction to Abstract Syntax Trees, and all the weird and wonderful things you can do with them. We will start together at the TypeScript compiler APIs and learn all about code interrogation, code transformation and code modification. We will then see how we can apply those same ideas to build our own tools, or contribute to the amazing tools that the community has built!

By the end of the talk, attendants should have an idea of how ASTs work, how they are used in code tooling, and how they can be used to manipulate and interrogate code at a structural level! This will open up the doors to creating custom tools, lint rules and codemods, and hopefully encourage everyone to have a go at contributing to open-source tooling projects!

LeTS Play A Game

You wake up in a dark room.
You don’t remember how you got there.
You are not alone.
Around you are many other people, all regaining consciousness at the same time.

Suddenly, a screen flickers to life. Someone screams.
A grainy figure appears.

“Welcome. I'm sure you are wondering where you are. While your location is not important, what I offer for you is: salvation. You spend your time building applications, but do you really appreciate your tools? For your sake, I hope so...”

You look around you.
The dirty walls are covered with code.
“|”. “&”. “infer”. “extends”.

Advanced TypeScript…
Union Types. Conditional Types. Mapped Types. Template Literal Types.

“Around you is everything you need to save each other, and yourselves. But I’m a reasonable person. I've sent you a teacher. You have twenty minutes. Let’s play a game.”

First given at ng-conf 2022. Introduction to more complex parts of the TypeScript type system. Talk includes an interactive escape room for the audience to play along! Ideally 30 minutes.

jsday 2024 Sessionize Event

April 2024 Verona, Italy

ng-conf 2024 Sessionize Event

March 2024 Salt Lake City, Utah, United States

Webdevcon 2024 Sessionize Event

March 2024 Amsterdam, The Netherlands

NDC Sydney 2024 Sessionize Event

February 2024 Sydney, Australia

Craig Spence

Architect @ HeroDevs

Christchurch, New Zealand

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top