Below are links to my conference presentations. Please feel free to download and use any of the material below.

AWS Java Lambda Functions with Kotlin

Presented at Beer City Code 2018, Ohio DevFest 2018

Kotlin is a statically typed programming language that enables concise and understandable code without sacrificing performance, safety or 100% Java compatibility. That last bit is key. Developing an AWS Java Lambda function using Kotlin is possible because Kotlin is 100% compatible with Java. In this talk, attendees will learn how to implement the necessary AWS interfaces and classes to accept an incoming JSON request, return a JSON response and implement logging that integrates with AWS CloudWatch. Attendees will also learn how to package and deploy the lambda function to AWS. Comparisons will be made to Java to demonstrate how Kotlin makes developing an AWS Lambda function simpler and more concise. Attendees will leave this session with the knowledge necessary to develop their own AWS Lambda functions using Kotlin.

GitHub Repo

Dogs and Cats, Living Together: Kotlin, Spring Boot and REST on Azure

Presented at Momentum 2018, Music City Tech 2018, DogFoodCon 2018

Kotlin is a statically typed programming language by JetBrains that can enable more concise and understandable code than Java without sacrificing performance, safety or 100% Java compatibility. Spring Boot accelerates the creation of stand-alone Java/JVM based web apps with minimal coding. And Azure makes it straightforward to deploy and host Java/JVM based web apps. Come to this session and learn how to use all of this goodness together to develop and deploy REST APIs. Attendees will learn how to use Spring Initializr to create the project, how to use Kotlin and Spring Boot to develop a web app with concise, boilerplate free code that exposes REST APIs and how to deploy and host this web app in Azure. This session will wrap things up by using a HTML/JavaScript client to test the REST APIs. The GitHub repository for this session will be made available beforehand so feel free to bring along a laptop to walk through the sample code together.

GitHub Repo

Living on borrowed time; or Dude, where are the docs?

Presented at CodePaLOUsa 2016, Path to Agility 2016, DogFoodCon 2016 and Columbus Code Camp 2017

In a recent Stack Overflow developer survey, poor documentation is the #2 challenge at work. How does this impact your project? Without documentation, development teams will likely have a poor bus factor. What does this mean? Critical project information gets siloed inside the minds of a select few key contributors. Those key contributors become indispensable. They spend valuable time responding to requests for that knowledge over and over again. And, when those contributors are unavailable, projects can grind to a halt. It’s like they were hit by a bus. Come to this session and learn how documenting your development project will not only prevent “being hit by a bus” but will also save time and improve efficiency. This will help attendees sell the value of documentation to their managers and companies. Attendees will then learn practical real world advise on how to write and maintain the documentation with particular emphasis given to what to include. Example documentation will be shown and shared to help reinforce what is presented. The time to document is now and this session will help you get started.

Alternate Abstract

The project team is slogging through an invisible morass and its bus factor is approaching zero (critical information is lost even though no one left the team). If this seems familiar to you, you may be suffering from the effects of poor documentation whether you know it or not. You can prevent this scourge, but getting your team to invest in documentation may not be easy. Come to this session and find out how to sell the value of good docs and how to produce them. Avoid dead documentation just as you would dead code, by understanding what to include, what to leave out, and how to create living documentation that never goes stale. Practical techniques based on real world experience will be presented, with plenty of examples. Start raising your project’s bus factor today.

Hybrid or Native - What Should Be Your Mobile Strategy and Why

Presented at M3 Conference

Your organization or business wants to provide a mobile solution to better serve your customers and/or your workforce.  The goal is to reach the widest range of devices possible; but the solution must be developed quickly and cost effectively.  You’ve heard about the hybrid/web approach, pseudo native approaches like Xamarin and their ability to target multiple platforms and you’re intrigued.  You’ve also heard that native provides a better user experience and higher performance. This session will kick off by giving an overview of the popular available approaches, using my architecture and development experience at clients who have utilized these approaches to solve their mobile business needs. This will level set the knowledge of the attendees and allow everyone to have a good understanding of the available approaches. We will then have an open and collaborative discussion on the pros and cons of each approach. You will leave this session better informed and with information that will help you and your organization decide which approach is best for your mobile solution needs.

Implementing Push Notification Support in your Android Application

Presented at CodeMash, M3 Conference and That Conference

Google Cloud Messaging (GCM) is a free service that allows you to send data from your server to your Android application. This can be lightweight messages telling your app there is new data to be fetched from your server or it could be a message containing up to 4kb of payload data. This demo intensive session will walk you through the steps necessary to implement push notification support using GCM inside your Android app. The GitHub repository for this session will be made available beforehand so feel free to bring along your laptop to walkthrough the demos during the session. The following topics will be discussed and demonstrated.

Prerequisites, Set Up Google Play Services SDK, Create Google API Project, Get a Google Service Configuration File, Add Google Play Services Library, Update the App’s Manifest, Check for Google Play Services Availability, Register Your App with GCM, Implement Services, Process Notification Data in Activity, Testing Without a Server, Test API Key and Registration ID, Additional Info and Questions

Real World Mobile App Development Using Phonegap

Presented at M3 Conference and StirTrek

You made the choice to use PhoneGap and web based technologies to develop your mobile app. You worked through the platform guides and now, you are ready to take the next step. This session will cover the essential web based technologies, the frameworks and the tips, tricks and techniques to develop and deliver a PhoneGap based mobile app that runs on Android and iOS. You will leave this session with the information necessary develop and deliver a real world mobile app using PhoneGap. The following topics will be discussed and demonstrated.

Effective use of PhoneGap’s command line tools with IDEs to develop and build your app, Delivering iOS and Android apps using the same project and code base, Data management with JSON, HTML5 local storage and SQLite, Effective binding between your HTML and your data, Managing arrays, collections, functions and Ajax requests, Reusable HTML rendering templates, Globalization using jquery / globalize and i18n, Adding push notification support, Must have add ons and libraries including digital signature support, Debugging, testing, performance, lessons learned and gotcha’s

A Swift Introduction to Swift (pun intended)

Presented at M3 Conference 2016 and Columbus Code Camp 2016

Swift is Apple’s innovative programming language for Cocoa and Cocoa Touch. Coupled with Xcode, it is now the ideal way to develop your iOS mobile app. Instead of pouring through a bunch of slides with code samples sprinkled in, this pre-compiler session will be hands on. Bring your Mac laptop with Xcode 7 installed and we’ll walk through developing an iOS app using Swift. Along the way, we’ll work through all the necessary language syntax including types, operators, control flow, functions, closures, collections, classes, properties and methods. We’ll use auto layout inside Xcode to lay out the user interface for our app. We’ll also attempt to demystify the world of optionals. The material and checkpoints for this session will be posted on GitHub prior to the start of this session. This pre-compiler is for developers experienced with an object oriented language like Java or C#. Previous experience with Xcode is helpful too but not required.