Session Schedule

Session Schedule2019-01-07T06:25:51+00:00

Tuesday

8:00 AM

Functional F# Programming in .NET – A success story

Presented by: Riccardo Terrell
Time: Tuesday 8:00 AM - 12:00 PM

Do you want to learn F# and Functional Programming? Well, you better start coding! Learning a new programming language is not easy, on top of reading a lot you need to practice even more. This workshop is designed to teach you some of the basics of F# and Functional Programming by combining theory...

Room: Indigo BayTrack: Programming PrinciplesTags: .NET, Functional ProgrammingFormat: PreCompilerLevel: Introductory and overview
1:00 PM

GIT: From beginner to Fearless

Presented by: Brian Gorman
Time: Tuesday 1:00 PM - 5:00 PM

This training is an introduction to GIT for source control. We'll take a look at getting started with GIT on our own machines, as well as working with GIT at public/private repositories on GitHub and/or BitBucket. Tools we'll use include BASH and VSCode GIT can scare people. It shouldn't. GIT is...

Room: Indigo BayTrack: Programming PrinciplesFormat: PreCompilerLevel: Intermediate

Wednesday

8:00 AM

The Demystifying Docker and Kubernetes DOJO

Presented by: Barry Tarlton, Michael Frayer
Time: Wednesday 8:00 AM - 12:00 PM

Want to be able to able to go from code to containers and then to a fully resilient, cluster managed environment like Kubernetes? Then this session is for you! This session will start with your code (or ours if you don't want to bring your own) and take you through the steps of packaging it as a...

Room: Indigo BayTrack: Programming PrinciplesTags: CloudFormat: PreCompilerLevel: Intermediate
1:00 PM

Java 9, 10 & 11 Workshop

Presented by: Christopher Judd
Time: Wednesday 1:00 PM - 5:00 PM

With the quick moving 6-month Java train releases, you like many Java developers and organizations may have remained on Java 8 waiting for the next Long-Term-Support (LTS) release. Well, Java 11 is here so it is time to begin the adoption and upgrading. Java 9 was a HUGE release with many impactful...

Room: Indigo BayTrack: Programming PrinciplesTags: JavaFormat: PreCompilerLevel: Intermediate

Thursday

8:00 AM

Python, the world beyond scripting

Presented by: Charles Yost
Time: Thursday 8:00 AM - 9:00 AM

Python is a wonderful language for writing simple scripts. But have you ever wondered how to go to the next level? What does it take to create a library, a desktop application, or a web application in Python? How does documentation, testing, packaging, and deployment work? What are all these crazy...

Room: Indigo BayTrack: Programming PrinciplesTags: PythonFormat: General SessionLevel: Introductory and overview

Quantity vs. Quality: Is less (code) really more?

Presented by: Anne Cahalan
Time: Thursday 8:00 AM - 9:00 AM

We all strive to write clean, concise, reusable code. Everyone's had a moment of looking at a 500-line file or a 50-line method and thinking, "This is just too much code!" There can be real joy in breaking a giant mess into small, tidy bits. But when does the quest for brevity lead us into a swamp...

Room: MangroveTrack: Programming PrinciplesFormat: General SessionLevel: Intermediate
9:15 AM

Intro to Machine Learning on the cheap and without a PhD in math: Overview

Presented by: Jim Wilson
Time: Thursday 9:15 AM - 10:15 AM

Machine learning has traditionally required a command of advanced mathematics, years of university training, and expensive hardware to implement. Now with better open source tools and online resources it’s easier than ever to create your own robust neural networks. Be it image recognition,...

Room: CypressTrack: Programming PrinciplesTags: Cloud, Big Data, Other, PythonFormat: General SessionLevel: Introductory and overview

Taking a byte of Java Bytecode

Presented by: Magnus Stahre
Time: Thursday 9:15 AM - 10:15 AM

Java, Scala, Groovy, Kotlin, JRuby, Jython, Clojure. What do all these languages have in common? They are all powered by Java Bytecode. With the current ecosystem of languages running on the JVM, it is becoming important to learn more about the least common denominator. This talk gives an...

Room: Portia/WisteriaTrack: Programming PrinciplesTags: JavaFormat: General SessionLevel: Introductory and overview
10:30 AM

API Design - The Right Way

Presented by: Jit Krishnamurthy
Time: Thursday 10:30 AM - 11:30 AM

APIs are at the core of how applications interact with each other. The first step in developing an API is to design it and ever since Eric Evans introduced Domain Driven Design (DDD) in his book ‘Domain Driven Design: Tackling Complexity in the Heart of Software’, it has been the go-to tool for...

Room: ZambeziTrack: Programming PrinciplesTags: Cloud, OtherFormat: General SessionLevel: Introductory and overview
11:45 AM

Hobby Projects Are Awesome!

Presented by: Joel Byler
Time: Thursday 11:45 AM - 12:45 PM

There you are, enjoying a hobby that you love. One that gets you away from your screens and keyboard. Then out of nowhere an idea comes to mind, maybe its spurred by a problem that you encountered or a way that you could improve on a technique, you pull from your experiences and decide to start a...

Room: OrangeTrack: Programming PrinciplesTags: Design (UI/UX/CSS), Other, Soft Skills/BusinessFormat: General SessionLevel: Introductory and overview

Modular Monolith: the Best of Both Worlds

Presented by: Seth Kraut
Time: Thursday 11:45 AM - 12:45 PM

First, everyone wrote monoliths, but monoliths invariably become a big ball of mud. Now, microservices are all the rage, but they come with significant complexity. Modular monoliths combine the simple development and deployment of monoliths with much of the decoupling of microservices. This session...

Room: Portia/WisteriaTrack: Programming PrinciplesTags: .NET, JavaFormat: General SessionLevel: Introductory and overview
1:00 PM

Hold Up, Wait a Minute, Let Me Put Some Async In It

Presented by: Matthew Jones
Time: Thursday 1:00 PM - 2:00 PM

The introduction of async/await to C# has irrevocably changed how .NET developers created their applications. But what about older applications? How can they get the async goodness? In this code-heavy session, we'll take a "older" .NET web app which has no asynchronous code and slowly refactor it...

Room: CypressTrack: Programming PrinciplesTags: .NETFormat: General SessionLevel: Intermediate
3:30 PM

The Immutable Laws of Software and Life: Code Accordingly

Presented by: Cory House
Time: Thursday 3:30 PM - 4:30 PM

The first Law of Ecology: you can never merely do one thing. Actions have side-effects. In this session, we'll explore how changes in software design can have unexpected, profound impacts. In this story-based session, I'll reference both popular and little-known "laws" of computing and life. I'll...

Room: ZambeziTrack: Programming PrinciplesTags: Design (UI/UX/CSS), Other, Soft Skills/BusinessFormat: General SessionLevel: Introductory and overview

Fun, Friendly Computer Science

Presented by: Mercedes Bernard
Time: Thursday 3:30 PM - 4:30 PM

Computer science concepts like Big O Notation, set theory, data structures, and principles of object-oriented programming sound intimidating, but they don’t have to be! This talk will dive into some fundamental computer science topics and debunk the myth that only ‘real’ programmers know...

Room: Salon ETrack: Programming PrinciplesTags: JavascriptFormat: General SessionLevel: Introductory and overview

TerseScript: JavaScript with 6 characters or less

Presented by: Mike Hand
Time: Thursday 3:30 PM - 4:30 PM

Let's explore the unique properties of JavaScript and learn how to write ANYTHING using only brackets, parentheses, plus, and bang. When you go back to using your full keyboard, you'll do it with a better understanding of JavaScript and some of it's, um, "features." Some of these hacks should NOT be...

Room: RosewoodTrack: Programming PrinciplesTags: JavascriptFormat: General SessionLevel: Intermediate
4:45 PM

Everything I Needed to Know About Debugging I Learned in Elementary Physics

Presented by: Nate Taylor
Time: Thursday 4:45 PM - 5:45 PM

Has there ever been a time where you got a bug report and you didn’t even know where to start? Have you ever felt overwhelmed with how code is behaving? You’re expecting one thing and it does the exact opposite? Situations like these can be some of the more frustrating aspects of software...

Room: Salon ATrack: Programming PrinciplesTags: OtherFormat: General SessionLevel: Introductory and overview

Friday

8:30 AM

Solving the Boolean Identity Crisis

Presented by: Jeremy Fairbank
Time: Friday 8:30 AM - 9:30 AM

While powerful in its simplicity and important to computation, the boolean can be limiting in applications. In this talk, briefly explore the history of boolean logic in computation and look at how booleans can become misused in programming languages. Explore examples where booleans obscure the...

Room: CypressTrack: Programming PrinciplesTags: Functional Programming, Javascript, OtherFormat: General SessionLevel: Introductory and overview

The best code, is the code never written.

Presented by: Daniel Davis
Time: Friday 8:30 AM - 9:30 AM

In the modern realms of software where getting to market fast and with minimal issues is a must in order to stay competitive, we need all the advantages we can get. One such advantage is to limit the amount of actual code produced and shipped. During this session we'll explore some of the practices,...

Room: Salon ATrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overview

The Creative Process of Coding

Presented by: Charlie Sweet
Time: Friday 8:30 AM - 9:30 AM

The process of writing software is often misunderstood. When you write business software you are not doing science, but rather art. Your job is not to build, but rather to design. Designing good software is about more than writing code. Knowing what code to write requires empathy and good...

Room: Portia/WisteriaTrack: Programming PrinciplesTags: Soft Skills/BusinessFormat: General SessionLevel: Introductory and overview
9:45 AM

Unit Testing Strategies & Patterns in C#

Presented by: Bill Dinger
Time: Friday 9:45 AM - 10:45 AM

Learn common patterns and strategies to effectively unit test your code in C#. We’ll go over design principles and ways to effectively ensure your code can be easily tested as well as how to use common testing tools such as Moq, Autofixture, & MsTest to help remove some of the drudgery of testing....

Room: CypressTrack: Programming PrinciplesTags: .NETFormat: General SessionLevel: Advanced
11:00 AM

An Introduction to Quantum Programming

Presented by: Matt Norby
Time: Friday 11:00 AM - 12:00 PM

Quantum computers can solve some classes of problems much faster than conventional computers. But the terminology can be confusing. What are qubits, superposition, and entanglement? And how can you harness them to write programs? In this session, you will learn the language and concepts of...

Room: ZambeziTrack: Programming PrinciplesTags: OtherFormat: General SessionLevel: Introductory and overview

[CANCELLED] Watch This Talk Before You Go Go

Presented by: John Reese
Time: Friday 11:00 AM - 12:00 PM

Session is cancelled. We apologize for the inconvenience.

Room: Portia/WisteriaTrack: Programming PrinciplesTags: OtherFormat: General SessionLevel: Introductory and overview
12:15 PM

Practical Functional Programming

Presented by: Jeremy Fairbank
Time: Friday 12:15 PM - 1:15 PM

Functional programming is more than just math and monads. Functional programming empowers developers to solve real problems with safe, predictable, and maintainable code. In this talk, discover the basics of functional programming and how to apply functional concepts in a practical manner. Learn how...

Room: NileTrack: Programming PrinciplesTags: Functional Programming, Javascript, OtherFormat: General SessionLevel: Introductory and overview
2:45 PM

Git Back to Basics

Presented by: Angel Thomas
Time: Friday 2:45 PM - 3:45 PM

Have you written code that worked, then broke it, only to not remember what the working code was? Git, a version control application could be the solution you are looking for. Git can help you to track changes in your projects, go back to when your code is working, or even find out where it broke....

Room: Salon HTrack: Programming PrinciplesTags: OtherFormat: General SessionLevel: Introductory and overview

Designing a DSL with Kotlin

Presented by: Nicolas Fränkel
Time: Friday 2:45 PM - 3:45 PM

Although Kotlin has made a huge impact on Android, it’s equally good on the server side. As Domain-Specific Languages are constrained by the language they run on, Kotlin frees developers from Java fluent builders to propose something better. Using the Hazelcast configuration API as an example,...

Room: RosewoodTrack: Programming PrinciplesTags: Java, OtherFormat: General SessionLevel: Introductory and overview
4:00 PM

Test-driven development: save your time, save your sanity, write great code fast

Presented by: Paul Roub
Time: Friday 4:00 PM - 5:00 PM

For the skeptical: Both new and more-seasoned devs -- especially solo practitioners -- can have a lot of misconceptions about TDD. Mostly of the "it's extra work, it's extra code, I can't ship tests, why would I test something simple and obvious" variety. But magic happens when the light bulb...

Room: Indigo BayTrack: Programming PrinciplesTags: Other, TestingFormat: General SessionLevel: Intermediate