Indy.Code() Sessions

Why you should pick a delivery date before starting a project

In the days where agile has become second nature there is a lot of debate about whether or not picking a release date is considered 'Agile'. We've all heard the terms continuous delivery, MVP, Release Planning but what do they all mean and how does it fit with a Go To Market Strategy? We've also all heard that in an ideal world continuous deployment is the key to delivering true customer value... so how can having an idea and picking a release date still be agile?

That's because we all need guardrails. Just like when you have a limit to how many API calls a minute they can make, the Business needs a timeframe for the amount of features they can have before a specific Go To Marketing Launch point. Continuous deliveries is great but you don't want to have a Go To Market Strategy for every day and in some cases you might want to put the features behind feature flags to provide a bigger value at a later date.

So at the end of day if you find yourself with a new idea and you are trying to build it, even if you are doing continuous deployment pick a date where you or your business should do a larger advertisement. Based on velocity, determine what would fit in that and then adjust the date based on that knowledge or research that comes down the road. But if you don't start with a date or set list of features chances are you will probably find it hard to launch because the list will keep growing and the date will keep pushing.

Speaker

Virginie Adams

Virginie Adams

Sr. Technical Program Manager, Salesforce

.CSS { display: What? }

As if css wasn't tricky enough as it was, they had to go and add all this new stuff to it like grid and flex… now which one am i supposed to use?

To make matters worse, all of the new css layout techniques use primarily the display property which now has over 40 possible values.

In this talk we will look at the history of the display property and ways you can use it to display, hide, and layout content.

.NET Standard: Reuse All the Code!

If you've ever publish a .NET code library for reuse on different types of projects, you're probably already familiar with some of the strategies for doing this on different flavors of the .NET Framework: multiple compiles, portable class libraries (PCLs), etc. Did you know that Microsoft has some up with a new standard that helps you share your libraries easily by targeting a new, virtual .NET Framework--called .NET Standard?

In this session, I'll show you how to write code that compiles once and can be shared across disparate environments--Mono for iOS and Android, Windows, Mac and Linux via .NET Core, and Universal Windows Platform (UWP). If you want to publish a reusable component, or just need to share code in multiple project, come learn the new and better way to do it with .NET Standard.

Speaker

Jonathan "J." Tower

Jonathan "J." Tower

Partner & Principal Consultant, Trailhead Technology Partners

“JavaScript” is Not a Dirty Word

If you're an ASP.NET Web or Client Side Developer, the name "JavaScript" may induce feelings of dread or even terror. It's weird. It's not type-safe. It appears to be a bit flaky. It's hard to debug. Heck, it isn't even compiled! Besides, I have all these nifty ASP.NET controls that take care of all that for me, right?

Thanks to client side libraries like jQuery, Angular, and others, JavaScript is experiencing a renaissance. It's evolved from that weird browser language you used to use because you had to, to a powerful tool for creating web applications with richly featured client-side user interface. But it doesn't stop there; JavaScript is everywhere from server side code to hybrid mobile applications to IOT devices. If you're a .NET developer who's avoided JavaScript, it's time to jump back into the pool! This session will explain some of the key difference between JavaScript and C#/VB.NET, what the major JavaScript frameworks are and what they do, and show you how to take advantage of the power of JavaScript in your ASP.NET application.

Speaker

James Bender

James Bender

Freelance Developer

10 Software Design Patterns for Everyday Life

In this session, I show 10 software design patterns, their C# implementation, and discuss they should be used in modern software development.

5 Principles of Software that Works

Rather than trying to memorize a list of hundreds of best practices for software design, apply five basic principles that result in software that is innovative and usable.

  1. It's not about you
  2. It Depends
  3. Simple is good: but it's not simple
  4. Influence not control
  5. Practice creates change

Speaker

Susan Shapiro

Susan Shapiro

Principal User Experience Consultant, GravityDrive

A Developer's Guide To Docker

It works on my machine. We’ve all heard it. Most of us have said it. It’s been impossible to get around it… until now. Not only can Docker-izing your development environment solve that issue, but it can make it drop-dead simple to onboard new developers, keep a team working forward and allow everyone on the team use their desired tools! I will show you how to get Docker set up to use as the run environment for your projects, how to maintain the docker environment, and even how easy it will be to deploy the whole environment to production in a way that you are actually developing in an environment that isn’t just “like” production. It IS the production environment! You will learn the basics of Docker, how to use it to develop and how deploy your “development” environment as the production environment!

Speaker

Lee Brandt

Lee Brandt

Developer Advocate, Okta

A Gentle Introduction to Kotlin

It's time to learn Kotlin! The Spring Framework has embraced Kotlin as a first class language, and Kotlin is also becomming the language of choice for native Android development.

Kotlin is a language that runs on the Java Virtual Machine (JVM). It was created by JetBrains - the makers of IntelliJ. It is simply described as a mashup of Java and Scala - meaining that it maintains a Java like syntax but adds a lot of the functional aspects of Scala.

In this session, Jeff will present a high level overview of that language, how to compile and run Kotlin code with different IDEs like Eclipse and IntelliJ

Speaker

Jeff Butler

Jeff Butler

Java Practice Lead, DMI

A Guide to Being a Better Mentor

Do you have a mentor? Do you want one? Or better yet, are you a mentor? If becoming a mentor is hard, finding one can be even harder. In this session I'll go over what it is to be a mentor, and some places you can look for them. You might be surprised to find that you've had one all along.

Speaker

Curtis Cockerham

Curtis Cockerham

DevOps Engineer, Federal Reserve Bank of Kansas City

A Little Elm Goes a Long Way

Front-End development is fast paced. What you do today will change tomorrow. What if we could write code without crashes that enabled us to change our software and scale our codebase with our application? Elm is a statically typed language and platform for rich interactive web front ends. Let's take a look at what make Elm a powerful environment for developing complex UIs through the lense of a project that started from nothing and grew to a fully featured web client that works with an existing Rest API.

Speaker

Brian Ball

Brian Ball

Staff Software Engineer, SEP

A New Vue for Web Development

Vue.js is a progressive JavaScript framework for creating user interfaces. In this session, Chad Campbell will explain what Vue.js is in more detail, answer why you should consider it for your web apps, and provide an overview of some concepts in Vue.js. At the end, there will be time for questions. Come and get a new Vue on Web Dev.

A Wireframe is Worth a Thousand Stories

You've heard the saying "a picture's worth a thousand words", well the same goes for a well-constructed wireframe. On their own, user stories and business requirements can often be misconstrued no matter how well-written they are. Simply put, a single word can mean different things to different people on your project team.

In this talk, we'll discuss the benefits of pairing wireframes and simple graphics with business requirements and user stories. I will also demonstrate how simple it is for anyone to create a wireframe—this is not just for the designers in the room!

Speaker

Amy King

Amy King

UX Architect, DMI, Inc.

Accessibility: It's More Than Just Screen Readers

Roughly 1 in 5 people around the world live with a disability and legal actions against inaccessible sites are becoming more and more common. It would be irresponsible to ignore the needs of all our users when developing for the web, so why don't we design accessible sites to begin with? In this talk, I'll explain the basics of web accessibility, including the guidelines you should be following, the adaptive technologies many people use, and help you better advocate for users with disabilities in your work.

Speaker

Stephanie Slattery

Stephanie Slattery

Front End Engineer, Clique Studios

Advanced TDD with Mocks

All the talk about Test Driven Development is great, but how do you make that work when you have complex systems that need to interact? Either you have complex, brittle tests, or you can use a Mock version of your system. In this one hour session we will work through implementing a mock database connection and the tests around it.

Speaker

Clay Dowling

Clay Dowling

Agile Software Consultant, Pillar Technology

Agile beyond software teams: how anyone can benefit from the agile methodology

Agile is commonplace in modern software development teams, but its effectiveness has implications beyond software. Agile provides a set of best-practices which empower employees to do their best work, by eliminating common inefficiencies that arise when working within company structures. Many other types of teams can benefit from the foundations of agile. In this talk I describe how I implemented agile within a business development team and the benefits we saw. The framework will promote efficiency and flexibility, team collaboration, skill development, and enhance transparency.

Speaker

Amy McQuaid

Amy McQuaid

Sr. Marketing Operations Analyst, Talend

Agile: You Keep Using That Word...

Much like the DOTCOM boom when everyone declared themselves a programmer, once David Norton (Gartner Research) declared agile mainstream on August 26, 2009, you can’t throw a stone without hitting someone who claims to be an Agilista. From the proliferation of “agile” frameworks and certifications, to all of the people who decided to hang out a shingle as a coach, it can be hard to remember what is the essence of being agile. In this talk, I remove the fluff and hyperbole, and get down to the roots of what it means to be agile.

Angular the .NET Ptich

ASP.NET developers new to Angular or considering a transition from AngularJS to Angular have a challenge ahead. Being armed with the latest knowledge will help overcome the steep learning curve of Angular. In this session we’ll cover the decisions you’ll face when using Angular with ASP.NET Core. We’ll review project template options, Visual Studio integration points, and the role it serves in Angular architecture. After this session you’ll be ready to choose the right path for your next Angular app.

Topics covered: File New Project, Angular & dotnet CLI, TypeScript, Webpack and Razor.

Speaker

Ed Charbeneau

Ed Charbeneau

Developer Advocate, Progress

Azure ML: From Novice to Predicting the Future in 1 Hour

Artificial Intelligence, Machine Learning, Deep Learning, Data Science. These are all buzzwords that most developers are aware of and even have some level of understanding. However, these are also areas that most developers aren't very knowledgeable in, and are inexperienced with. We will cover an incredibly brief primer on these concepts before jumping into the deep end with Azure ML, the Platform-as-a-Service Machine Learning offering in Microsoft Azure.

With just some basic web and database experience, this introductory talk will show you everything you need to know to go off on your own and create your own Machine Learning models in Azure quickly and with impressive levels of accuracy. We will not, however, get deep into Data Science at all. In fact, you will probably leave this talk with more questions than you had coming into the talk!

Speaker

Shane Milton

Shane Milton

Cloud Solutions Architect, EnerGenuity

Become a User Experience Designer for a Day

User Experience is about people and their interactions with the world. The User Experience design process links research to the creation of the design. The research can be used to validate use cases and user requirements that are part of Agile development processes. This workshop will give you an understanding of how research that involves the people who will use a product can be used to assess the efficiency, effectiveness, learnability, and error reduction of the alternative designs. Completing a sample project will allow you to experience some of the steps in the user centered design of a software product. You will use data to: • Understand who will use the product through the creation of a persona • Create and test design prototypes, and • Implement what has been learned in a draft of the final design.

Speakers

Michael Miserendino

Michael Miserendino

President, GravityDrive
Susan Shapiro

Susan Shapiro

Principal User Experience Consultant, GravityDrive

Build a Machine Learning Supercomputer under $500

Hardware has become so cheap these days that we can take the processing power of several small computers, Raspberry Pi’s in this case, and build them into a cluster computer to build a purpose built computer for handling machine learning problems. Imagine if you could build a purpose built computer for the exact machine learning problem you are trying to solve.

Speaker

Brian Korzynski

Brian Korzynski

Sr. Software Developer, United Shore

Build Your Own Arduino Workshop

Participants in this workshop will be handed a shifty looking baggie full of inexpensive parts which they will use to create their very own Arduino - compatible microcontroller board.

While constructing the board, we will discuss and tinker with each component (clock source, power regulation, etc.) to see how they work. Then we'll boot 'em up and (provided the blue smoke hasn't escaped by this point) start writing some code and talking to some devices.

Speakers

Clay Dowling

Clay Dowling

Agile Software Consultant, Pillar Technology

Building Better REST APIs in ASP.NET and ASP.NET Core

Web API is the RESTful API framework for ASP.NET, now simply part of the MVC framework in .NET Core. With service layers becoming an increasingly important part of all kinds of different applications, getting better at implementing this layer of an application is becoming a critically important skill.

Join me while I walk you through some of the coolest, most practical and useful things I've learned while developing services using Web API and ASP.NET. We'll look at some useful patters, amazing nuget packages that save you lots of time and effort, tips, and even some anti-patterns that hold you back. Everyone should walk away with at least a few new things they can use to develop a better servicer layer in ASP.NET.

Speaker

Jonathan "J." Tower

Jonathan "J." Tower

Partner & Principal Consultant, Trailhead Technology Partners

Building Offline-Sync-Capable Mobile Data Apps with Xamarin and Azure

As mobile apps enter ever more verticals, building data-capable apps that must work in non-connected scenarios is increasingly important. Azure and Xamarin work together to bring you online/office synchronization without writing a custom framework. Node and WebAPI back-ends are easily created. Let me show you the happy path to mobile app data sync.

Speaker

Auri Rahimzadeh

Auri Rahimzadeh

Owner, Auri's Ideas

Can't We All Just Get Along : The Building of an iOS application with a Ruby API

IndyCode will be the year of making new friends.

In this session, we will review how we built Gotcha, a mobile iOS application that gets conference attendees to meet each other in the real world through a virtual application.

The application was built in Swift 3.0 with the data coming from a custom API built in Ruby. We will show you how an iOS developer and a backend Ruby developer worked over API contracts to collaborate efficiently, switching from Swift to Ruby like Mr. Miyagi trimming a Bonsai tree while catching flies with chopsticks.

Speakers

Jamie Wright

Jamie Wright

Professional nerd, Tatsu

Care and Feeding of Your Developers

We all understand the value of focusing on User Experience when designing products and services. Costs go down, revenues go up, satisfaction and efficiency both increase while errors and complaints decrease.

But are you sure that you have identified all of your users? For most companies, there is a major category of people that are often overlooked: Software Developers. Developers are users of many systems within an organization: databases, web services, web hosting, authentication providers, and more. However unlike most users, developers depend most on the environments that are considered non-production, and the direct and indirect costs of outages are rarely considered.

What is the impact of equipping a developer with a $1,000 laptop instead of a $5,000 multi-screen rig? What happens to your product development when one of your developers quits and a new person joins the team? How can you support developers that write clean, maintainable code? We will look at best practices for supporting the developer experience, including documentation, processes, tools, and supporting systems.

Speakers

Michael Dowden

Michael Dowden

Product Architect, FlexePark

Clean Code: Homicidal Maniacs Read Code, Too!

There's no such thing as a write-once application. The world is constantly changing, and our code needs to change with it. The problem comes when the code we need to change is incomprehensible. Why does this happen? And what can be done to fix it? We'll approach our code from the perspective that it needs to be understandable by humans. We'll learn to think in small pieces and take a look at some techniques to keep our code manageable and understandable. Think about the next developer who will maintain the code. Now, imagine he's a homicidal maniac who knows where you live.

Speaker

Jeremy Clark

Jeremy Clark

Developer Betterer, JeremyBytes.com

Clojure - A Programming Superpower

In this talk we will look at Clojure, a battle-tested, production ready, stable language that offers programmers an incredibly productive way to code. Clojure has several unique features that allow programmers the ability to solve problems that would be intractable in most languages, succiently and clearly. Not only does Clojure offer features unavailable in any mainstream language, it also works on all the most popular platforms. You can run Clojure on the JVM and the CLR (and seamlessly use all the libraries they have to offer) as well as ClojureScript which compiles to Javascript and can be run on node, the web, and mobile devices.

We will first explore one of Clojure's most important features, truly live programming. Live programming allows us to find bugs and test out new ideas instantly, allow us to write our code faster. We will also see Clojure's support for concurrency, how for example, we can change one character in our programming to make turn it from a single-threaded application to multi-threaded. We will then look at clojure.spec, a validation and parsing library that takes the place of a static type system. We will see how spec not only validates our code, but can generate example data as well as automatically test our code for us. Finally, we will show how any feature of your favorite languages can be quickly ported to Clojure as a library, requiring no change to Clojure itself.

Speaker

Jimmy Miller

Jimmy Miller

Senior Developer, healthfinch

Community to the Python Power: 10 years of IndyPy

After 17 years of using Python and spending 10 of them organizing the IndyPy user group, what can we learn and how can we strive to do more? We all have heard the phrase “I came for the language and stayed for the community”, but how has that translated into action in the Midwest.

We examine the current state of the art and the next steps to contine to expand Python’s presence in the Midwest for years to come. There is no reason to stop even if you are at the top of your game and we will examine those next steps and talk about where we have been throughout the years.

Speaker

Calvin Hendryx-Parker

Calvin Hendryx-Parker

CTO, Six Feet Up

Continuous Delivery with IOT is easy!

Eric demonstrates how technologies like IOT can be operationalized, helping your organization deliver fast. Eric uses PAAS services and tools like Azure and VSTS showing you how to move fast. Organizations today need to deliver value to customers quickly. Eric explains how to operationalize delivery by making DevOps part of your delivery team from the beginning. Eric uses IOT as an example on how the DevOps integration can accelerate delivery. This includins demonstrating how feedback loops from Monitoring and Telemetry applications ensure quality products for your customer.

Speaker

Eric Landes

Eric Landes

Director DevOps , AgileThought

Continuous Everything – Build, Test, Deploy, Engage, Repeat

App Center brings together multiple services, commonly used by mobile developers, into a single, integrated product. You can build, test, distribute, and monitor your mobile apps, and also implement push notifications.

  • Build your apps automatically with every pull request
  • Test apps on thousands of real-world devices
  • Distribute passing builds to beta testers
  • Monitor apps for crashes and bugs

Cryptography Best Practices

Most developers have heard the statement: “never invent your own cryptography,” and most don’t fall into that trap, yet even using well designed libraries can land you in hot water, through misunderstanding, using them incorrectly, or only using them in a few of the many places you need security. This talk will cover many common errors and how to avoid them, and will increase your knowledge of how to avoid the mistakes that routinely leaks user data. We will cover data at rest, password management and best practices, two factor authentication, and more.

Speaker

Christopher Lomont

Christopher Lomont

Senior Principal Engineer, Logikos

CSS Isn't Scary

Ugh, CSS, it seems like it has a mind of its own and gets overwhelming when you use it for anything more than a simple layout. Sometimes, it feels like you're just guessing on what property to use and hoping for the best. You might feel intimidated and find yourself needing a front end developer to make even tiny changes to your site. In this presentation, I'll help you tame that CSS beast and discuss tips and tricks for getting your site to look exactly right the first time. I'll explain common misunderstandings about CSS and show you that, no, CSS isn't that scary.

Speaker

Stephanie Slattery

Stephanie Slattery

Front End Engineer, Clique Studios

Cybersecurity in the Modern Age

Cybersecurity is a critical part of the software we develop. New risks and threats are emerging every day while the cost of a breach has never been greater. However, many organizations do not understand the business value of cybersecurity. In this talk I'll go over the importance of cybersecurity, how we can detect our own vulnerabilities before they're exploited, and how we can communicate the need to invest in cybersecurity to the larger organization.

Speaker

Robert Herbig

Robert Herbig

Lead Software Engineer, SEP, Inc.

Defining a Problem Space in an Agile Workflow

Working on a project team without a well-defined problem space can be extremely frustrating. What problem are you working to solve? How do you prioritize stories? What do you point to when there are disagreements within the team? Regardless if you're a Developer or Product Owner, you should be involved in developing and owning the project's problem space.

In this talk, we will cover why defining a problem space—especially in an agile worflow—is so important to all members of your project team. We will also cover step-by-step the who, when, and how for defining a fluid problem space that will help keep your team on track and on budget!

Speaker

Amy King

Amy King

UX Architect, DMI, Inc.

Demystifying Dependency Injection

What is Dependency Injection (DI) and why should you care? Come learn what DI is and how you can use it to keep your apps loosely coupled and test friendly. We will examine why you should avoid tight coupling and how you can avoid it using different methods of DI. After looking at the basic patterns, we'll take a look at a few different DI containers and see how they do their magic to make us better programmers.

Speaker

Brent Stewart

Brent Stewart

Co-Founder, Alien Arc Technologies

Design Patterns: Not Just for Architects

You already use Design Patterns but probably don't know it. Observer, Facade, Iterator, Proxy - Learning the lingo allows us to better communicate your ideas with other developers. We'll take a look at several Gang of Four patterns that we regularly use without realizing it. Don't know who the Gang of Four is? Join us to find out.

Speaker

Jeremy Clark

Jeremy Clark

Developer Betterer, JeremyBytes.com

DevOps Architecture Deep Dive, Canary Deployment

Eric walks through the architecture pattern of “Canary” Deployments. A term coined by Itay Shakuray, in a post on Deployment patterns. How can a team move from a different deployment pattern into a pattern that allows your organization to test customer reaction to different software? Eric walks through a real world implementation of this scenario using VSTS, .Net, node.js technologies.

Speaker

Eric Landes

Eric Landes

Director DevOps , AgileThought

Embracing the Mob Mentality

Have you heard of Mob Programming? It sounds super weird when you first hear about it. A bunch of Engineers (and even some non-Engineers? Really?) sit around a computer and code collaboratively, always working on the Next Most Imortant Thing. "Pff," you may scoff, "that can't possibly be economical. Why would anyone do this?"

For the past few years I've been on teams that have mobbed consistently and we have enjoyed benefits we couldn't have anticipated. Following a few simple guidelines we are able to execute work at a remarkable pace, maintaining high quality and growing team skill and cohesion.

Let's talk about what Mob Programming is, what expectations your team should have going into it, and some of the amazing benefits mobbing can deliver.

Speaker

R. Michael Rogers

R. Michael Rogers

Lead Software Engineer, Software Engineering Professionals

Exploring the Foundations of Programming

All of our languages come with a certain set of tools to accomplish our tasks. These usually consist of various types like, booleans, integers, floats, lists, etc… It isn't often that we think about, "what exactly is a boolean?" and if we do, our answer usually has something to do with the machine. In this talk, we will take a different tact, exploring the foundations of our languages by recreating all of these features from scratch.

In this talk, we will reconstruct a ton of this built-in types ourselves. We will explore making lists from scratch, making our own number system, constructing our own booleans, and our own if statements. While abstract in nature, the talk will consist largely of live coding, building up these various elements from scratch. This exploration of programming's foundations will cause you to look at programs in a different light. Finally, we will talk about the wider impact these foundations have on the rest of computing.

Speaker

Jimmy Miller

Jimmy Miller

Senior Developer, healthfinch

Facial Recognition in JavaScript

Augmented Reality (AR) is becoming an important field for programmers, and it has really intresting artistic and business implications. I wanted to research how I could implement it within my standard workflow. The first project I thought of was duplicating SnapChat's facial filters. I found several JavaScript libraries for facial recognition in JavaScript, and I decided to build a project with tracking.js because of its documentation and examples.

In this talk, I will take attendees through the development process with tracking.js and through other examples of AR in web development as a whole.

Speaker

Alison Spittel

Alison Spittel

Web Development Instructor, General Assembly

Finding and Fixing Bottlenecks with Speed, Safety, and Concurrency: an Introduction to Rust.

This talk will explore Rust, a systems level programming language aiming to replace C and C++, through the guise of a real world scenario of finding and fixing bottlenecks in your everyday code. We will discuss how Rust's focus on speed, safety, and concurrency make it the ideal language to drop into when your regular code (Python, Ruby, JS, C#, etc) gets a case of the molasses.

Hopefully one will leave this talk with the knowledge that systems level programming doesn't have to be scary along with a desire to dive into learning Rust.

Speaker

Cameron Dershem

Cameron Dershem

Co-Foudner / Developer / Hair Farmer, pinkhatbeard / ocelli

Finishing the Projects you Start

Building Your First Desktop App

Though I am a software developer, this is a general-purpose talk and applicable to anyone (not just programmers). The talk covers effective learning, defining scope, phases of a project, the differences between academic, résumé, & passion projects and how to convert them from one to another.

This is the most requested talk from the members of the Free Code Camp Indy meetup group and has also been given as a university lecture at IUPUI.

The speaker for this talk has completed over 200 projects in the past two years ranging from short 1-day projects, to multi-year long endeavors. He'll be sharing his experiences and tips, along with answering questions.

Speaker

Jared Wilcurt

Jared Wilcurt

Senior Developer, World Wide Technology

Front-end Web Development with Angular and TypeScript

The all-day session will walk developers through the setup and development of a powerful web application built on some of the most modern web tools and technologies available including TypeScript and Angular2. At the end of the session all attendees will have had the opportunity to utilize a wide number of modern web-development tools and technologies to set up a complete application.

This session will be very fast paced and all attendees will be encouraged to follow along as the instructor demonstrates every aspect of:

  • Setting up a new web solution and configuring all necessary package and module management tools (we will focus on NPM and Angular CLI)
  • Configuring you development environment with the right plug-ins and extensions to optimize the development process
  • Setting up a robust project structure to manage all assets and code
  • Utilizing TypeScript to build a rich and manageable client-side application using the Object Oriented constructs and patterns you are familiar with from other languages such as C#
  • Integrating your Angular application with a server-side API
  • Setting up an Angular application and designing a robust UI built around Angular2 components.
  • Utilizing the Angular syntax and directives for building robust HTML applications
  • Working with Angular routing to build an efficient means of navigation between pages
  • Utilizing RxJS and Observables to work asynchronously and easily communicate back to the server’s API
  • Debugging and testing a component-based Angular application

Requirements for attendees:

Have a laptop with either Visual Studio 2015/17, Web Storm, or Visual Studio Code.
Have Google Chrome included on the laptop. Be highly proficient in C# and JavaScript and be very familiar with current Microsoft web development technologies such as ASP.NET WebForms or MVC. Have the ability to work quickly and absorb the presented information while working through the setup on their own laptop Beyond a development environment and Google Chrome, attendees will be asked to install additional tools and extensions into their development environment throughout the session.

All sample code and resources for this session will be shared via a GitHub repository at the start of the session.

Speaker

Kevin Grossnicklaus

Kevin Grossnicklaus

President, ArchitectNow

Get into the fastlane: Simplifying the process of releasing iOS and Android apps

If you have every had to set up app and device provisioning for iOS, you know that it is a pain in the a$$.

fastlane is an open source project, created to simplify the confusing and often tedious process of releasing iOS and Android apps. It comprises of several utilities that each handle a specific aspect of app release, such as:

  • deliver – Manages and uploads screenshots, metadata, and application bundles to iTunes Connect.
  • produce – Creates and app in iTunes Connect and the Developer Portal (often known as AppID). It also includes support for App Groups and application services.
  • pem – Creates and manages Push Notification Provisioning Profiles.
  • cert – Creates and manages code signing certificates
  • sigh – Creates and manages provisioning profiles
  • match – Creates and maintains certificates and profiles and stores them in a git repository so that they can be synced across a development team

Giving Clarity to LINQ Queries by Extending Expressions

In this session we’ll learn about .Net Expression trees by discovering how they work and applying the knowledge to LINQ using the pipes and filters pattern. LINQ and Entity Framework are both commonly used in the .Net ecosystem, but even well-written applications can have LINQ queries that are difficult to understand. Because LINQ is so flexible, it can be written in ways that fail to communicate the developer’s intent. Well-written LINQ should be so clear as to be self-documenting. To write clear LINQ, it helps to understand the details of a few LINQ components that improve LINQ’s readability.

We’ll be showing how to use a pipe and filter pattern to make LINQ queries easier to comprehend. We will take a deep dive into expression trees to understand how they work, and how to manipulate them for maximum re-usability.

Speaker

Ed Charbeneau

Ed Charbeneau

Developer Advocate, Progress

Going all in with functional C#

In this workshop attendees will learn about functional C# by building a poker scoring game using C# 7.1 features. We’ll learn what new features were added in C# 7.1 to support functional programming. The pros/cons of functional vs. imperative programming will be explored to understand the strengths of each style.

In this workshop we’ll learn:

  • Immutable Types
  • Basic LINQ concepts
  • Advanced LINQ concepts (Yeild)
  • Func Delegates
  • Expression Bodied Members
  • Extension methods and pipe-lining
  • Thread Safe Collections
  • Tuples

This is a rapid fire workshop using a poker scoring kata. We’ll learn at an accelerated pace with challenge based intervals with solutions given at the end of each interval. We’ll use these challenges to compare methodologies and reveal that we can tackle one problem in many ways using code. In the end we’ll reveal that using a mix of functional and imperative programming can tackle most challenges in a single line of code.

Speaker

Ed Charbeneau

Ed Charbeneau

Developer Advocate, Progress

Hack Proof: Software Design for a Hostile Internet

Software today is subjected to numerous vectors of attacks. The Internet world is a hostile world and our apps need to be expecting to encounter digital terrorists who want to use our applications to get inside our organization. In this session you’ll learn about some of the most common attack vectors for applications and what you can do about them. We’ll discuss techniques for protecting from user input including injection and cross site scripting attacks.

• Dispel myths about hacking and application vulnerability • Identify common threat vectors for applications • Discover strategies for addressing common threat vectors

Speaker

Rob Bogue

Rob Bogue

President, Thor Projects LLC

Hacking with C#

The best defense is understanding the tools used in offense. We'll go over some of the tools used by security researchers as well as criminals. We'll then look at using C# to automated some of their processes, we'll talk about decomiling assemblies, and we'll look at mining information in the registry.

Speaker

Kevin Miller

Kevin Miller

Senior Software Architect, TCC Software Solutions

Hands Free Mobile UI Testing

Testing your mobile app against the sea of mobile devices can be daunting. Just testing with the popular devices of the last few years can be cumbersome and expensive. Not to mention the wear and tear on your thumbs with all that tapping and swiping. Wouldn't it be great if you could apply the same skills and practices you've honed implementing unit testing of your app logic to the testing of your UI? I've got great news, you can! We'll explore how you can create coded UI tests with C# and Xamarin UITest to automate all that tapping and swiping in your existing mobile apps, and how to plan for it moving forward. Give your thumbs a break and start coding your UI tests today!

Speaker

Duane Newman

Duane Newman

Co-Founder, Alien Arc Technologies, LLC

Helping Junior Developers Succeed on Your Team

The objective of this session is to provide insight into the needs of junior developers so that you can help them achieve their full potential and be more productive, valuable members of the team. Frequently, new developers are faced with common challenges that thwart their ability to make meaningful contributions to the team’s goals. The speaker will share the results of a recent survey and interviews with junior developers. The findings from the survey highlights typical barriers, and offers solutions and opportunities for improving the onboarding process and integrating the new developer into the team.

Speaker

Nathan Randall

Nathan Randall

Developer 1, TCC

How to "UX" your software: Avoiding Hurting people

Creating software that people can use is not simply following current trends or doing what you feel will work.

It takes understanding of human: * Sensation * Motor Function * Learning * Decision Making

While knowledge of Best Practices for software design is a beginning, you can't answer all of the important questions without understanding the people who will use it.

Learn about some of the most common design trends and why they create problems for people using the software.

Speaker

Susan Shapiro

Susan Shapiro

Principal User Experience Consultant, GravityDrive

How to build a blockchain in Ruby

Bitcoin and cryptocurrency is all the rage. Many industries are under attack from technology companies using a distributed ledger (fintech, healthcare, IOT, ...). Lots of money is being made (and likely lost) in this new currency and most people don't even understand what is happening. We will work to de-mystify the math and computing behind the currency and then use our new found knowledge to build a simple implementation in ruby.

Speaker

Matt Brown

Matt Brown

CTO, Quantifi

How to transition leadership (without pissing off the team)

When we join a new team as a Tech Lead it is common for us to want to jump right in and tackle the technical challenges of the position. Yet it is critical that we first consider the human element of our job to make the transition as smooth as possible for the team.

This talk will explore real examples of leadership transitions, both good and bad, with a discussion of what worked (and what didn’t). We’ll wrap up with some specific best-practices to use when joining a new team or managing a transition, including why these practices are important.

Speaker

Michael Dowden

Michael Dowden

Product Architect, FlexePark

Interviewing, Fast and Slow: Use behavioral science to ace technical interviews or build better teams

As developers, we're used to getting near-instant feedback on the quality of our work. The test either passes, or it doesn't.

As a result of that quick feedback loop, we consistently improve our coding ability. More time equals more skill. When it comes to job interviews, though, there’s no compiler, no unit tests, and no quick feedback loop. We feel like we’re learning, but are we?

We’ll draw on lessons from the groundbreaking book Thinking, Fast and Slow and mistakes I’ve made across a decade of startup hiring. We'll break down the typical developer interview process. Then, we'll use the lens of cognitive bias to identify specific tactics for acing existing interviews and for making our interviews better at predicting team success.

Learning: Attendees will leave armed with both a) tools to be a more effective interviewer and b) tools to presents themselves well as a candidate.

Speaker

Wes Winham

Wes Winham

Founder/CEO, Woven

Intro to Software Freelancing

We all know developers are in high demand right now, so why not cash in? Whether you’re looking to moonlight or become a full time freelancer, this presentation will help you get started. Hear the strategies used by a 20+ year software professional on how to get in the freelancing game, be reputable, profitable, legal, and most all… stay sane!

Some topics that will be addressed: -Why become a freelancer? -Do you have what it takes to be an entrepreneur? -Start small with little risk until your confidence and process are ready for prime time -How do I market myself? -Some paperwork (insurance, incorporation, etc.)

Speaker

Tiffany Trusty

Tiffany Trusty

Senior Consultant Engineer, Eli Lilly

Introduction to Amazon AWS

Amazon AWS is the other main player in cloud computing. They have many of the same offerings as Azure, but also some that are different. We’ll take a look at the basics such as SQS, S3, EC2, SNS, and SES, to see how you can quickly and easily incorporate the cloud into your existing applications.

Speaker

Brian Korzynski

Brian Korzynski

Sr. Software Developer, United Shore

Introduction to Dashboards in R Markdown Reports

Instructor: Phil Bowsher, RStudio

Course Description: RStudio will be presenting an overview of creating dashboards with R. This is a great opportunity to learn and get inspired about new capabilities for creating compelling analyses. This short course will provide an introduction to R Markdown and htmlwidgets for interactive visualizations.

http://rmarkdown.rstudio.com/flexdashboard/

The htmlwidgets package provides a framework for easily creating R bindings to JavaScript libraries. htmlwidgets work just like R plots except they produce interactive web visualizations. htmlwidgets can be used at the R console as well as embedded in R Markdown reports and Shiny web applications or saved as standalone web pages for ad-hoc sharing via email, Dropbox, etc.

R Markdown is an authoring format that enables easy creation of dynamic documents, presentations, and reports from R. It combines the core syntax of markdown with embedded R code chunks that are run so their output can be included in the final document. R Markdown documents are fully reproducible and can be automatically regenerated whenever underlying R code or data changes.

RStudio will provide an introduction, several compelling examples as well as learning resources for HTML Widgets, and RMarkdown.

Speaker

Phil Bowsher

Phil Bowsher

Director of Life Sciences/Healthcare, RStudio Inc.

Introduction to Functional Programming with F#

Functional programming languages often claim to be quicker for development, less error prone, and more easily maintained, so why don’t we all use them? The biggest reason is probably unfamiliarity, so this talk will use a popular functional programming language, F#, to illustrate the benefits of functional programming by comparing to a widely used OO/procedural language, C# (which is slowly itself absorbing functional pieces and concepts). At the end of the talk, you should be curious enough and have enough of the initial mental hurdles overcome that you can start playing with F#, possibly even replacing some of your current toolkit with it.

Speaker

Christopher Lomont

Christopher Lomont

Senior Principal Engineer, Logikos

IoT for the .NET Dev

IoT is becoming more and more prevalent in our lives. Everything from home appliances to industrial warehouse sensors are getting connected to the Internet to leverage the power of the cloud. There will be great opportunity for those developers who understand how IoT can help industry move to this new frontier. Come explore how to leverage your .NET skills to reach the cloud with Windows 10 IoT on a Raspberry Pi. These days there are many ways to connect your IoT devices to the cloud, but in this talk, we'll look at how we can utilize Azure services to integrate with physical devices. We'll show everything from how to interact with GPIO (General Purpose Input Output) to hooking up to Azure Functions with the Raspberry Pi. Come see how to put your Pi in the sky (cloud)!

Speaker

Brent Stewart

Brent Stewart

Co-Founder, Alien Arc Technologies

Know Your Tools – Making the Most of Working with .NET Core

.NET Standard and .NET Core are among the more exciting things to happen to developers over the last decade. There are many reasons to want to take the plunge and delve deep on the latest bits to build apps that can be written and run just about anywhere. There are many new and different ways of approaching tooling in this new world. Of course, Visual Studio 2017 does a lot of great things, but there are other options as well to complement the tools you already know and use. Explore your choices and find out if there are ways to improve your workflow and productivity in this exciting new world.

Speaker

Kubernetes From Code to Deployment

Kubernetes represents a paradigm shift for those in the devops community. Google's third iteration of a container orchestration platform brought innovation and techniques almost a decade ahead of the industry.

In this talk, we will explore how software organizations from startups to large enterprises can benefit from Kubernetes. We will discuss Kubernetes primitives and show how users can interact with the system.

At the end of this session, users will have a solid understanding of Kubernetes principles and be able to migrate complex workloads into Kubernetes.

Speaker

Stephen McQuaid

Stephen McQuaid

Senior Software Engineer, Gladly Software, Inc

Lean and Agile's Roots in the Automotive Industry

Toyota piloted lean manufacturing and revolutionized the auto industry. Many of the lean and agile principles that software developers use everyday can be directly traced to those factories. Join a recovering manufacturing engineer turned software engineer to explore lean manufacturing’s contribution to software development. We’ll share success stories and even a few cautionary tales.

Speaker

Brad Snodgrass

Brad Snodgrass

Lead Software Engineer, Software Engineering Professionals

Leap to the future: Introduction to Quantum Computing

Many experts in the field agree that Quantum Computing is finally within the realm of realization.

But what is Quantum Computing? Why do we need it? What can we solve with it that we cannot with supercomputers?

What are some of the challenges involved?

What does a quantum program look like?

In this easy-to-understand introduction, John demystifies the basics of quantum computing, and introduces its context to an audience that is familiar with software-engineering but perhaps not deeply schooled in quantum physics!

Speaker

John Azariah

John Azariah

Compiler Lead for Microsoft Q#, Microsoft Corporation

Learning CSS Through Creating Art

Objectives

  • Explain what CSS is and how it is helpful for developers
  • Introduce CSS properties and selectors
  • Show how CSS can be used to create artwork
  • Students will create their own artwork using CSS

What We Will Cover

I enjoy CSS because it merges math, programming, and visual design. Online I've seen gorgeous artwork built using only CSS -- like this single div Grace Hopper and this adorable Koala. I decided to teach myself how to create artwork like the ones above -- though I am definitely a software engineer not an artist. I found that creating art with CSS strengthened my "regular" CSS skills that I use for creating traditional web pages. CSS art is fun to learn, both to create art and to strengthen your development skills! This talk will discuss both the fundamentals of CSS and the fundamentals of CSS for creating art. We will start at zero, but it will be a great refresher for people wanting to strengthen their coding skills or people looking to get more artistic with their code.

What Students Will Create

A piece of artwork built in CSS!

We will all start with drawing an animal in CSS together, which will introduce CSS fundamentals and placement (stuff like coloring, creating shapes, and positioning).

Then, students will break off and build their own art in CSS -- I will be there for support and the other students will be available to help. I will give suggested pieces of art and further examples if needed!

Why This Workshop

I hear all the time from developers that their least favorite tool they work with is CSS. I want people to walk away from my workshop with a new appreciation for how powerful, helpful, and straightforward CSS can be! I also want people to see how creative and artistic they can be through code.

The workshop will extend my article on this topic!

Speaker

Alison Spittel

Alison Spittel

Web Development Instructor, General Assembly

Learning The Basics In R programming

This presentation will cover an overview of how R programming is used for data science, sharing examples of where R is influential in software development. Highlights include how to import data, examine it, and modeling in a regression model, with notes on its usage on other applications such as Twitter and Google Analytics.

Speaker

Pierre DeBois

Pierre DeBois

Founder, Zimana

Life-Hacking with Containers: How to Automate Away Your Problems

As a software engineer, I look for ways to make my life easier. In this lively talk we will discuss some of the problems I've faced, from blocking ads to dealing with slow ISPs, and how I've managed to make my life easier with Python and some docker magic.

Speaker

Stephen McQuaid

Stephen McQuaid

Senior Software Engineer, Gladly Software, Inc

Micro-Services: What we learned from 2017

Micro-Services have really taken off, what are some of the lessons we learned as an industry last year and how do we carry those learnings forward in 2017 to make the best, most stable products?

Speaker

Chase  Aucoin

Chase Aucoin

Senior Enterprise Architect, Keyhole Software

Monitoring & Alerting Made Simple

With systems becoming more distributed and workloads increasing at an unprecedented rate, the importance of solid monitoring primitives has never been greater. In this talk we will explore simple, robust monitoring concepts battle tested at scale.

We will also explore the evolution of monitoring tooling as well as propose example migration plans for legacy systems to use modern monitoring tools and frameworks.

Speaker

Stephen McQuaid

Stephen McQuaid

Senior Software Engineer, Gladly Software, Inc

Neural Networks: The Good Bits

Neural Networks: The Good Bits

So you already know a little bit about Neural Networks and can do some of the basics? Are you ready for the really cool stuff? Let me show you the way.

The expectation for this course is that you already have a fundamental knowledge of Neural Networks either from my other talk “A Primer to Neural Networks” or via your own study.

Topics and Demos Include:

  • Loss Functions: Where the real money is
  • Custom Activation Functions
  • Modern Neural Network Architectures
  • Approaches for quick research and development
  • Learning Analytics: How to know when to try something different
  • Deploying for Consumption with Zero MQ

Speaker

Chase  Aucoin

Chase Aucoin

Senior Enterprise Architect, Keyhole Software

New in Town: On addressing gentrification within the tech industry

You move to a new town to take a well-paying programming job. You have two choices: you can work with your new community, to help everyone within it grow–or you can work against it, making it unaffordable for anyone who makes less than you. This talk is going to help you make an informed decision. Using examples from the American Midwest, “New in Town” focuses on how we in the tech industry can make the tech industry a safer space for those outside of it. It will answer the following questions:

  • What is gentrification? Is it just demographic shifts, or is it bigger than that? What are its consequences?
  • Is this talk really about me? I mean, I–(Short answer: yes.)
  • Hey, I’m just looking for affordable rent here! How can I not gentrify my new city?
  • What are individuals or small groups within tech doing to combat gentrification?
  • What are companies, cities, and other larger entities doing to combat gentrification?
  • I’m from a small town, and I left to find work in the big city. How can I give back to my hometown?

Former manufacturing apexes throughout the Rust Belt, like Chicago and Detroit, now represent live-action tales of two cities: affluent white-collar tech workers on one side of town, and high-density crime & poverty on another. Even in my small-ish hometown of Madison, Wisconsin, rent has become unaffordable even to UW students, while the city perpetuates high racial disparity gaps, from health and education, to housing and criminal justice. Beyond that, there is also the other side of gentrification: the places people have left. While many larger cities are prospering as a result of tech industry growth, many communities are suffering economic loss, “brain drain,” and social collapse as people leave for bigger & better things.

When we take jobs in new towns, we have not only a social but also an economic responsibility to maintain equity, affordability, and quality-of-life for the residents of our communities. This talk will explain how all of us can do just that.

Speaker

Erica Fox

Erica Fox

Web Programming Specialist, Ball State University

Node.js Crash Course

Node.js is a compelling platform that is quickly spreading from startups to the enterprise. Node.js strategically unites developers of all backgrounds through the common language of JavaScript. Why should you learn Node.js and where do you start? You will come away from this talk with the evidence to support Node.js, and tools you need to be productive. We will walk through a typical workflow of creating and debugging a web application. You will learn how easy it is to deploy, including Microsoft Azure. We'll also look at popular frameworks and modules, and other learning resources to give you the best start.

Speaker

One-Hour Introduction to React

Attendees will be given the one-hour crash course into all things React. We will set up a new React application and demonstrate the core concepts that make it a powerful and effective platform for building rich web applications.

The following concepts will be covered (very quickly):

  • How easy is it to set up a new React application?
  • What are components and how do you build them?
  • What is JSX?
  • How is data managed in React?
  • How does Routing work in React?
  • How can I test a React application?
  • What should I do to learn more?

If you are interested in React and want a crash course in what makes it tick then this session is for you.

Speaker

Kevin Grossnicklaus

Kevin Grossnicklaus

President, ArchitectNow

Packaging your world with NuGet

Whether you are creating an open source library or building core components for your enterprise app, you need to get that functionality into projects that can use it. But creating these resources can often be far easier than consuming them. What you want is a worry free way to distribute and reference them in your project that will let you stay up to date, but allow you to avoid problems like uncontrolled upgrades that may introduce breaking changes or new bugs. NuGet packages to the rescue! We'll also take a look at all the places you can find NuGet (packages aren't just for code any more) and what it takes to create, distribute, and maintain your very own package. When we are done you will be ready to get out there share your package with your team, your enterprise, or even the world.

Speaker

Duane Newman

Duane Newman

Co-Founder, Alien Arc Technologies, LLC

Practical Functional Java (and Kotlin too!)

You've read all about Elixer, Haskell, Clojure, etc. and are really excited by functional programming. But in your day job, you are a Java programmer. Can functional concepts be applied in a language like Java that is not a purely functional language? The answer is a resounding "yes"! If you will embrace functional concepts in your every day work, then your code will be cleaner, smaller, and easier to maintain.

In this workshop, we will embark on a successive refinement exercise to refactor a horrible deeply nested looping monstrosity into something more elegant and functional. Along the way, we'll learn about the features in Java that are moving Java into the modern functional world including:

  • Streams
  • Map, Filter, Reduce
  • Optionals

We will also be doing a deep dive into immutability and will learn some interesting patterns for building a hierarchy of immutable objects.

The code exercises for this session will be in Java. If time permits, we will also talk about the Kotlin language and how these concepts can be applied in that world.

Speaker

Jeff Butler

Jeff Butler

Java Practice Lead, DMI

Practical Machine Learning with Python

Python is a very popular open-source programming language for machine learning. Its interactive programming environment and powerful data analysis capabilities make Python an ideal tool for machine learning.

This workshop will provide an introduction to using the Python programming language for Machine Learning. We'll cover supervised and unsupervised learning in the form of classification, regression, and clustering. We’ll also learn about ensamble learning and deep learning using deep neural networks. Finally, we’ll learn how to deploy these models to production.

Speaker

Matthew Renze

Matthew Renze

Data Science Consultant, Renze Consulting

Predicting free Pizza with Python. Cowabunga Dude!

Pizza. It’s cheesy, carb packed (or not), and all together yummy. We’d offer to do just about anything for free pizza. Right?

Python is an ideal language for answering these types of questions given its rich scientific libraries and tools for analysis.

In this talk I will define the scope of a machine learning problem, predicting altruism through the gifting of a free pizza, to demonstrate how Python can be used to model machine learning problems. Using text based data of the requests along with the labeled outcomes we’ll see how a simple classifier like Naive Bayes can learn to predict if a pizza-desperate request is successful or not.

Let’s see how Python can help us model “learning” to get all the free pizza. Cowabunga dude!

Speaker

Lorena Mesa

Lorena Mesa

Machine Learning Engineer, Sprout Social, Inc.

Putting the D&D in TDD

Are you tired of TDD workshops that make you do boring things like calculate bowling scores and prime factors or demonstrate how to win at the game of life? If so, this is the session for you! In this TDD workshop we will be building the domain model for EverCraft -- a new MMORPG from Blizzards of the Coast. We have lots of story cards prepared covering features from combat to magic, classes to spells, and races to items. Plus, we'll be defining some of these cards during the session in case you want that +9 knife of ogre slaying or enjoy casting magic missile at the darkness.

This workshop is language agnostic and for all levels of developers. The focus is on TDD and emergent design but pair programming will be covered as well. The only requirement is that you bring a laptop and that you be able to test-drive you code with your language of choice. When you are done you will emerge a better programmer for the experience but there is small chance you will have a craving for Cheetos and Mountain Dew.

Speakers

Guy Royse

Guy Royse

Developer Evangelist, Nexosis

Raising the Value of Your Unit Tests

For any non-trivial application created today, software engineers must not only deliver on application features but also include associated unit tests to improve efficiency, to reduce risk when making code changes, and to improve quality by identifying bugs as early as possible. One may think having unit tests to increase code coverage is the goal but that is missing the mark. Software engineers should be focused on delivering unit tests that have meaningful value to support current and future software development. In this session, you will learn several unit test styles, how identify weaknesses in unit tests, and how increase the value of the unit tests you create.

Speaker

Richard Taylor

Richard Taylor

Director of Engineering, SentryOne

Real Agile for Real Software

As the agile revolution continues, more and more companies are wanting to “Do Agile”. Most companies don’t even know why, they just see and hear about other companies having successes. They hire a consultant, who is teaching the “flavor of the day” agile process and pay lots of money for books, tools and training. Most of the time, with limited success.

In this talk, I will explain what Agile software development is meant to be all about. I’ll tell you a bunch of stories about common mistakes I see companies making as they try to become more agile, and what you can do to avoid or overcome these mistakes. In the end, you should leave with a better understanding of the nature of building software in an agile way and maybe even had a few laughs along the way.

Speaker

Lee Brandt

Lee Brandt

Developer Advocate, Okta

Refactoring to Testable Code

Most developers have the responsibility of working with an existing codebase. In many circumstances, the existing code was not designed with testing in mind. This does not allow leveraging of automated testing to reduce risk and improve quality. To realize the value of automated testing, this existing code must be refactored which is not always easy to accomplish. By attending this session, you will learn several techniques to refactoring code that was not designed to be testable. In addition, unit test will be added to the newly refactored code and executed as a part of an automated test suite.

Speaker

Richard Taylor

Richard Taylor

Director of Engineering, SentryOne

Regular Expressions – The Black Magic of Text Manipulation

Do you understand the most powerful tool for text searching and manipulation? Can you search and find a single entry amongst thousands with only a rough idea of what is? Do you want to learn? Originally conceived in the 1950’s Regular Expressions are still commonly used today to search and validate text. And virtually every modern framework has a Regular Expression engine. For simple queries and validators, it is easy enough to copy pre-made scripts, but they will do little to help with searching for entries in custom logs or general text. Understanding the language and its use unlocks a world of possibilities.

Speaker

Kevin Miller

Kevin Miller

Senior Software Architect, TCC Software Solutions

Retrospectives: the agile Ur-practice

I have been on some terrible teams. Well, I mean "teams" - we were a collection of people that worked individually and had no group identity. It's really hard to reap the benefits of collaboration if there isn't any, you know, collaboration.

So how do you get from "collection of individuals" to "team"? In my opinion, the Retrospective.

Retrospectives, when done well, are an incredibly powerful tool. They help teams gel, focus, and work with ever-increasing efficiency. They can allow for group of people to understand dysfunction, plan for its eradiation, and execute on that plan. The reason I call it the Ur-practice is because nearly every other practice can be incepted and implemented from a well run Retrospective.

I want to talk about what Retrospectives are, why they're important, and what benefits you may see. I'll provide a template for executing your own Retrospectives, with ammuntion you can use to get organizational buy-in (if you need it) or team buy-in.

Really, I want to help you make your teams better.

Speaker

R. Michael Rogers

R. Michael Rogers

Lead Software Engineer, Software Engineering Professionals

Setting Up a Modern JavaScript Development Environment

This session will walk attendees through setting up a modern JavaScript development environment that is highly useful for both Angular or React applications.

Technologies and topics we will cover include:

  • Popular JavaScript IDEs
  • WebPack for bundling and managing our dev/deployment process
  • NPM to manage our packages and scripts
  • Linting
  • Testing
  • CLIs
  • Frameworks and Starter Kits
  • Much more

Regardless of the JavaScript frameworks you use we will demonstrate how you and your team can quickly and efficiently set up an environment to be more productive in your development.

Speaker

Kevin Grossnicklaus

Kevin Grossnicklaus

President, ArchitectNow

So you've got a build server. Now what?

So you're using your build server to complie down your code. Are you using that build server to deploy the code as well? How about testing your code? Most people don't realize how powerfull these tools can be. Even from an operational stand point, you can be using your build server to automate your tier 1 support.

Speaker

Curtis Cockerham

Curtis Cockerham

DevOps Engineer, Federal Reserve Bank of Kansas City

Software development in a highly regulated environment

Did you know that Indiana is now one of the top five states in the U.S. for number of life sciences employees (BIO/Battelle Technology Practice, 2013).  The state’s life sciences industry boasts statistics that rival coastal hubs of activity. These companies are growing their software offerings and need help. Learn what it takes to develop software for FDA regulated products and how agile is becoming the mainstream development model. Gain a high level overview of the FDAs history with software and hear about real world examples of products being developed in Indiana.

Speaker

Jeanine Brosch

Jeanine Brosch

Manager, Software Engineering Professionals, Inc.

Squashing JavaScript Bugs

The web is a dirty place. Traces of stacks litter the floor; memory leaking from cracks in the ceiling. Someone lost their context in the corner. Load times are slowly crawling along the window. Join me for a live debugging session as we find and squash different kinds of browser bugs. You leave armed to stomp out your own bugs and cleanup your JavaScript app.

Speaker

Todd Gardner

Todd Gardner

President, TrackJS

Streamlining State Management in Angular with NgRx

Streamlining State Management in Angular with NgRx

Modern Angular development is constantly evolving as a result of new tools and techniques being employed by professional developers across the globe. In this talk, we will discuss one such tool that merges some of the most highly-used Javascript design patterns and libraries into a single package -- NgRx. NgRx combines the power of Reactive Extensions (RxJS) with the popular Redux design pattern to empower your Angular applications, making them more resilient, more predictable, and more testable. As a result, you should be able to write Angular code that feels and smells cleaner, and hopefully is more fun to write!

This presentation will empower you to:

  • Utilize NgRx in your Angular applications
  • Learn how the Redux design pattern can be applied in Angular
  • Feel more confident about the performance of your Angular code
  • Visualize a robust use-case for RxJS
  • Establish consistent architecture patterns across an entire Angular app
  • Speakers

    Christopher Pratt

    Christopher Pratt

    Senior Software Engineer, DMI
    Teddy Sterne

    Teddy Sterne

    Senior Software Engineer, DMI

    Supercharging Your Unit Testing with JUnit 5, AssertJ, and Mockito

    Unit testing is an oft-overlooked step in the development lifecycle. This is unfortunate as lack of unit testing rests at the center of a lot of the struggles we face as developers. During this presentation we will learn how to use JUnit 5, AssertJ, and Mockito, to supercharge writing unit tests.

    Speaker

    Billy Korando

    Billy Korando

    Senior Software Consultant

    Take Back Project Sanity: The Kanban Journey

    Kanban is just sticky notes on a whiteboard, right? Actually, there’s more to this methodology than you might think. Kanban harnesses the power of visual information to turn your team’s work into brain candy (or bacon). Visualization is only the beginning.

    Whether you work in software development, operations, or professional cat wrangling, Kanban can help you continuously improve your process (yes, you have one!). That can help your team boost things like delivery speed, predictability, and quality.

    In this fun and entertaining talk, you’ll learn the core principles and practices of Kanban, as well as how to maximize its potential to evolve how you, your team, and your organization works.

    Speaker

    Taking Hoosier Tech to the Next Level

    Indiana has a lot of the raw ingredients needed to be a major force in tech job creation now and in the future. This past summer, Nick set out on a 3-month national tour with a goal of learning what more than a dozen cities across the United States are doing to push their technical communities to the next level. Nick will share the unique perspective he gained from the tour, highlighting key observations about how Hoosier technical communities compare to those in cities such as Chicago, Kansas City, and Seattle, among others, and discuss what Indiana can do to accelerate growth and remain competitive with other innovative cities.

    Speaker

    Nick Birch

    Nick Birch

    Co-Founder, CEO, PropelUp

    Testing Embedded Code

    Enterprise java and C# get all the love in the testing world. But if you write embedded software for microcontrollers, you too can get in on the fun! We'll walk through examples of test driven embedded code and look at different testing frameworks that can help you solve your problems.

    Speaker

    Clay Dowling

    Clay Dowling

    Agile Software Consultant, Pillar Technology

    The Complexity of Android Testing

    Android developers have it rough when it comes to testing! When factoring in the vast number of hardware manufacturers, the vast number of models, the different chipsets utilized, and the number of OS versions that those devices can be running, the permutations to test seem almost infinite (and definitely overwhelming). This presentation will help to demonstrate some common strategies to help quantify and mitigate your Android test strategy by: presenting the market factors to consider, presenting the business factors to consider, and finally presenting a few different strategies based on those factors.

    Speaker

    Tiffany Trusty

    Tiffany Trusty

    Senior Consultant Engineer, Eli Lilly

    The Developer's Guide to Selling Your Work

    A few years ago, I had an idea to make the web better. It was going to be great, and I had the team to build it. Nine months of late nights and lost weekends later, we launched it! The problem: no one cared.

    A brilliant project isn't enough. I had to spread my vision, which was difficult for a developer like me. I learned quickly that even the best ideas needed to be sold. I had to build an audience, tell a story, and win over customers. Join me for a developer's guide to marketing. I'll share hard-fought lessons on page design, social networking, advertising, and analytics that will help you bring your ideas to the world.

    Speaker

    Todd Gardner

    Todd Gardner

    President, TrackJS

    The Future of Programming

    As professional developers, most of our time is spent thinking about the near future. We are cemented into our current workflow by policy, social cohesion, or pragmatic considerations. While we may be constantly seeking to improve, new tools and libraries come with a certain amount of cost. It is simply not practical to completely change the way we are doing things and so we end up with small incremental improvements.

    We will look at what could happen if we gave up these small incremental improvements and looked at radically different ways of programming. We will explore three languages, all currently in development, that are particularly interesting. The first, Idris, explores the idea of code that can guarantee that is free of all sorts of bugs. With Idris, we may in the future be able to have a proof that our code is secure. Next we will look at Eve, an experiment in language design that asks what our programs would be like if 1) code ordering didn't matter 2) all our programs were edited live 3) we could write the same systems in order of magnitude less code and less time. Finally we will explore Unison, a language that allows us to control thousand of machines in just a few lines of code. No longer would we need microservices, a new service is a just a line of code away.

    Speaker

    Jimmy Miller

    Jimmy Miller

    Senior Developer, healthfinch

    The Mindful Developer: The Science of Stress Management

    Does your career as a software developer cause you stress? What are you currently doing to manage the negative health effects of this stress? Software developers are uniquely predisposed to certain stress-related mental-health issues. The key problem is that we evolved to survive in a wilderness context; however, these same survival adaptations are now in direct conflict with our modern high-tech world.

    In this session, we will learn about the science of mindfulness for stress management. We’ll discuss practices like meditation, biofeedback, and neurofeedback. In addition, we will learn how we, as software developers, can use these practices to reduce stress, improve our mental health, and increase our focus. There will be NO new-age nonsense, mystical mumbo-jumbo, or quantum flapdoodle in this session… only evidence-based science… real science… in plain English.

    Speaker

    Matthew Renze

    Matthew Renze

    Data Science Consultant, Renze Consulting

    The Path to Senior Development

    What is a senior developer? How do you know if the person you're interviewing is one? How do you know if you are one? If you're certain that you're not, how do you get there?

    Attendees will learn that there's more to being a senior developer than mere technical mastery—and that there's more to technical mastery than just memorizing APIs. A senior developer must be curious, generous, and recognize that she is part of a larger whole.

    We'll talk about self-evaluation, personal growth, and traits to look for when hiring.

    Speaker

    Davey Strus

    Davey Strus

    Partner, Fretless

    Three challenges even Superman faces when engineering for Machine Learning

    Do we have to be Superman or Superwoman or Superperson when engineering for machine learning? The endless applications of machine learning is our technical kryptonite. As we learn one algorithm, another is introduced, master one machine learning platform and the industry invents one more. We aren't Superpeople! Or are we?

    To understand the challenges we encounter in machine learning, we return to the fundamentals. We'll start by defining the foundation of a machine learning pipeline, focusing on the area where you, the engineer, receive the handoff - a model. While details about the model matter, we'll treat it as a black box. From the model's input to it's output we'll confront three challenges to test our machine learning savvy.

    Conduit's Challenge: Scaling. What resources do we need to productionalize our model?

    Maaldor the Dark Lord's Challenge: Reproducibility. How is the model built continuously to ensure cotinuity of results?

    Evolution King's Challenge: Incorporating feedback. Conditions change and we want to offer our model a chance to learn new things, but how?

    Take off those glasses, folks, it's time to save the day!

    Speaker

    Lorena Mesa

    Lorena Mesa

    Machine Learning Engineer, Sprout Social, Inc.

    Transitioning to an Enterprise Architect role

    As someone who not too long ago decided to transition into a full time architect position, I wanted to present a frank discussion on transitioning from a developer to an architect.

    Some of the things I plan on discussing along the way include: * The different types of architects and what they do * What it means to be an architect vs a developer * How to transition your thinking from implementation to strategy * How do you know that you're providing value when it's not code * What should I learn about if I wanted to become an architect * What I wish I knew more about before I became an architect

    Speaker

    Aaron Guldberg

    Aaron Guldberg

    Technical Architect, FHLBI

    Type Driven Development with Idris

    Whether static or dynamic, types are a developer's best friend. They're invaluable--they provide us the feedback we need to reason about the correctness of our program. Typically a programmer begins by writing a complete program (i.e. syntactically complete program) and then uses the compiler/run-time to detect errors. Wouldn't it be nice if the tools not only told you when you had errors in your program, but helped you interactively write your code as well? Wish you had more expressive power in declaring your types so that they can relay the true intent of your program? Join me in exploring Idris--a functional, dependent-typed language with a set of tools and features that allow for a rich, interactive developer experience.

    Speaker

    Trevon Sutton

    Trevon Sutton

    Senior Software Engineer, SEP

    TypeScript: Making JavaScript Tolerable

    JavaScript has changed the world as we know it. It's applications are growing both in popularity and size. It is time that we give this language the respect it deserves. By leveraging TypeScript's type-system, your large JavaScript application code will be developed faster with fewer type-related bugs and allow for easier refactoring.

    TypeScript is a superset of JavaScript that scales. Allow me to show you why I believe TypeScript makes JavaScript tolerable. Discover how TypeScript is backwards compatible to ES3, yet lets developers use the latest in the ECMAScript standards today. Become the most productive JavaScript developer you can by relying on TypeScript.

    Unit Testing for Mere Mortals

    As a developer you take pride in your work (as you should). So it's frustrating when bugs happen. How do you prevent them? Well, the honest answer, is you can't - at least not 100%. But you can make sure your code does what you expect it to do! In this session, I show you TDD (Test Driven Development), BDD (Behavior Driven Development), and TED (Test Eventual Development). I will also show you their strengths and weakness, and how to decide which type (or combination of types) to use in different scenarios.

    Upgrade Yourself: Most Valued Developer

    In programming we know countless ways to solve the same problem. The same is true with professional growth. No two paths are alike and you control your own destiny. I'm thrilled to share my failed attempts and the lessons-learned. We'll clear your path - where every challenge is an opportunity. From blogging to speaking. From open-source contributions to stackoverflow Q/A. From attending conferences to organizing them. We will take on impostor syndrome and grow together! You'll see how becoming a social developer can launch your career to the next level.

    Using data to evaluate software engineers

    Evaluation can be a scary term. No one likes to be judged. However, how do you know if you are good at your job? How do you know that you are getting better? There are a lot of numbers you can pull from github, and some of them are even useful. We will discuss what metrics are available, what they mean, tools you can use to gather them, and how they relate to the product development process.

    This process is being used by Quantifi to evaluate and engage engineers as an input in their personal growth.

    Speaker

    Matt Brown

    Matt Brown

    CTO, Quantifi

    Using Google Analytics To Market Your Software Idea

    This presentation will provide some handy marketing tips for independent software developers. Through the use of analytics software, developers can learn some basic reporting and analysis ideas for marketing their software effectively online. The first few slides will give an overview of digital marketing trends, with the rest covering how to deploy Google Analytics via Google Tag manager & how to use the reports in the GA dashboard.

    Speaker

    Pierre DeBois

    Pierre DeBois

    Founder, Zimana

    Wait, What? Microsoft has created a Java IDE?

    There is a tremendous interest in lightweight editors and Microsoft Visual Studio Code is one of the newest and best. VS Code was created by Erich Gamma - one of the gang of four, and also the creator the creator of Eclipse. So it's not a surprise that VS Code has Java editor support. What is a surprise is how functional VS Code is for Java developers. It can automatically build Maven projects and run JUnit tests. In this session Jeff show how to configure and use VS Code for Java development.

    Speaker

    Jeff Butler

    Jeff Butler

    Java Practice Lead, DMI

    WebAssembly: A Closer Look

    There is a lot of buzz about WebAssembly right now, and for good reason. It's an exciting technology with a lot of promise. Let's have a look under the hood and figure out what makes WebAssembly tick.

    In this session, we'll examine the current state of development for WebAssembly, what its future looks like, and how you can get started developing for WebAssembly.

    Speaker

    Sasha Kotlyar

    Sasha Kotlyar

    Senior Software Engineer, Software Engineering Professionals

    What I've Learned From Featuring Over 0x100 Developers on My Podcast

    If you do anything for long enough, you'll eventually figure out how to do it pretty well and learn some tricks and lessons along the way. Interviewing software developers for a podcast is not an exception.

    During the course of doing more than 300 interviews over the course of more than two years and getting them to share stories, experiences, insights, tips, and tricks, I have been exposed to a great deal of wisdom and inspiration.

    Find out some of the key takeaways from a project unlike anything I've tackled before and walk with me through a journey of learning on my path of sharing audio interviews.

    Speaker

    What to Learn Next

    If software technologists were doctors, we would see the body grow a new organ every year. Instead, we adapt to the market needs. Those who know the latest js libraries, or the current APIs, or data visualization tools are in demand within organizations and as consultants. Dozens of solution exist in each catagory. How should you decide what to learn next?

    Speaker

    Dave Leininger

    Dave Leininger

    Solution Director, Fusion Alliance

    Why you should use React Native for your next mobile app

    Whether you’re a seasoned React.js developer or not, this talk will show how React Native should be a serious contender for writing your next mobile application.

    Starting with a basic overview of its tools and ecosystem we will discuss the awesomely well designed development experience of React Native (NO constant recompiling, Chrome-like dev tools, LIVE RELOADING!!!). We will the show how simple it is to get started by reusing components from your React web apps before finally exploring a live application and best practices.

    Speaker

    Gwendolyn Faraday

    Gwendolyn Faraday

    Application Developer, Fusion Alliance

    Write Better JavaScript with TDD

    JavaScript has become one of the most popular programming languages. Many of us who have been working with statically typed, OOP-orient languages like C# or Java have started working more and more in JavaScript. But while most of these developers who been using TDD in their previous language come to JavaScript, they often leave this practice behind. And it's understandable why. Developers who are familiar with unit testing in C# or Java can struggle with TDD in JavaScript. The language is different, the tooling is different, and all those cool frameworks that we use to build our applications can add complexity to the situation.

    The good news is that unit testing your JavaScript is easy, and most frameworks have testability already built in! In this session, you'll see how to make sure your JavaScript is easy to test. You'll learn about the most modern testing tools that help you write tests, even for JavaScript that uses frameworks like jQuery, Angular, and React. And you'll see how TDD can help you start writing better JavaScript.

    Speaker

    James Bender

    James Bender

    Freelance Developer