This is the sessions from Code Camp San Diego that was held on the weekend of 6/24/2017

We hope you enjoyed this Code Camp and will join us for the next one.

40 sessions

Paying It Forward Through Foster Care

Level: 100
Rich Clingman, Sr

Want to make a huge impact on the next generation? Along with that next super game or monster app that will be used by millions and forgotten in months, what about making an impact that will last a lifetime and for generations? 

Foster care is a support system providing safe, loving homes for children who have been removed from their home through no fault of their own. The placement may be temporary while the biological parents work toward reunification or may be long term. 

Who can be foster parents? Anyone over 18 regardless of age, race, marital status, sexual orientation, etc. You can live in a home or apartment. You can be working parents, or have a stay-at-home parent. The parents must have enough income to be self-supporting. Though foster parents are not paid, there is a healthy monthly reimbersement to offset costs related to raising the child. 

Invest an hour to learn a bit about foster parenting. The presenter is not a foster care expert, but has been a single foster dad to seven boys, has a 32 year old adopted son, and is currently getting certified to take a group of sibling teen boys.

Tags: Soft Skills | Pay It Forward | Parenting | Foster Care
Interested: 6

Introduction to AWS IoT Device Shadow using $9 C.H.I.P. System on Chip

Level: 100
Rich Clingman, Sr

An introduction to using Amazon Web Services' Internet of Things and their Device Shadow. We'll use Next Thing's CHIP SoC (System on Chip) linux computer. This $9 device is a 1 Ghz ARM with 512MB RAM and 4GB on board storage. The CHIP also includes wifi, bluetooth, stereo audio, and video. We'll also be using their $49 CHIP Pro dev kit which has LEDs and other peripherals.

The very simple shadow application (available on ) is written in JavaScript using nodejs. It has some TDD unit tests that utilize approval tests.

Tags: SoC | NodeJs | JS | IoT | Device Shadow | CHIP | AWS
Interested: 20

The Zen of Python: Readability Counts

Trey Hunner

Have you found unreadable Python code and wondered how to fix it? Have you ever seen Python code that was simply a pleasure to read?

If you've ever wondered what makes well-written Python code easy to read, this talk is for you.

During this talk we'll learn a number of techniques for refactoring code to improve readability and maintainability.

We'll discuss:

- whitespace
- self-documenting code
- modularity
- expectation management

We'll end with a checklist for improving the readability of your own code.

Tag: Python
Interested: 13

Comprehensible Comprehensions in Python

Trey Hunner

<pre style="color: rgb(0, 0, 0); word-wrap: break-word; white-space: pre-wrap;"> <span style="font-family:arial,helvetica,sans-serif;">Finding list comprehensions incomprehensible? Having trouble figuring out when to use list comprehensions or just plain for loops? If you find comprehensions tricky to write or perplexing to read or if <strong>you&#39;ve never heard of list comprehensions before</strong>, this talk is for you. We&#39;re going to learn: - when and how to turn a for loop into a comprehension - why list comprehensions are often hard to read - how to use list, set, an dictionary comprehensions as well as generator expressions - how to make your comprehensions even more readable than your loops - when and how not to use comprehensions You&#39;ll come away from this talk with <strong>a cheat sheet</strong> for helping us remember when and how to use comprehensions.</span></pre>

Tags: Python | Programming
Interested: 7

IOT Lab #6

Level: 100
IoT Laboratory

Come hang out at the Code Camp IOT lab. Interact with a wide variety of IoT Starter / Development Kits. Play and experiment with the kits including Microsoft Azure Kits . 

Tag: IoT
Interested: 11

IOT Lab #5

Level: 100
IoT Laboratory

Come hang out at the Code Camp IOT lab. Interact with a wide variety of IoT Starter / Development Kits. Play and experiment with the kits including Microsoft Azure Kits . 

Tag: IoT
Interested: 9

IOT Lab #4

Level: 100
IoT Laboratory

Come hang out at the Code Camp IOT lab. Interact with a wide variety of IoT Starter / Development Kits. Play and experiment with the kits including Microsoft Azure Kits . 

Tag: IoT
Interested: 9

IOT Lab #3

Level: 100
IoT Laboratory

Come hang out at the Code Camp IOT lab. Interact with a wide variety of IoT Starter / Development Kits. Play and experiment with the kits including Microsoft Azure Kits . 

Tag: IoT
Interested: 12

IOT Lab #2

Level: 100
IoT Laboratory

Come hang out at the Code Camp IOT lab. Interact with a wide variety of IoT Starter / Development Kits. Play and experiment with the kits including Microsoft Azure Kits . 

Tag: IoT
Interested: 12

IOT Lab #1

Level: 100
IoT Laboratory

Come hang out at the Code Camp IOT lab. Interact with a wide variety of IoT Starter / Development Kits. Play and experiment with the kits including Microsoft Azure Kits . 

Tag: IoT
Interested: 14

Digital Speech within 125 Hz Bandwidth (DS-125)

Michael Lebo

Digital Speech within 125 Hz Bandwidth is a software project that needs three parts. First is a computer with a microphone and audio line output, second is a transport device and third is a second computer at a different location with an audio line input and a speaker. Voice into the microphone is played at the speaker. The transport device has a bandwidth of 125 Hz (cycles per second). This violates the Shannon-Hartley Theorem, which states that the bandwidth of voice cannot be less than the bandwidth of voice without adding distortion. How much distortion? When I started this software project the best compression ratio (reduction of bandwidth) was 1.5 to 1. Today the best compression ratio is 5 to 1 (codec2). This project has a compression ratio of 24 to 1. Yes that seems to be impossible, but this is how to do it with distortion which is acceptable. 

Tag: DigialSpeech
Interested: 2

Project Management Menu: Digging into methodologies and how they do it Microsoft and HP, Inc.

Level: 100
Aaron Ruckman

Have you been looking at different project management methodologies to 0 your product out the door and want get an idea how each scale with scope, complexity and larger teams across geographies? This talk will focus on learnings at Microsoft and more recently HP, Inc. while working on teams of 1000’s to teams of 40-100.  Further, this talk will dig into how you can scale an extreme programming style (pivotal) to a full-scale ecommerce service.  Let’s go on the journey together.

Tag: Agile
Interested: 19

Bots Are the New Enterprise Apps (built mostly in C#)

Level: 100
Daniel Egan

<p> &lt;p&gt; While many of the bots that you have seen can help you buy tickets to a movie, or book flights, or even add a mustache to a picture, bots can also be integrated into the enterprise. From bots that integrate with Jenkins to help you manage your build process, to handling first level support in a call center, conversation bots can be deployed in an enterprise in a very effective way. Let you users interact with systems in the communication channels they prefer (Facebook, Slack, Kik, Skype, email, sms) in one integrated solution. In this session we will show you how to utilize the BotFramework to build bots for your enterprise.&lt;/p&gt;</p>

Tags: bots | botframework
Interested: 38

Getting Started with Flutter

Level: 100
Lorraine Kan

Learn how fast and easy it is to develop Android and iOS apps using Flutter! Flutter is an open source, mobile SDK that allows you develop and deploy to both platforms. The goal of this class is for you to become comfortable writing your first Flutter app. I will demonstrate Flutter's fast development workflow and we will live prototype an app. No prior experience necessary, learn more at (50 mins)

Tag: Mobile
Interested: 17

Mob Programming & Lofty Goals

Level: 100
Chris Lucian

Mob Programming over the last 5 years we have discovered a lot to share. Over the last year our team has scaled from 1 mob of 5 to 8 mobs. Now we are a flat department structure within our organization and all developers share a majority of management responsibility. During the growth, we have iterated on our lofty goals and discovered limits and surpassed them. What does it look like when you empower your team to make decisions and build psychological safety as a priority?

Tags: Mob Programming | Lofty Goals | Flat Structures
Interested: 12

Azure IoT Edge 101

Level: 100
Bret Stateham

Microsoft has been a leader in cloud based IoT services for a number of years.  The heart of Azure's IoT offering is IoT Hubs.  IoT Hubs provide a secure, bidirectional communication service with devices in the field using standard protocols like HTTPS, AMQPS, and MQTTS.  The open standards make it possible for many, but not ALL devices in the field to communicate directly with IoT Hubs.  For devices that don't have TCP/IP connectivity but may have blue tooth, RF, or other communication capabilities, a Field Gateway is a great solution.  In this session we'll look at using the devices like a Raspberry Pi, or the Grove IoT Commercial Gateway Kit that includes an Intel NUC, and configure them with an Azure Field Gateway to support communication with Bluetooth devices such as the TI Sensor Tag.  Once the devices can communicate with the Azure IoT Hub, we'll explore the other services in Azure that can consume those messages to provide data storage, reporting, analytics, alerting and more.

Tags: Raspberry Pi | IoT | Azure
Interested: 36

Azure Functions with Azure Storage

Level: 100
Robin Shahan

Azure Functions is a serverless compute service that enables you to run code on-demand without provisioning or managing any infrastructure. You can use Functions to run a script or a piece of code using a timer, a trigger, or a web hook. They have some great integration features for Azure Storage, Service Bus, Event Hubs, etc. I'll talk about what Functions are, and what you might use them for. I'll show how to write and deploy one using the Azure Storage integrations.

Tags: Cloud | Azure
Interested: 30

Everyone is a Public Speaker

Justin James

<p> &lt;p&gt; &amp;lt;p&amp;gt; You may not realize it but we are all public speakers. Public speaking is all about effectively communicating and we have all been training our whole lives to be better communicators. Being an effective communicator is a critical business skill. &amp;amp;nbsp;I will share with you what I have learned on my journey to becoming a professional speaker who has given over 100 talks since 2014. With the tips that I will share you will instantly become a more effectively communicator and presenter.&amp;lt;/p&amp;gt;&lt;/p&gt;</p>

Tag: speaking
Interested: 37

Hashcash - The Algorithm That Powers Bitcoin Mining

Level: 100
Tobias Hughes

In this presentation, we will be exploring the various applications of the hashcash algorithm as well as creating a very basic barebones mining application. Useful for anyone who wants to learn more about how bitcoin works under the hood.

Tags: cryptocurrency | bitcoin
Interested: 48

Time Management Strategies for Optimistic Parallel Discrete Event Simulations

Wendy Steinman

A large scale simulation can be thought of as several processes computing events on their own independent timelines. However, these processes need to interact with each other. The easiest solution is to process the events serially, making sure that all events are processed in the correct order. However, this strategy is ridiculously slow and clearly does not take advantage of the multi-core computing we have available at our fingertips. Optimistic simulations focus on running a simulation as fast as possible. This session will a) establish the context of all the timing issues that arise during a multi-process simulation and b) how different time management strategies solve these issues while balancing the potential for cascading effects.

This session is not language specific and code algorithms will be explored in pseudo code.

Tags: Modeling and Simulation | HPC
Interested: 20

Angular ngx for Beginners

Level: 100

New generation of Angular (sometimes referred to as Angular 2+ or ngx) is a powerful web aplication development framework. Currently at the version 4.1.0, it is one of the most active and popular front-end web appication platforms out there.

In this session, I will try to address the fundamental changes and new features by providing hands-on examples.


Tags: TypeScript | MVC | JavaScript | Angular
Interested: 75

Building Android App using AWS

Level: 100
Hiba Mughal | Anas Mughal

When my daughter asked me to build a mobile app for her school project, I had to evaluate my options for backend. I was pleasantly surprised by how easy it is use AWS MobileHub as a backend for mobile apps.

My daughter and I plan to share what we learnt while we built a simple event announcement app for her school project. We will discuss setting up AWS MobileHub for your application. Then, we will show how to integrate MobileHub into an Android application.

We are by no means Android or AWS experts. We would like to share our experiences and welcome coments and suggestions.

Tags: AWS | Android
Interested: 34

Native Ionic Development

Level: 100
Eric Floe

The full power of mobile applications is accessed by unleashing the native capabilities of the target devices. In this talk we will build an application implementing the Cordova Text To Speech plug-in to give your mobile applications a voice!

If your laptop is configured for Ionic development feel free to code along, otherwise I will provide instructions to replicate this application on your own time.  

Time permitting I will also show a more detailed application  built using this capability.


Tags: Mobile | JavaScript | Ionic | Angular
Interested: 23

Dependency Injection in JavaScript

Hattan Shobokshi

Take your JavaScript skills to the next level. In this presentation we’ll go over patterns & practices for architecting JavaScript applications. We’ll focus on dependency injection and see how this pattern can reduce coupling in your code and make your code more easily testable. This is a code heavy presentation with lots of code samples.

Tag: JavaScript
Interested: 69

Mobile Development for the .NET Developer: An Introduction to Xamarin Forms

Level: 200
Jon Bachelor

It’s no secret that mobile development is a big deal, and has quickly earned itself a prominent piece of the software development pie. Traditionally, mobile apps are built by at least two teams for the two major platforms, iOS and Android. Your C# skills and fluent understanding of Visual Studio won’t get you too far. You’ll need to work with Java and either Objective-C or Swift (or some combination of the two), with two completely different sets of tools for each. You’ll have two code-bases with no shared code. Two apps to maintain. Two separate sources of bugs, bugs, bugs.

Xamarin to the rescue! We’ll go over what Xamarin is, what it means for mobile development, and how you can use your C#/Visual Studio skills to tap into the world of mobile apps that are native, but still offer up the potential for sharing the majority of your code across platforms. We’ll focus on Android and iOS, but you can also share code for UWP apps, Mac apps, and more.

Tags: Xamarin | Mobile | iOS | Android | .NET
Interested: 54

Creating a simple back-end api.

Level: 100
Paul Whitmer

Are you new to creating back-end solutions? Perhaps you want to create an easy to use solution that works well with the web and also with mobile solutions that is fast, open source, and multi platform? Wouldn't it be great if there was an easy way to do this? Well look no further as this class has it all. In this class we'll discuss the creation of back-end APIs, good designs for them, and how to implement them. This talk will also show a demo on how to create a simple back-end from scratch. I can't wait to meet and discuss this topic with everyone!

Tags: dotnet | core
Interested: 70

Introduction to Kotlin

David Ford

Kotlin is a super productive and practical language from JetBrains, the makers of IntelliJ. It is statically-typed and compiles to JVM, JavaScript, Android and Native.
In this session I'll provide a general overview of Kotlin. This will be a live coding session. You'll learn the nuts and bolts of Kotlin and also get a feel for what makes Kotlin special.

Tags: kotlin | JavaScript
Interested: 34

Building a Dashboard in an Hour with Microsoft Power BI

Level: 100
Vazi Okhandiar

Demonstrate the steps to import raw data from external sources, such as file and database, and then build a dashboard using Microsoft Power BI for data analysis.

Tags: Power BI | data analysis | business intelligence
Interested: 39

Learn Javascript Like a Kung Fu Student

Level: 100
Chris Stead

Kung fu can be translated as "mastery through hard work." Mastering a programming language is definitely kung fu, and we can inform our education from the masters of learning through practice. In certain kinds of martial arts, forms are used to repeat actions which have meaning to the larger whole of self defense. The forms have been ported over to learning Javascript. We will explore coding, testing refactoring and exploration through these forms.

Environment setup will be covered in brief, so setting the project up ahead of time is advised:

Clone JS Language Forms:
Visual Studio Code:

Tags: language-learning | kung fu | JavaScript
Interested: 75

Bitcoin 101

Level: 100
Ryan Milbourne

This talk is geared for people who want to understand how bitcoin and crypto currencies are being used now and the implications they have for the future.  If you want to understand the technicals of how bitcoin works, I recommend my other talk which is geared towards developers who want to learn how it works under the hood.

Click here for slides

Tags: cryptoanarchy | bitcoin
Interested: 60

Blockchain 101 For Developers

Ryan Milbourne

 We will explore why every major central bank and government is interested in the technology.  We will start by viewing the blockchain through the lense of the most successful blockchain, Bitcoin, then move onto crypto 2.0 or web 3.0 concepts of smart contracts.

Tags: ethereum | cryptocurrency | bitcoin
Interested: 68

Rapid REST API Development with Node and Sails

Justin James

Creating  a RESTful  API should be the easiest part of your development.  You should not have to be a rocket scientist to successfully create a RESTful API.  With Sails, you can create a full featured RESTful API in just a few minutes without writing any code.  You get create, destroy, update, find, paginate, sort, and filtering out of the box.  If you need to add your business logic to any of the methods or create your own methods, you can do that by writing simple JavaScript functions.  Once you are ready to implement security, Sails provides policies that can be applied to any REST action to implement email/password, social login or Windows authentication.  For data storage,  Sails bundles the power ORM, Waterline, which provides a simple data access layer that just works, no matter which one of the more than 30 data storage providers you are using. 


This talk will be code heavy as we walk through getting started with Sails and demonstrate how to implement the features of Sails through the creation of an API.   As well, I will share the tips and tricks that I have learned using Sails at a Fortune 100 company.  You will walk away understanding how and why you should use Sails on your next project.  All code covered in the talk with be immediately available for download.


Tags: sails | REST | node | API
Interested: 61

Native Mobile Development For Web Developers with Visual Studio Tools for Apache Cordova

Justin James

<p> &lt;p&gt; &amp;lt;p style=&amp;quot;margin:0in;font-family:Calibri;font-size:11.0pt&amp;quot;&amp;gt; Mobile application development does not need to be difficult for us Web Developers.&amp;amp;nbsp; No longer do we need to learn a whole slew of new programming languages to create a mobile application.&amp;amp;nbsp; We can use our existing skills and create mobile applications with Html, JavaScript, and CSS.&amp;amp;nbsp; Then deploy to Android and iOS devices using a single code base that looks, feels, and performs like a native mobile application.&amp;lt;/p&amp;gt; &amp;lt;p style=&amp;quot;margin:0in;font-family:Calibri;font-size:11.0pt&amp;quot;&amp;gt; &amp;amp;nbsp;&amp;lt;/p&amp;gt; &amp;lt;p style=&amp;quot;margin:0in;font-family:Calibri;font-size:11.0pt&amp;quot;&amp;gt; Between Cordova, Ionic, and Visual Studio Tools for Apache Cordova (TACO) you don&amp;amp;#39;t have to worry about the infrastructure setup or making the UI look, feel and perform correctly on the slew different Apple and Android devices that your users will have.&amp;amp;nbsp; Instead, you can focus on your business logic and greatly reduce your time to market.&amp;lt;/p&amp;gt; &amp;lt;p style=&amp;quot;margin:0in;font-family:Calibri;font-size:11.0pt&amp;quot;&amp;gt; &amp;amp;nbsp;&amp;lt;/p&amp;gt; &amp;lt;p style=&amp;quot;margin:0in;font-family:Calibri;font-size:11.0pt&amp;quot;&amp;gt; In this talk we will cover what it takes to get everything setup, dig into the available features of Visual Studio TACO, and create our first application with using the TACO toolset.&amp;amp;nbsp; You will see exciting features such as being able to test everything in a web browser and then show how to deploy directly from Visual Studio to an iOS and Android device. You will walk away from this talk with all of the tools that you need to deliver your first mobile application using the Visual Studio TACO features.&amp;lt;/p&amp;gt;&lt;/p&gt;</p>

Tags: Visual Studio | tools for apache cordova | taco | Ionic | CORDOVA
Interested: 40

An introduction to Redux

Level: 100
Max Nodland

Learn about the Redux pattern and how to implement Redux in your React applications. In this session, we will start by understanding the Redux pattern. We will then step through creating a basic React application that uses Redux. Although part of this session will use React, Redux has no relation to React. You can write Redux apps with React, Angular, Ember, jQuery, or vanilla JavaScript.

Tags: Redux | React
Interested: 58

Getting started with React

Level: 100
Max Nodland

Learn how to start creating React web apps. We will cover each step of creating a simple app. This session covers React fundamentals and best practices. No React experience required.

Tag: React
Interested: 84

A Developer's Survey of AI Methodologies

Level: 300
Barry Stahl

Artificial Intelligence is far more than just machine learning. There are a variety of tools and techniques that systems use to make rational decisions on our behalf. In this survey designed specifically for software developers, we explore a variety of these methods using demo code written in c#. You will leave with an understanding of the breadth of AI methodologies as well as when and how they might be used. You will also have a library of sample code available for reference.

Tag: AI
Interested: 74

Out of the Box Machine Learning: Introduction to Image and Text Analysis

Level: 100
Justine Cocchi

Many of today’s apps deal with large amounts of data, whether that be text, speech, or photo inputs from users. Learn how to make the most of this data by implementing computer vision, emotion recognition, speech detection, language understanding, and more with just a few lines of code using Microsoft Cognitive Services ( These simple APIs will help you determine what type of data your users are sending in, and will help you make smarter applications by recognizing these trends. I will show you how to integrate the Emotion Recognition API in a Node.js and Express web application to suggest what type of food a user should eat based on their emotion! If you want to follow along with the demo, bring your laptop and download .NET Core from

Tags: WEB | Machine Learning | computer vision
Interested: 87

Introduction to Chat Bots using Node.js

Level: 100
Justine Cocchi

Learn how to quickly build a chat bot using Node.js that will be available on multiple different platforms including Skype, Slack and Facebook Messenger using the Microsoft Bot Framework ( Bots are making previously systematic experiences, like navigating an app or a website, much more natural for users. Implementing speech, natural language and machine learning algorithms help make bots seem more human, or “smarter”. However, bad bot design plagues even the smartest bots and can leave users feeling frustrated. We’ll look at ways to make bots smart using tools like LUIS and Azure Search as well as design patterns to make your bot more effective in common scenarios such as knowledge base, QnA, hand off, and task automation. 

Tags: Natural Language Processing | bots | Artificial Intelligence
Interested: 71

Accidentally DevOps : Continuous Integration for the .NET Developer

Level: 100
Hattan Shobokshi

Are your production releases big and scary? They shouldn’t be! In this talk I’ll show you how to make releases easier and repeatable. We’ll look at how CI can surface issues faster. Then we'll set up a CI server, hook up a process to build and deploy to Azure with every checkin. I’ll show you all the tools you need to get started with CI on the .NET stack.
This talk is by a Developer for Developers. If you're interested in the release process and making it easier, this talk is for you.
Topics Include:
Build servers (Jenkins, TeamCity etc)
Setting up a local NuGet server
Octopus Deploy for easy deployments.
Unit and Integration Tests
Canary and Monitoring
The ELK Stack
Blue/Green deployments for Seamless releases
Configuration Management 
VCS Best Practices
Database CI with RedGate Tools

Tag: CI
Interested: 53

What is the Ionic Framework?

Level: 100
Chris Griffith

In this talk, I will give you an overview of the Ionic Framework, show how to install it, and finally build a quick app and deploy it to both iOS and Android using some of the additional services.

Tags: PWA | Mobile | Ionic | HTML5 | CORDOVA | Angular
Interested: 43