Tuesday
Hands On Threat Modeling Workshop
Presented by: Robert Hurlbut
Time: Tuesday 8:00 AM - 12:00 PMThreat modeling is a way of thinking about what could go wrong and how to prevent it. Instinctively, we all think this way in regards to our own personal security and safety. When it comes to building software, some software shops either skip the important step of threat modeling in secure software...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: PreCompilerLevel: IntermediateGIT: From beginner to Fearless
Presented by: Brian Gorman
Time: Tuesday 1:00 PM - 5:00 PMThis 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: IntermediateReactive Extensions Without Marbles
Presented by: Eric Smith
Time: Tuesday 1:00 PM - 5:00 PMReactiveX is an exciting technology that's rapidly becoming pervasive, with implementations in Java, Swift, JavaScript and more. It has use cases from asynchronous calls to UI development, but unfortunately most tutorials and explanations are filled with theory and marble diagrams. Trying to get...
Room: OrangeTrack: ArchitectureFormat: PreCompilerLevel: IntermediateiOS Application Security Testing
Presented by: Hans Weisheimer
Time: Tuesday 1:00 PM - 5:00 PMThis hands-on session is aimed at mobile app developers, QA testers, aspiring security testers, and other suspicious persons. Modern mobile app development abstracts away most low-level interaction with the operating system. It is common to rely on third-party modules to handle sensitive data or...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: PreCompilerLevel: IntermediateTech Debt Be Gone! Time to Refactor JavaScript
Presented by: Joe Morgan, Laurie Barth
Time: Tuesday 1:00 PM - 5:00 PMIt’s been a battle, but the code is finally working. It’s time to clean it up, but not so fast, something else is on fire and the code has to be pushed as it is. Whenever there is time to refactor something else comes up. Of course, this doesn’t just happen once. A quick change here. A little...
Room: Sagewood / ZebrawoodTrack: Software QualityFormat: PreCompilerLevel: IntermediateCodemash VoiceHack 2020
Presented by: Jeff Blankenburg
Time: Tuesday 1:00 PM - 5:00 PMThis is a pre-compiler for learning how to build voice applications using Alexa. We will cover things like intents, sample utterances, handlers, and voice design principles. You'll learn how to use AWS Lambda functions, talk to APIs, and even how to make some money. But this is also a kickoff to...
Room: Salon ATrack: HardwareFormat: PreCompilerLevel: IntermediateHadoop Essentials
Presented by: Eric Richardson
Time: Tuesday 1:00 PM - 5:00 PMBig Data and Cloud platforms have their origins in Hadoop. Learn the fundamentals of HDFS, Map Reduce and Yarn the three core components of Apache Hadoop. You will start a sandbox cluster, interact with HDFS, learn how HDFS saves data and why it does it that way. MapReduce is an important...
Room: Salon HTrack: DataFormat: PreCompilerLevel: IntermediateBuilding a Full CRUD Application in Excel with VBA and SQL Integration
Presented by: Derek Mulhausen
Time: Tuesday 1:00 PM - 5:00 PMIn this talk, we will build a full application from scratch in Excel to store customer discounts in Excel. We will start with recording a macro to quickly prototype some of our actions and then dig into the underlying code to polish the formatting and produce a product that can be put into...
Room: Salon ETrack: UI/DesignFormat: PreCompilerLevel: IntermediateMay the Turtle be With You
Presented by: Adrienne Tacke
Time: Tuesday 2:30 PM - 3:30 PMDid you know you can draw and create simple games with Python's built-in Turtle module? No? Well you're in luck! In this session, I'll introduce you to the Turtle module and all the cool things you can do with it! We'll: - Create drawings with Python code - Make a new Turtle friend - Develop and...
Room: AcaciaTrack: KidzMashFormat: KidzMash SessionzLevel: IntermediateWednesday
Building an educational game with .NET Core and Unity3D (Workshop)
Presented by: Johnny Hooyberghs
Time: Wednesday 8:00 AM - 12:00 PMIf you are waiting for a deep dive into .NET Core, the Microsoft Compiler Platform and Unity3D this workshop is for you! No high-level tech demos, but a real-life application that is used in schools. Building an educational game, with robots fighting to the death, from scratch, will be a blast. This...
Room: ZambeziTrack: ArchitectureFormat: PreCompilerLevel: IntermediateThe Demystifying Docker and Kubernetes DOJO
Presented by: Barry Tarlton, Michael Frayer
Time: Wednesday 8:00 AM - 12:00 PMWant 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 PrinciplesFormat: PreCompilerLevel: IntermediateDecision Making in the Face of Uncertainty
Presented by: Gary Short
Time: Wednesday 8:00 AM - 12:00 PMDecision making in the face of uncertainty is one of the hardest things to do. In this pre-compiler session, we'll borrow methods from machine learning, statistics, trading and computer science to compose a methodology which will allow you to make the best decision possible given the evidence you...
Room: CypressTrack: Project Leadership/Soft SkillsFormat: PreCompilerLevel: IntermediateGet Progressive with it
Presented by: Matthew LaForest
Time: Wednesday 8:00 AM - 12:00 PMResponsive web design! Mobile first! Hybrid apps! We are continuously bombarded with new ideas about the best way to develop a new application. For a small team, effectively delivering across many platforms can be a problem, but delivering a hybrid app frequently falls into an uncanny valley...
Room: OrangeTrack: Web/Front-EndFormat: PreCompilerLevel: IntermediateApplication Security, Basic, Intermediate, Advanced
Presented by: Bill Sempf
Time: Wednesday 8:00 AM - 12:00 PMBill will be joining us to teach a dynamic course to help us think like an attacker and give us all the coding tips we need to stop them cold in their tracks. Even the most experienced developers are sure to pick up some new tips and tricks. This hands-on half-day workshop will have something for...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: PreCompilerLevel: IntermediateKafka: Build, Deploy, and Monitor Your First Real-World Application
Presented by: Justin Pihony
Time: Wednesday 8:00 AM - 12:00 PMCompanies nowadays are finding it critical to be able to gather and analyze massive amounts of disparately-sourced data, quickly and reliably. By diving into the fundamentals of Apache Kafka, you will learn how it can be more than a superior, distributed messaging system, but also a platform to...
Room: Salon HTrack: DataFormat: PreCompilerLevel: IntermediateMaking Reality Virtual: Simulating Experiences with VR Prototyping
Presented by: Scott Showalter
Time: Wednesday 8:00 AM - 12:00 PMTake the Red Pill, and let's dive into the mind-bending Matrix that is Virtual Reality prototyping. Not just for gaming (though that's cool too), a new dimension of experience simulation is now open to designers of software as well as physical products, to observe customer interaction and gather...
Room: Salon ETrack: UI/DesignFormat: PreCompilerLevel: IntermediateJava 9, 10 & 11 Workshop
Presented by: Christopher Judd
Time: Wednesday 1:00 PM - 5:00 PMWith 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 PrinciplesFormat: PreCompilerLevel: IntermediateCoaching Katas - In Search of The Answer to the Agile Kobayashi Maru
Presented by: Faye Thompson, Charles Husemann
Time: Wednesday 1:00 PM - 5:00 PMThese virtues are formed in man by his doing the actions. -- Aristotle A code kata is an exercise in which developers hone their programming skills through practice and repetition. This workshop is intended to do the same thing for agilists by providing them with difficult real-world scenarios to...
Room: CypressTrack: Project Leadership/Soft SkillsFormat: PreCompilerLevel: IntermediateServer Side Swift Saves CodeMash: Breaking free of the phone
Presented by: Anne Cahalan
Time: Wednesday 1:00 PM - 5:00 PMCodeMash is a whirlwind of great workshops, talks, and experiences. If only you could capture these insights and save them forever... Swift can help -- but we're NOT going to build an iOS app! Server Side Swift has gone from a fun idea to a robust, mature platform for moving data from the backend...
Room: NileTrack: MobileFormat: PreCompilerLevel: IntermediateBuilding a DevSecOps Pipeline
Presented by: Gene Gotimer
Time: Wednesday 1:00 PM - 5:00 PMThe release date is a week away. Development is complete. The code works, and everything looks good. Marketing is ready with the media blitz. Our customers are waiting to get their hands on the new features and are sure to give us good feedback. The only step left is to get the security group to...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: PreCompilerLevel: IntermediateEnsure Your Users Experience - A Trip Around User Validation Tools
Presented by: Rick Clymer, Aaron Glass
Time: Wednesday 1:00 PM - 5:00 PMIn today’s fast feedback world, getting our product in front of users often is incredibly important. But how do we know our product is ready to go in front of our users. Sure, we have 1,000’s of unit and integration tests on each of our microservices, but what happens when we put them all...
Room: Sagewood / ZebrawoodTrack: Software QualityFormat: PreCompilerLevel: IntermediateHands-on Infrastructure as Code
Presented by: Andrew May
Time: Wednesday 1:00 PM - 5:00 PMLearn the benefits of Infrastructure as Code (IaC) in this workshop where you'll provision resources in AWS using both CloudFormation and Terraform. Learn the joy of creating Infrastructure in a repeatable manner with a single command line replacing a hundred clicks in the web console.
Room: Salon ATrack: DevOpsFormat: PreCompilerLevel: IntermediateMicro Frontends: Breaking up the Frontend Monolith
Presented by: Kito Mann
Time: Wednesday 1:00 PM - 5:00 PMOver the past several years we have embraced microservices as a way to “break up the monolith” and reduce complexity, allowing teams to focus on specific areas of functionality, while providing more flexible scaling and better fault isolation. However, for most of us, the front-end has remained...
Room: Salon DTrack: Web/Front-EndFormat: PreCompilerLevel: IntermediateThursday
Technical debt must die - Communicating code to business stakeholders
Presented by: Matt Eland
Time: Thursday 8:00 AM - 9:00 AMOur software sucks. We're up to our necks in bugs and technical debt, yet we often seem to hit roadblocks explaining things in ways that bring about meaningful change. In this session you'll learn to gather, analyze, and interpret data in order to create effective presentations to communicate...
Room: ZambeziTrack: Project Leadership/Soft SkillsFormat: General SessionLevel: IntermediateOpen Source XAML Takes You Places!
Presented by: Sam Basu
Time: Thursday 8:00 AM - 9:00 AMXAML started life as a simple thin UI markup layer, but has had a surprisingly eventful history over years – from phenomenal rise to teetering on life support. Today, XAML powers a lot of app platforms and seems poised for success going forward. And almost all of XAML application stacks are now...
Room: NileTrack: MobileFormat: General SessionLevel: IntermediateThe UX of Configuration Files
Presented by: Eemeli Aro
Time: Thursday 8:00 AM - 9:00 AMDevelopers are people too, and should be your primary concern when designing an interface for them to configure your tools and libraries. In other words, there are better options than JSON available, but they each come with associated costs and limitations. How well do JSON5, YAML and TOML play with...
Room: Sagewood / ZebrawoodTrack: UI/DesignFormat: General SessionLevel: IntermediateQuantity vs. Quality: Is less (code) really more?
Presented by: Anne Cahalan
Time: Thursday 8:00 AM - 9:00 AMWe 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: IntermediateA .NET Data Access Layer You're Proud of (Without Entity Framework)
Presented by: Jonathan "J." Tower
Time: Thursday 9:15 AM - 10:15 AMIf you're a .NET developer, it almost goes without saying that you use Entity Framework as part of the data access code on your software projects. Sometimes, EF is just right for the job, but other times you want something more simple, with better control of the generated SQL queries, and more...
Room: ZambeziTrack: DataFormat: General SessionLevel: IntermediateAngular and The Case for RxJS
Presented by: Sandi Barr
Time: Thursday 9:15 AM - 10:15 AMWhen choosing Angular to build a front end app, it can seem like RxJS is just one more thing to learn, and there’s no easy transition coming from another framework. But RxJS is efficient and expressive! We declare relationships between entities, describing the what not the how. The basic sequence...
Room: OrangeTrack: Web/Front-EndFormat: General SessionLevel: IntermediateGoing crazy with CQRS
Presented by: Seth Kraut
Time: Thursday 9:15 AM - 10:15 AMCQRS stands for Command Query Responsibility Segregation, which doesn’t clarify that much. CQRS is a high performance, event oriented flavor of Domain Driven Design. CQRS challenges our normal conception of design. By separating read and write logic, this architecture unlocks unique possibilities....
Room: Sagewood / ZebrawoodTrack: ArchitectureFormat: General SessionLevel: IntermediateUsability Starts With Accessibility
Presented by: Patrick McSweeny
Time: Thursday 9:15 AM - 10:15 AMFor many web developers, accessibility is an afterthought, if they even think about it at all. What they fail to realize is that planning for accessibility from the beginning can actually enhance the design process rather than hindering it, with the end result being more usable by everyone. This...
Room: Salon HTrack: UI/DesignFormat: General SessionLevel: IntermediateBeware of dark clouds on the horizon
Presented by: Andrew May
Time: Thursday 9:15 AM - 10:15 AMThere are many benefits to be gained in moving your infrastructure to the cloud, but many more ways in which it can go horribly wrong. Will yours be the next company to expose confidential information in a public S3 bucket? Will your cloud account become unmanageable and expensive because all the...
Room: Salon ETrack: DevOpsFormat: General SessionLevel: IntermediateVue 3.0 Smaller, Faster & Stronger
Presented by: Dan Vega
Time: Thursday 10:30 AM - 11:30 AMVue.JS has quickly become one of the most popular JavaScript frameworks around. The Vue Core Team is getting ready to release the third major version of the framework and it's packed with new features and performance updates. In this presentation, I will show off some of those new features such...
Room: CypressTrack: Web/Front-EndFormat: General SessionLevel: IntermediateAntifragile Teams
Presented by: Charlie Sweet
Time: Thursday 10:30 AM - 11:30 AMSoftware development is an activity that’s fraught with complexity, ambiguity, and therefore risk. Many organizations attempt to mitigate that risk through stringent processes, but there is a better way. In nature, there are three types of systems. 1. Fragile systems that break under stress,...
Room: OrangeTrack: Project Leadership/Soft SkillsFormat: General SessionLevel: Intermediate[CANCELLED] Adding Search Capabilities to your Applications with Elastic Search
Presented by: Rod Paddock
Time: Thursday 10:30 AM - 11:30 AMThis session has been cancelled. We apologize for any trouble this causes.
Room: Sagewood / ZebrawoodTrack: DataFormat: General SessionLevel: IntermediateMake More 💰 Money with Less 🛠 Effort: 🧪 Experimentation Before Implementation
Presented by: Scott Showalter
Time: Thursday 10:30 AM - 11:30 AMDeveloping apps is time consuming, with little guarantee of success. The Web, App Store, Google Play and beyond are littered with apps making low or no revenue because they don't solve problems people actually care about. Before you build your “killer” ap, how can you truly know beyond the...
Room: Portia/WisteriaTrack: MobileFormat: General SessionLevel: IntermediateConducting Humane Code Reviews
Presented by: Adrienne Tacke
Time: Thursday 11:45 AM - 12:45 PMCode reviews are a must in a proper development workflow, but what happens when performing or receiving one becomes as fun as getting a root canal? Instead of contributing meaningful suggestions, developers often use these reviews as an opportunity to rehash old arguments or show their...
Room: CypressTrack: Project Leadership/Soft SkillsFormat: General SessionLevel: IntermediateBringing Order to Chaos
Presented by: Scott Connerly
Time: Thursday 11:45 AM - 12:45 PMSo, you find yourself coding in a code base that has some warts. OK, let's be honest, its a steaming pile of gum and toothpicks you're afraid to touch lest it might fall apart. How do you get from there to ... anywhere, let alone viable, architecturally useful, and stable? In this talk, we'll...
Room: NileTrack: ArchitectureFormat: General SessionLevel: IntermediateSecuring Your API Endpoints - A Practical Authentication Guide
Presented by: Seth Petry-Johnson
Time: Thursday 11:45 AM - 12:45 PMIt's never been easier to expose services over HTTP. It's also never been easier to inadvertently expose security holes via those same services. This session is designed for the average developer/architect that wants a brief overview of API security without getting into the weeds of cryptography...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: General SessionLevel: IntermediateAutomating Your Automation: The Care and Feeding of Jenkins
Presented by: Jeff McKenzie
Time: Thursday 11:45 AM - 12:45 PMIf you're like 70% of continuous integration and delivery users out there, you're using Jenkins, the powerful and popular automation server. But how do you know you're doing it right? Are you getting the most out of the strategies you've chosen? In this session you'll learn how best to manage your...
Room: Salon HTrack: DevOpsFormat: General SessionLevel: IntermediateHold Up, Wait a Minute, Let Me Put Some Async In It
Presented by: Matthew Jones
Time: Thursday 1:00 PM - 2:00 PMThe 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 PrinciplesFormat: General SessionLevel: IntermediatePostman Delivers! A Deep Dive into API Testing.
Presented by: Bob Crowley
Time: Thursday 1:00 PM - 2:00 PMWhether you are a tester or a developer of HTTP API’s, chances are you are already using Postman to some degree. Chances are also that you are missing out on some of the advanced goodness. Using only features of the free version, this session introduces you to effective use of these features to...
Room: OrangeTrack: Software QualityFormat: General SessionLevel: IntermediateThe Agile Designer: Aligning Dual-track UX and Development to Balance the Tactical and Strategic, Mi
Presented by: Jenna Chamra
Time: Thursday 1:00 PM - 2:00 PMProduct teams everywhere are embracing Agile. It’s no wonder why: Agile creates better transparency, alignment and speed to market. The problem is, Agile was originally created for software developers. Design teams which try to adopt Agile often find themselves falling into “Faux-gile” or...
Room: Salon HTrack: UI/DesignFormat: General SessionLevel: IntermediateSell Yourself With a Software Quality Portfolio
Presented by: Aaron Glass
Time: Thursday 1:00 PM - 2:00 PMFinding new job opportunities can be stressful and intimidating. Talking about yourself might not be in your domain. Questions of uncertainty may arise. How do I make myself more marketable? How do I separate myself from the rest of the pack? How do I keep myself fresh? The goal of this talk is...
Room: Salon ETrack: Software QualityFormat: General SessionLevel: IntermediateBy Our Powers Combined: Observability for Developers
Presented by: Aaron Aldrich
Time: Thursday 1:00 PM - 2:00 PMThe world of maintaining applications is shifting. Our Systems Administrators aren't monitoring our application servers, it's the SREs determining SLIs and SLOs for our Micro-Services and making sure our Cloud-Distributed systems are Observable in near-real time. It's enough for buzzword burnout....
Room: Portia/WisteriaTrack: DevOpsFormat: General SessionLevel: IntermediateUsing Python to Develop a Discord Bot
Presented by: Raphael Gotfryd
Time: Thursday 1:30 PM - 3:25 PMDiscord is the best way to communicate with your gamer friends. But what if I told you that you could create games with it? Well, you can in the form of a Discord bot. In this session we will go over many details about the Discord bot, and have a code along where you can make your own bot game for...
Room: IronwoodTrack: KidzMashFormat: KidzMash DivezLevel: IntermediateWhat's New in Xamarin Forms 4.0
Presented by: Jason Awbrey
Time: Thursday 3:30 PM - 4:30 PMXamarin Forms has evolved significantly since it's debug almost 5 years ago. The recently released v4 includes many awesome new features. In this session we'll look at the latest and greatest, including Shell, Visual Design, CollectionView and CarosuelView. We'll demonstrate hands-on examples of...
Room: CypressTrack: MobileFormat: General SessionLevel: IntermediateUser Interviews: More than Just a Conversation
Presented by: Ash Banaszek
Time: Thursday 3:30 PM - 4:30 PMAnyone who can carry a conversation can interview users, right? Not so. Gaining insight into user requirements, needs, and frustrations is a nuanced process. Without the proper training, even well-meaning researchers can lead, bias, and manipulate users into getting the answers researchers...
Room: OrangeTrack: UI/DesignFormat: General SessionLevel: IntermediateA Series of Unfortunate Events - What Happens When Your App is Hacked.
Presented by: Joe Kuemerle
Time: Thursday 3:30 PM - 4:30 PMMany of us know about the various security checklists and how we should write more secure code. In this session we will move beyond top 10 lists and dive into the world of how attackers compromise systems and how they use those compromises to exploit both individuals and companies. You will see...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: General SessionLevel: IntermediateCoaching & Communicating with Diverse Teams
Presented by: Kiera Prioleau
Time: Thursday 3:30 PM - 4:30 PMDon’t worry; this isn’t the standard lecture on what diversity means and why it matters. Research shows that diverse teams are more innovative, productive, and just darn interesting. Diversity encompasses more than gender and race, which creates challenges for development team members and...
Room: Salon ATrack: Project Leadership/Soft SkillsFormat: General SessionLevel: IntermediateFast, Reliable, Powerful IoT Projects Built on Elixir With Nerves
Presented by: Joel Byler
Time: Thursday 3:30 PM - 4:30 PMElixir was built to deliver low-latency, distributed and fault-tolerant systems, this is great for large enterprise applications but can also be leveraged to build impressive IoT applications on small single board linux machines like (but not limited to) a Raspberry Pi. Nerves was built to give...
Room: MangroveTrack: HardwareFormat: General SessionLevel: IntermediateSay No To Accidental Architecture! Code Your Design Systems Instead
Presented by: Burton Smith
Time: Thursday 3:30 PM - 4:30 PMAre you still rockin' a single "styles.css" file in or project or have styles scattered throughout your project? Do you find yourself fighting to override styles or throw the "!important" property around a lot? Does your project have 20 different kinds of buttons and you don't know why or even where...
Room: Portia/WisteriaTrack: ArchitectureFormat: General SessionLevel: IntermediateTerseScript: JavaScript with 6 characters or less
Presented by: Mike Hand
Time: Thursday 3:30 PM - 4:30 PMLet'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 PrinciplesFormat: General SessionLevel: IntermediateVertical Slice Architecture
Presented by: Jimmy Bogard
Time: Thursday 4:45 PM - 5:45 PMMoving from a layered architecture to a vertical slice architecture can be a bit daunting. We remove abstractions, complex structures, and focus building on the axis of change, then what's next? What new structures, patterns, and policies will need to be introduced in this style of architecture? How...
Room: ZambeziTrack: ArchitectureFormat: General SessionLevel: IntermediateTwelve Spins on User Experience
Presented by: Keith Instone
Time: Thursday 4:45 PM - 5:45 PMWhat is “user experience,” really? Sure, it’s that feeling people get when they interact with your software, but the term UX is being used for more than that, in confusing ways. “We need some UX magic before we launch” “The UX team just gave us the designs, so let’s start...
Room: CypressTrack: UI/DesignFormat: General SessionLevel: IntermediateDevOps as a Force Multiplier for Agile
Presented by: Nate Berent-Spillson
Time: Thursday 4:45 PM - 5:45 PMSo your development team uses Agile, but you keep running into process constraints because the rest of the organization is wedded to the status quo? In retros, you’re constantly coming up against inefficient, manual operations? Every step of building a software product eats away at your...
Room: NileTrack: DevOpsFormat: General SessionLevel: IntermediateApp Deco - Applied Design Thinking for Secure Development
Presented by: Wolfgang Goerlich
Time: Thursday 4:45 PM - 5:45 PMUsability versus security is stupid. It forces us to choose one or the other. It excuses security breaches under the guise of usability. It automatically pits us against them, builders against breakers, developers against defenders. A better approach is to view security like usability: they happen...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: General SessionLevel: IntermediateHuman Readable JavaScript: Using ES2015+ to Craft Better Code
Presented by: Laurie Barth
Time: Thursday 4:45 PM - 5:45 PMLove JavaScript? Awesome! Hate JavaScript? That's ok! In the past, JavaScript hasn’t always been easy to read; lots of dollar signs and slick one-liners do not a sustainable, high-longevity language make. The good news is that things have gotten better! Lots of ECMAScript 2015 (and beyond)...
Room: Sagewood / ZebrawoodTrack: Web/Front-EndFormat: General SessionLevel: IntermediateHorizontal Scaling of Graph Databases
Presented by: Ryan Hendrickson
Time: Thursday 4:45 PM - 5:45 PMA very real problem is choosing what data to prioritize when storing it in a graph database. Most graph databases, including Neo4J, the number 1 graph database according to db-engines.com, do not scale horizontally. This leaves the size of the database constrained to how much disk space and ram is...
Room: Salon ETrack: DataFormat: General SessionLevel: IntermediateTesting your UI Components
Presented by: Avindra Fernando
Time: Thursday 4:45 PM - 5:45 PMWhen our clients give us kudos for releasing high quality applications, it makes us happy. To achieve great levels of quality, we need to thoroughly test our applications. But we know that some forms of testing can be expensive and tedious at times. Unit and integration tests help overcome some of...
Room: RosewoodTrack: Web/Front-EndFormat: General SessionLevel: IntermediateFriday
Well.. that's ONNX-pected
Presented by: Ron Dagdag
Time: Friday 8:30 AM - 9:30 AMThe world of machine learning frameworks is complex. What if we can use the lightest framework for inferencing on edge devices? That’s the idea behind ONNX format. Attend this session and find out how to train models using the framework of your choice, save or convert models into ONNX, and deploy...
Room: RosewoodTrack: DataFormat: General SessionLevel: IntermediateHave More Fun in Minecraft, With Redstone!
Presented by: Nathan Arthur
Time: Friday 9:00 AM - 10:00 AMHave you ever wanted to build your own redstone machines in Minecraft? Come build cool redstone doors, traps, weapons, and farms with Benjamin (age 9) and Liam (age 7). But we won't just build them - we'll learn how they work - so you can build your own inventions at home! Please bring a computer,...
Room: AcaciaTrack: KidzMashFormat: KidzMash SessionzLevel: IntermediateBurn It Down and Start Again: Principles of Modern JavaScript
Presented by: Joe Morgan
Time: Friday 9:45 AM - 10:45 AMHeard about the latest JavaScript syntax? Seems like a day doesn’t pass without a language update. And with all the focus on syntax changes, it’s easy to miss the subtle principles driving JavaScript. Modern JavaScript doesn’t just have new tools, it’s composed differently. Don’t use a...
Room: ZambeziTrack: Web/Front-EndFormat: General SessionLevel: IntermediateContext is King: Finding Service Boundaries
Presented by: Derek Comartin
Time: Friday 9:45 AM - 10:45 AMAre you having trouble defining service boundaries? We know there are benefits in splitting up a complex system, such as more focused models and modular deployments. Defining the correct service boundaries is incredibly important but can be pretty tricky. When defined correctly, the model feels...
Room: NileTrack: ArchitectureFormat: General SessionLevel: IntermediateAPI Design for ETL - Lessons from Nearly 100 Data Integrations in the Wild
Presented by: Dan Mosora
Time: Friday 9:45 AM - 10:45 AMIn the API Economy, users increasingly want to analyze and connect more of their business data, from small startup shops to multinational corporations. Thinking about making data available through an API? There are innumerable ways to slice the problem. How do you implement pagination? What data...
Room: Sagewood / ZebrawoodTrack: DataFormat: General SessionLevel: IntermediateBuilding a super performant GossipGirl.com in Gatsby in under 50 Minutes
Presented by: Jennifer Wadella
Time: Friday 9:45 AM - 10:45 AMHey, Upper East Siders, Gossip Girl here bringing you the scoop on rapidly building static websites in React. I don’t know about you, but my site is in a major need of an overhaul, so we’re going to rebuild it in under 50 minutes using GatsbyJS. We’ll make SEO look hot and blow some minds with...
Room: Salon HTrack: Web/Front-EndFormat: General SessionLevel: IntermediateOwning Your Experience: Talking about Mental Health In the Workplace
Presented by: Arthur Doler
Time: Friday 9:45 AM - 10:45 AMYour thoughts and your emotions affect your work, no matter how much you pretend that you can leave them at the door of your workplace. It's easy to deny your own experience the importance it deserves, especially if it's only inside your own head. But boxing it all away because you have "work to do"...
Room: Salon DTrack: Project Leadership/Soft SkillsFormat: General SessionLevel: IntermediateHow Exploding Birthday Cakes and Other CRAZY Projects Come to Life
Presented by: Barry Tarlton
Time: Friday 9:45 AM - 10:45 AMHave an amazingly crazy idea for an Arduino or RaspberryPi project, but can't find a tutorial to help bring it to life? Do even the Googles seem unable to help you get started on the road less traveled? This session will prepare you to go beyond the average maker tutorials found online and help...
Room: MangroveTrack: HardwareFormat: General SessionLevel: IntermediateEnvironment Configuration for JavaScript Apps
Presented by: David Truxall
Time: Friday 9:45 AM - 10:45 AMFor traditional server-side web apps, environment-specific configuration is handled in a variety of ways, including environment variables, configuration files or password stores. But a front-end web app running in a framework like React or Vue can’t really use these same techniques since they...
Room: RosewoodTrack: DevOpsFormat: General SessionLevel: IntermediateREST in Peace: Killing REST and adopting RPC.
Presented by: Steven Swenson
Time: Friday 11:00 AM - 12:00 PMREST has been the de facto architecture for web APIs for 15 years, and its deficiencies are starting to become quite apparent. It is difficult to document, poor standardization, and lacks common tooling. For developers, this results in extra work when creating or consuming an API. The time has come...
Room: CypressTrack: ArchitectureFormat: General SessionLevel: IntermediateHiring and Inspiring an Exceptional Team
Presented by: Seth Petry-Johnson
Time: Friday 11:00 AM - 12:00 PMManagement gets a bad rap in technical circles, and for good reason: many managers are terrible, and it shows! Rising above the pointy-haired-boss stereotypes is easier than you might think. By grounding your leadership style in management science, and adding a touch of emotional intelligence, you...
Room: NileTrack: Project Leadership/Soft SkillsFormat: General SessionLevel: IntermediateAndroid: A peek under the hood
Presented by: Brad Hollander
Time: Friday 11:00 AM - 12:00 PMOver the years, Android has become one of the most widely used operating systems in the world. Boasting 2.5 billion active devices, it can be found running on practically any hardware, from high-end flagship phones to smartwatches and IOT devices. Despite this massive popularity, the inner workings...
Room: Sagewood / ZebrawoodTrack: MobileFormat: General SessionLevel: IntermediateAssembly Language: The (Sega) Genesis of Programming
Presented by: Joe Sewell
Time: Friday 11:00 AM - 12:00 PMHave you ever wondered how many popular video games of the 70s, 80s, and 90s managed to look, sound, and play so well, despite running on very limited hardware? One reason is that many of these games were written in assembly languages. Unlike compiled or interpreted languages, in assembly the...
Room: Salon ATrack: HardwareFormat: General SessionLevel: IntermediateDevelopment magic: Producing more development time out of thin air.
Presented by: Jonathan Batteas
Time: Friday 11:00 AM - 12:00 PMIt's easy to get stuck in the, “if it ain’t broke, don’t fix it,” mindset with your software development process when real money is on the line, and deadlines loom. But taking the time to implement small changes to your pipeline, and foster a team attitude that's always looking for a...
Room: Salon ETrack: DevOpsFormat: General SessionLevel: IntermediateReact State: Redux & Context & Hooks, Oh My!
Presented by: Michael Moran
Time: Friday 12:15 PM - 1:15 PMIn the age of ephemeral javascript frameworks, ReactJS has lasted 5 years and only grown in popularity as its evolved. Despite its popularity, there is one burning question for anyone working with React: "How should I handle state?". We have many options at our disposal including React component...
Room: CypressTrack: Web/Front-EndFormat: General SessionLevel: IntermediateDDoS Attacks: Threat Landscape & Defensive Countermeasures
Presented by: Chris Holland
Time: Friday 12:15 PM - 1:15 PMOctober 2016’s attack on Dyn's DNS infrastructure was a gloomy wake-up call to the online community at-large, depriving us access to some of the online destinations and applications we use every day, thereby confronting us with the stark reality of an old and ever-growing threat with which the...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: General SessionLevel: IntermediateHey, You Got Your TDD in my SQL DB!
Presented by: Jeff McKenzie
Time: Friday 12:15 PM - 1:15 PMWhen should we test our data? From an application development perspective, a unit test against a database isn't a unit test at all. Which makes sense -- connected systems introduce overhead and dependency, both of which reduce stability and decrease productivity during test-driven development (TDD)....
Room: Sagewood / ZebrawoodTrack: Software QualityFormat: General SessionLevel: IntermediateUnderstanding the identity business, and how to get out of it
Presented by: Jeff Putz
Time: Friday 12:15 PM - 1:15 PMKnowing who is using your software is super fundamental. It's less important than ever to have to manage those identities yourself, but you can't escape understanding the protocols and players. Let's talk about how things like OAuth2 actually work, and then decide if you can get out of the business...
Room: RosewoodTrack: SecurityFormat: General SessionLevel: IntermediateMock It 'til You Make It
Presented by: Gabriela Dombrowski
Time: Friday 2:45 PM - 3:45 PMLet's automate the tedious task of building mocked query resolvers so that you never have to manually set up mocks for loading, error, no data, or default value states ever again! We'll learn how to use GraphQL and Apollo in a React application to build providers that will dynamically auto mock all...
Room: NileTrack: Web/Front-EndFormat: General SessionLevel: IntermediateWhat Time Is It Anyway?
Presented by: Tyler Jennings
Time: Friday 2:45 PM - 3:45 PMHandling date and time in our applications can be a complex task with many nuances. How should we handle date time? Should we store local time zone or UTC? Should we store dates and times separately? Should we use Unix time? These are all valid questions and there isn't always a...
Room: Salon ATrack: DataFormat: General SessionLevel: IntermediateTest-driven development: save your time, save your sanity, write great code fast
Presented by: Paul Roub
Time: Friday 4:00 PM - 5:00 PMFor 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 PrinciplesFormat: General SessionLevel: IntermediateWatch How The Giants Fall: Learning from Bug Bounty Results
Presented by: John Melton
Time: Friday 4:00 PM - 5:00 PMSecurity is hard. We all miss things. Attackers find things. "You must learn from the mistakes of others. You can't possibly live long enough to make them all yourself." -Samuel Levenson This talk is a fun, fast-moving survey of some of the best recent bug bounty finds against some of the...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: General SessionLevel: IntermediateThirst-quenching Streams for the Reactive Mind
Presented by: Mary Grygleski
Time: Friday 4:00 PM - 5:00 PMWith the advances in multicore hardware and virtualization technologies, and the demand for highly responsive, resilient, and elastic systems and increasingly sophisticated applications, an array of reactive data stream processing libraries have been born to address the needs. Reactive Streams is...
Room: Portia/WisteriaTrack: ArchitectureFormat: General SessionLevel: Intermediate