Schedule

Upcoming Presentations/Talks

Nothing scheduled at this time!

Past Presentations/Talks

11/19/2019 PADNUG: Ask the Experts

Using JavaScript in an ASP.NET World - Code Along Edition!

James Churchill will expand on his presentation from November 5 to allow you to actively develop along with him!

Ask the Experts is an opportunity to bring your issues to the table and get help from industry experts! Each month we will have a different expertise available. Bring your laptop, your ideas, your own expertise and join us for this great new event!

https://www.meetup.com/PADNUG/events/zqzmrpyzpbzb/

11/05/2019 PADNUG (Portland Area .NET User Group)

Using JavaScript in an ASP.NET World

Do you have an ASP.NET application that’s in need of modernization? Are you interested in doing more in the client/browser but you’re reluctant to add JavaScript to your project? Do you already have JavaScript in your project but you’re having a difficult time maintaining or updating that code?

C# developers are often dragged kicking and screaming into the world of JavaScript, but it doesn’t have to be that way. In this talk, you’ll see how you can add JavaScript to your ASP.NET projects and still feel good (and confident) about the code you’re writing. We’ll start with a server-side rendered search page and refactor it to use JavaScript to prevent page postbacks.

https://www.meetup.com/PADNUG/events/jscxtmyzpbhb/

04/04/2019 Willamette Valley Software Engineers Meetup

TypeScript for the C# Dev

Here’s the situation: You’re an experienced C# developer and you’re a master at developing applications using Visual Studio. But now you’re tasked with working on a project where more than 2/3 of the code will be written in JavaScript. No problem, right? You dive in and well, things start to get out of control. If only developing applications in JavaScript was more like developing applications using C#. You hear about this thing called TypeScript…

Will TypeScript solve all of your problems? What exactly is TypeScript and how does it work? How do you get started with using TypeScript? Will it keep you from having to take the time to gain a deep understanding of JavaScript?

In this talk, we’ll take a look at how TypeScript can help ease the development of JavaScript-based applications. We’ll review what will feel familiar to you as a C# developer, and what might surprise you. And we’ll take a look at some of the common mistakes that developers make when learning TypeScript (and by extension, JavaScript).

https://www.meetup.com/WVSE-meetup/events/259885764/

10/30/2018 Portland TypeScript Meetup

What’s New in TypeScript

In this talk, we’ll walkthrough a series of live coding demos showing off some of the new features that have been added to TypeScript over the last year or so.

https://www.meetup.com/Portland-TypeScript-Meetup/events/tdksvnyxnbnc/

10/02/2018 PADNUG (Portland Area .NET User Group)

TypeScript for the C# Dev

Here’s the situation: You’re an experienced C# developer and you’re a master at developing applications using Visual Studio. But now you’re tasked with working on a project where more than 2/3 of the code will be written in JavaScript. No problem, right? You dive in and well, things start to get out of control. If only developing applications in JavaScript was more like developing applications using C#. You hear about this thing called TypeScript…

Will TypeScript solve all of your problems? What exactly is TypeScript and how does it work? How do you get started with using TypeScript? Will it keep you from having to take the time to gain a deep understanding of JavaScript?

In this talk, we’ll take a look at how TypeScript can help ease the development of JavaScript-based applications. We’ll review what will feel familiar to you as a C# developer, and what might surprise you. And we’ll take a look at some of the common mistakes that developers make when learning TypeScript (and by extension, JavaScript).

https://www.meetup.com/PADNUG/events/jscxtmyxnbdb/

09/18/2018 PADNUG: Ask the Experts

Differences in JS Frameworks (Second of Two Sessions)

James Churchill will walk us through an exercise to learn how React, Angular, and Vue differ in coding style. Come prepared to code! :)

Ask the Experts is an opportunity to bring your issues to the table and get help from industry experts! Each month we will have a different expertise available. Bring your laptop, your ideas, your own expertise and join us for this great new event!

https://www.meetup.com/PADNUG/events/252756688/

09/15/2018 Seattle Code Camp

A Comparison of Frontend JavaScript Frameworks: React vs. Angular vs. Vue

Are you interested in learning a frontend JavaScript framework but don’t know which one is the best fit for you or your team? Or maybe you’re currently using a framework and you’re interested in what another framework has to offer?

In this talk, we’ll compare React, Angular, and Vue. What are the strengths and weaknesses of each? What are the similarities? What are the differences? How easy are they to learn? What are the other considerations you should keep in mind?

Along the way, we’ll build out a simple demo app in each, taking a hands-on look at:

  • Getting started
  • Project creation
  • Project layout
  • Dev workflow
  • Basic component development
  • Templating
  • Properties
  • Events

https://seattle.codecamp.us/

07/17/2018 PADNUG: Ask the Experts

Differences in JS Frameworks (First of Two Sessions)

James Churchill will walk us through an exercise to learn how React, Angular, and Vue differ in coding style. Come prepared to code! :)

Ask the Experts is an opportunity to bring your issues to the table and get help from industry experts! Each month we will have a different expertise available. Bring your laptop, your ideas, your own expertise and join us for this great new event!

https://www.meetup.com/PADNUG/events/251426638/

05/23/2018 Portland JavaScript Admirers

A Comparison of Front-End JavaScript Frameworks

This talk will compare Angular, React, and Vue.js. What are the similarities? What are the differences? How easy are they to learn? What are the other considerations you should keep in mind?

https://www.meetup.com/Portland-JavaScript-Admirers/events/gkccxnyxhbfc/

05/03/2018 Willamette Valley Software Engineers Meetup

A Comparison of Front-End JavaScript Frameworks

This talk will compare Angular, React, and Vue.js. What are the similarities? What are the differences? How easy are they to learn? What are the other considerations you should keep in mind?

https://www.meetup.com/WVSE-meetup/events/248925574/

02/27/2018 Portland TypeScript Meetup

An Introduction to TypeScript or: How I Learned to Stop Worrying and Love Static Types

As JavaScript applications continue to grow in size and complexity, the teams that develop and support them often find themselves looking for ways to help increase productivity and reduce errors. A well-known practice for reducing coding errors is to employ unit testing. A more recent approach is to add static typing to JavaScript by utilizing technologies like Microsoft’s TypeScript.

Adding static types to JavaScript helps developers to detect errors in their code at design time, without having to execute their code. Static typing dramatically improves the overall development experience by adding support for symbol-based navigation, statement completion, and code refactoring.

In this talk, we’ll walk through a series of demos showcasing how TypeScript brings static typing to JavaScript. We’ll look at how TypeScript can can help you write better code, and how it won’t. By the end of this talk, you’ll be on your way to answering the question “are static types a good fit for my JavaScript project?”

Topics include:

  • Comparing static and dynamic typing
  • Reviewing the benefits and disadvantages of static and dynamic typing
  • Leveraging TypeScript in your projects

https://www.meetup.com/Portland-TypeScript-Meetup/events/tdksvnyxdbkc/

09/21/2017 Squarespace

Can Anyone Learn to Program?

Are there innate abilities that make some people better suited to become programmers? Or can anyone learn to program? Does talent alone create success or can dedication and hard work make up for an initial lack of talent? This talk will examine the fixed and growth mindsets and what they can teach us about ourselves and how we can get (or stay) on the track to becoming a great developer.

09/09/2017 Seattle Code Camp

Hey… You Got Static Types in My JavaScript!

As JavaScript applications continue to grow in size and complexity, the teams that develop and support them often find themselves looking for ways to help increase productivity and reduce errors. A well-known practice for reducing coding errors is to employ unit testing. A more recent approach is to add static typing to JavaScript by utilizing technologies like Microsoft’s TypeScript or Facebook’s Flow.

Adding static types to JavaScript helps developers to detect errors in their code at design time, without having to execute their code. Static typing dramatically improves the overall development experience by adding support for symbol-based navigation, statement completion, and code refactoring.

In this talk, we’ll walk through a series of demos showcasing how TypeScript and Flow bring static typing to JavaScript. We’ll look at how they are similar, how they differ, how they can help you write better code, and how they won’t. By the end of this talk, you’ll be on your way to answering the question “are static types a good fit for my JavaScript project?”

Topics include:

  • Comparing static and dynamic typing
  • Reviewing the benefits and disadvantages of static and dynamic typing
  • Leveraging TypeScript and Flow in your projects
  • Comparing TypeScript and Flow

You’re Only Human: Common Development Traps and Pitfalls and How to Avoid Them

Let’s face it, you’re only human.

Nobody sets out to make mistakes. But as human beings, we’re inherently flawed, so mistakes are inevitable. As a software developer, it can feel like the odds are increased exponentially. There are countless ways for projects to go awry.

In my 17+ years of development experience, I’ve worked on small and large projects, solo and on teams, utilizing a wide variety of technologies and platforms, across many different industries. If there’s a way to mess something up, I’ve probably done it.

In this talk, I’ll share with you some of the software development traps and pitfalls that I’ve encountered in my career. I’ll tell you how they happened and what we did to get out of them. We’ll look at ways to identify these problems as early as possible. Or better yet, how to avoid them altogether. Learn from my mistakes.

Topics include:

  • Poor or missing requirements
  • Boiling the ocean
  • Gold plating
  • Failing to track changes to the project
  • Not writing unit tests
  • Not documenting decisions
  • Not supporting new team members
  • Not tracking or triaging new features or change requests
  • Failing to use realistic test data
  • Failing to automate at the beginning of a project
  • Not tracking all of your source code
  • Failing to communicate across the entire organization
  • Not being realistic with estimates
  • Not regularly reporting progress
  • Creating silos of responsibilities or knowledge
  • Not adopting a coding style
  • Fixing another developer’s code instead giving them feedback

https://seattle.codecamp.us/

06/07-06/09/2017 Code PaLOUsa

Hey… You Got Static Types in My JavaScript!

As JavaScript applications continue to grow in size and complexity, the teams that develop and support them often find themselves looking for ways to help increase productivity and reduce errors. A well-known practice for reducing coding errors is to employ unit testing. A more recent approach is to add static typing to JavaScript by utilizing technologies like Microsoft’s TypeScript or Facebook’s Flow.

Adding static types to JavaScript helps developers to detect errors in their code at design time, without having to execute their code. Static typing dramatically improves the overall development experience by adding support for symbol-based navigation, statement completion, and code refactoring.

In this talk, we’ll walk through a series of demos showcasing how TypeScript and Flow bring static typing to JavaScript. We’ll look at how they are similar, how they differ, how they can help you write better code, and how they won’t. By the end of this talk, you’ll be on your way to answering the question “are static types a good fit for my JavaScript project?”

Topics include:

  • Comparing static and dynamic typing
  • Reviewing the benefits and disadvantages of static dynamic
  • Leveraging TypeScript and Flow in your projects
  • Comparing TypeScript and Flow

http://www.codepalousa.com/Sessions/819

04/21/2017 The Tech Academy

Introduction to TypeScript

TypeScript is a statically typed superset of JavaScript that compiles to plain JavaScript. It can help you be more productive and write higher quality code.

In this talk, you’ll learn the basics of the TypeScript language and see how Visual Studio Code leverages the TypeScript Language Service to provide a rich JavaScript development experience.

03/29/2017 Donut.js

Can Anyone Learn to Program?

Are there innate abilities that make some people better suited to become programmers? Or can anyone learn to program? Does talent alone create success or can dedication and hard work make up for an initial lack of talent? This talk will examine the fixed and growth mindsets and what they can teach us about ourselves and how our industry can grow and nurture great developers.

http://donutjs.club/

See the video of this talk at https://www.youtube.com/watch?v=o-T7cnElKMY

03/18/2017 Boise Code Camp

Migrating to TypeScript

TypeScript is a statically typed superset of JavaScript that compiles to plain JavaScript. It can help you be more productive and write higher quality code. That’s all great, but migrating an existing JavaScript project to TypeScript can seem like a daunting proposition.

Luckily, benefitting from TypeScript doesn’t require you to migrate your entire project to TypeScript. You can benefit from TypeScript by making incremental changes to your project.

In this talk, you’ll learn the basics of the TypeScript language and how to incrementally migrate a project to TypeScript. You’ll also see how Visual Studio Code leverages the TypeScript Language Service to provide a rich JavaScript development experience. And you’ll see how to use JSDoc comments and TypeScript Declaration (d.ts) files to refine the TypeScript Language Service’s understanding of your code.

http://lanyrd.com/2017/boise-code-camp/sfqmgz/

03/07-03/08/2017 Visual Studio 2017 Launch and 20th Anniversary Event

3/8 9-10am Getting Started with ASP.NET Core in Visual Studio 2017

ASP.NET Core is an open-source (github.com/aspnet/home) and cross-platform framework for building modern web apps using .NET. It is a significant redesign of ASP.NET that is built from the ground up to provide an optimized development framework for apps that are either deployed to the cloud or run on-premises. You can develop and run your ASP.NET Core apps cross-platform on Windows, Mac, and Linux.

In this module, we’ll create a simple app using both the .NET Core command-line interface (CLI) and the latest tooling available in Visual Studio 2017. Along the way, we’ll also take a look at some of the key new concepts and features that are part of ASP.NET Core and how they compare to the ASP.NET that you know and love.

https://channel9.msdn.com/events/Visual-Studio/Visual-Studio-2017-Launch/WEB-101

3/8 10-11am Exploring and Migrating to TypeScript

TypeScript is a statically typed superset of JavaScript that compiles to plain JavaScript. It can help you be more productive and write higher quality code. That’s all great, but migrating an existing JavaScript project to TypeScript can seem like a daunting proposition.

Luckily, benefitting from TypeScript doesn’t require you to migrate your entire project to TypeScript. You can benefit from TypeScript by making incremental changes to your project.

In this module, you’ll learn the basics of the TypeScript language and how to incrementally migrate a project to TypeScript. You’ll also see how Visual Studio 2017 leverages the TypeScript Language Service to provide a rich JavaScript development experience including features such as symbol-based navigation, statement completion, and code refactoring. And you’ll see how to use JSDoc comments and TypeScript Declaration (d.ts) files to refine the TypeScript Language Service’s understanding of your code.

https://channel9.msdn.com/Events/Visual-Studio/Visual-Studio-2017-Launch/WEB-102

02/28/2017 Portland TypeScript Meetup

Migrating to TypeScript

TypeScript is a statically typed superset of JavaScript that compiles to plain JavaScript. It can help you be more productive and write higher quality code. That’s all great, but migrating an existing JavaScript project to TypeScript can seem like a daunting proposition.

Luckily, benefitting from TypeScript doesn’t require you to migrate your entire project to TypeScript. You can benefit from TypeScript by making incremental changes to your project.

In this talk, you’ll learn the basics of the TypeScript language and how to incrementally migrate a project to TypeScript. You’ll also see how Visual Studio Code leverages the TypeScript Language Service to provide a rich JavaScript development experience. And you’ll see how to use JSDoc comments and TypeScript Declaration (d.ts) files to refine the TypeScript Language Service’s understanding of your code.

https://www.meetup.com/Portland-TypeScript-Meetup/events/237273776/

01/31/2017 Portland TypeScript Meetup

Exploring TypeScript

In this talk, we’ll start with a brief history of TypeScript followed by a series of interactive demos that will show you the basics of the language. We’ll also see how popular editors like GitHub’s Atom and Microsoft’s Visual Studio Code provide support for working with TypeScript.

TypeScript, introduced by Microsoft in October 2012, is a strict superset of JavaScript that adds optional static typing and ES2015/++ language features such as classes, modules, arrow functions, decorators, async/await, and more. TypeScript’s static typing allows tooling to provide richer support for features such as symbol-based navigation, statement completion, and code refactoring. All of this together helps ease the development of JavaScript applications.

https://www.meetup.com/Portland-TypeScript-Meetup/events/235989986/

11/20-11/21/2016 Nodevember

Exploring TypeScript

In this talk, we’ll start with a brief history of TypeScript followed by a series of interactive demos that will show you the basics of the language. We’ll also see how popular editors like GitHub’s Atom and Microsoft’s Visual Studio Code provide support for working with TypeScript.

TypeScript, introduced by Microsoft in October 2012, is a strict superset of JavaScript that adds optional static typing and ES2015/++ language features such as classes, modules, arrow functions, decorators, async/await, and more. TypeScript’s static typing allows tooling to provide richer support for features such as symbol-based navigation, statement completion, and code refactoring. All of this together helps ease the development of JavaScript applications.

http://nodevember.org/

09/16/2016 UtahJS Conference

Reactive Programming with RxJS

RxJS, the Reactive Extensions for JavaScript, is a set of libraries that give us powerful tools for managing concurrency in our applications. Using RxJS, we use Observables to represent asynchronous data streams and then query those streams using one or more of the many available operators. In this talk, we’ll create some simple examples to explore what Observables are and how to use them. Along the way, we’ll compare and contrast Observables to the other familiar tools in our JavaScript developer’s toolbox: event listeners, callbacks, and promises. We’ll also look at an Angular 2 example, which favors using Observables over promises.

https://conf.utahjs.com/

See the video of this talk at https://www.youtube.com/watch?v=ajLD2K4ZUQ4

09/14-09/16/2016 Angular Remote Conf

Reactive Programming with RxJS

RxJS, the Reactive Extensions for JavaScript, is a set of libraries that give us powerful tools for managing concurrency in our applications. Using RxJS, we use Observables to represent asynchronous data streams and then query those streams using one or more of the many available operators. In this talk, we’ll create some simple examples to explore what Observables are and how to use them. Along the way, we’ll compare and contrast Observables to the other familiar tools in our JavaScript developer’s toolbox: event listeners, callbacks, and promises. We’ll also look at an Angular 2 example, which favors using Observables over promises.

https://allremoteconfs.com/angular-2016

09/10/2016 Seattle Code Camp

Reactive Programming with RxJS

RxJS, the Reactive Extensions for JavaScript, is a set of libraries that give us powerful tools for managing concurrency in our applications. Using RxJS, we use Observables to represent asynchronous data streams and then query those streams using one or more of the many available operators. In this talk, we’ll create some simple examples to explore what Observables are and how to use them. Along the way, we’ll compare and contrast Observables to the other familiar tools in our JavaScript developer’s toolbox: event listeners, callbacks, and promises. We’ll also look at an Angular 2 example, which favors using Observables over promises.

https://seattle.codecamp.us/Session/Details/134

Can Anyone Learn to Program?

Are there innate abilities that make some people better suited to become programmers? Or can anyone learn to program? Does talent alone create success or can dedication and hard work make up for an initial lack of talent? This talk will examine the fixed and growth mindsets and what they can teach us about ourselves and how we can get (or stay) on the track to becoming a great developer.

https://seattle.codecamp.us/Session/Details/133

09/06/2016 PADNUG (Portland Area .NET User Group)

Getting Started with ASP.NET Core

ASP.NET Core (previously known as ASP.NET 5) is a new open-source (github.com/aspnet/home) and cross-platform framework for building modern web apps using .NET. It is a significant redesign of ASP.NET that is being built from the ground up to provide an optimized development framework for apps that are either deployed to the cloud or run on-premises. You can develop and run your ASP.NET Core apps cross-platform on Windows, Mac, and Linux.

In this talk, we’ll review the development history of ASP.NET Core, set up our development environment, explore the .NET Core (dotnet) CLI, and create a simple app–from the command line and using Visual Studio. Along the way, we’ll also take a look at some of the key new concepts and features that are part of ASP.NET Core.

http://www.meetup.com/PADNUG/events/229163115/

09/01/2016 Willamette Valley Software Engineers Meetup

The Latest on TypeScript

TypeScript, introduced by Microsoft in October 2012, is a strict superset of JavaScript that adds optional static typing and ES2015/++ language features such as classes, modules, arrow functions, decorators, async/await, and more. TypeScript’s static typing allows tooling to provide richer support for features such as symbol-based navigation, statement completion, and code refactoring. All of this together helps ease the development of JavaScript applications.

In this talk, we’ll start with a brief history of TypeScript followed by a series of interactive demos that will show you the basics of the language. Then we’ll look at some of the more advanced language features using Angular 2, React, and Node.js. We’ll also see how popular editors like GitHub’s Atom and Microsoft’s Visual Studio Code provide support for working with TypeScript.

http://www.meetup.com/Willamette-Valley-Software-Engineers-Meetup/

08/30/2016 Portland TypeScript Meetup

The Latest on TypeScript

With Ken Howard

A new version of TypeScript is released about every three months. This means that new features—features that can make your applications more reliable and you more productive—are coming at you at a rapid pace. It’s difficult to know what you need to pay attention to and what you can ignore.

We’re here to help!

In this talk, Ken and James will highlight and demo some of the great TypeScript features that have been released in the last year. So join us for the latest on TypeScript!

Learn about improvements in…

  • ES6/ES++ support
  • Classes
  • Modules
  • Compiler configuration
  • React support

https://www.meetup.com/Portland-TypeScript-Meetup/events/231830415/

07/13-7/15/2016 Newbie Remote Conf

Can Anyone Learn to Program?

Are there innate abilities that make some people better suited to become programmers? Or can anyone learn to program? Does talent alone create success or can dedication and hard work make up for an initial lack of talent? This talk will examine the fixed and growth mindsets and what they can teach us about ourselves and how we can get (or stay) on the track to becoming a great developer.

https://allremoteconfs.com/newbie-2016

06/28/2016 Portland TypeScript Meetup

Working with TypeScript Definitions

With Peter Snider

Your TypeScript code doesn’t live in isolation. In fact, almost every application that you develop using TypeScript will need to interact with libraries or frameworks that are written in JavaScript. Sometimes this code is from a third party, sometimes it’s your own.

TypeScript definition files allow you to leverage these assets in your projects, without having to sacrifice the benefits of working with pure TypeScript.

In this talk, we’ll show how to use the command line tool Typings to find and consume definition files for popular libraries and frameworks. We’ll also walk through the process of writing your own definition file, for those times when a library or framework (either third party or your own) doesn’t have a definition file available.

http://www.meetup.com/Portland-TypeScript-Meetup/events/229370660/

06/19-06/21/2016 NodePDX Conference

Demystifying TypeScript Decorators

TypeScript decorators, based on the ES2016 decorator proposal and introduced as part of TypeScript 1.5, provide developers with a way to modify a JavaScript class, property, method, or method parameter using a convenient declarative syntax. We’ll start this session by creating our own decorator, to see firsthand how they work. Then, we’ll take a look at how decorators can be used in a variety of settings.

http://lanyrd.com/2016/nodepdx/sfchfg/

See the video of this talk at https://www.youtube.com/watch?v=05FC8Wh7C5w

Other

2016

  • 04/16/2016 Utah Code Camp - Using TypeScript Decorators with Angular
  • 03/19/2016 Boise Code Camp – Developing ASP.NET Core 1.0 Applications (http://boisecodecamp.com/sessions#james-churchill)
  • 03/19/2016 Boise Code Camp – Using TypeScript Decorators with Angular (http://boisecodecamp.com/sessions#james-churchill)
  • 03/19/2016 Boise Code Camp – Introduction to TypeScript (http://boisecodecamp.com/sessions#james-churchill)
  • 03/03/2016 Willamette Valley Software Engineers Meetup – Developing ASP.NET 5 Applications
  • 02/23/2016 Portland TypeScript Meetup – Using TypeScript Decorators with Angular
  • 02/10/2016 Angular Portland Meetup – Using TypeScript with Angular
  • 01/28/2016 Portland TypeScript Meetup - Up and Running with TypeScript Hands-On Workshop

2015

  • 11/05/2015 Eugene Oregon Programmers – Developing ASP.NET 5 Applications
  • 10/13/2015 Gorge Cloud Application Developers Meetup – Developing with ASP.NET on Mac OS X
  • 09/12/2015 Seattle Code Camp – Developing with ASP.NET on Mac OS X
  • 08/04/2015 PADNUG (Portland Area .NET User Group) – The Latest on TypeScript
  • 07/15/2015 Portland TypeScript Meetup – TypeScript Editor Shootout (with Adron Hall, Andrew Chalkley, and Ken Howard)
  • 07/07/2015 Portland Code School – Project Management Overview
  • 05/27/2015 Portland JavaScript Admirers – Introduction to TypeScript (Redux)
  • 04/09/2015 Portland TypeScript Meetup – Introduction to TypeScript
  • 02/24/2015 Portland Code School – AngularJS Overview