Hands On Threat Modeling Workshop
Presented by: Robert Hurlbut
Threat 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...
Format: PreCompilerLevel: IntermediateBuilding a Full CRUD Application in Excel with VBA and SQL Integration
Presented by: Derek Mulhausen
In 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...
Format: PreCompilerLevel: IntermediateCodemash VoiceHack 2020
Presented by: Jeff Blankenburg
This 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. ...
Format: PreCompilerLevel: IntermediateGIT: From beginner to Fearless
Presented by: Brian Gorman
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 ...
Format: PreCompilerLevel: IntermediateHadoop Essentials
Presented by: Eric Richardson
Big 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...
Format: PreCompilerLevel: IntermediateiOS Application Security Testing
Presented by: Hans Weisheimer
This hands-on session is aimed at mobile app developers, QA testers, aspiring security testers, and other suspicious persons. ...
Format: PreCompilerLevel: IntermediateReactive Extensions Without Marbles
Presented by: Eric Smith
ReactiveX 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 ...
Format: PreCompilerLevel: IntermediateTech Debt Be Gone! Time to Refactor JavaScript
Presented by: Joe Morgan, Laurie Barth
It’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...
Format: PreCompilerLevel: IntermediateMay the Turtle be With You
Presented by: Adrienne Tacke
Did you know you can draw and create simple games with Python's built-in Turtle module? No? Well you're in luck! ...
Format: KidzMash SessionzLevel: IntermediateFrom idea to physical series: Additional Castle project walk-through Rhino project
Can’t get enough model building? Want to make something more advanced than your basic cups/keychains/challenge coins? We’ve noticed we have some repeat students each year on our kids track that just love to build models, and we’ve also run several years of our introductory track for adults. We...
Format: KidzMash SessionzLevel: IntermediateKidzMash: How to Train Your Dragon: The Hidden World
1h 44m: PG
Format: KidzMash SessionzLevel: IntermediateApplication Security, Basic, Intermediate, Advanced
Presented by: Bill Sempf
Bill 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...
Format: PreCompilerLevel: IntermediateBuilding an educational game with .NET Core and Unity3D (Workshop)
Presented by: Johnny Hooyberghs
If 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...
Format: PreCompilerLevel: IntermediateDecision Making in the Face of Uncertainty
Presented by: Gary Short
Decision 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...
Format: PreCompilerLevel: IntermediateGet Progressive with it
Presented by: Matthew LaForest
Responsive 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 trap. ...
Format: PreCompilerLevel: IntermediateKafka: Build, Deploy, and Monitor Your First Real-World Application
Presented by: Justin Pihony
Companies 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...
Format: PreCompilerLevel: IntermediateMaking Reality Virtual: Simulating Experiences with VR Prototyping
Presented by: Scott Showalter
Take 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...
Format: PreCompilerLevel: IntermediateThe Demystifying Docker and Kubernetes DOJO
Presented by: Barry Tarlton, Michael Frayer
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...
Format: PreCompilerLevel: IntermediateBuilding a DevSecOps Pipeline
Presented by: Gene Gotimer
The 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...
Format: PreCompilerLevel: IntermediateCoaching Katas - In Search of The Answer to the Agile Kobayashi Maru
Presented by: Faye Thompson, Charles Husemann
These virtues are formed in man by his doing the actions. ...
Format: PreCompilerLevel: IntermediateEnsure Your Users Experience - A Trip Around User Validation Tools
Presented by: Rick Clymer, Aaron Glass
In 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...
Format: PreCompilerLevel: IntermediateHands-on Infrastructure as Code
Presented by: Andrew May
Learn 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.
Format: PreCompilerLevel: IntermediateJava 9, 10 & 11 Workshop
Presented by: Christopher Judd
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...
Format: PreCompilerLevel: IntermediateMicro Frontends: Breaking up the Frontend Monolith
Presented by: Kito Mann
Over 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...
Format: PreCompilerLevel: IntermediateServer Side Swift Saves CodeMash: Breaking free of the phone
Presented by: Anne Cahalan
CodeMash is a whirlwind of great workshops, talks, and experiences. If only you could capture these insights and save them forever... ...
Format: PreCompilerLevel: IntermediateOpen Source XAML Takes You Places!
Presented by: Sam Basu
XAML 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...
Format: General SessionLevel: IntermediateQuantity vs. Quality: Is less (code) really more?
Presented by: Anne Cahalan
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...
Format: General SessionLevel: IntermediateTechnical debt must die - Communicating code to business stakeholders
Presented by: Matt Eland
Our 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...
Format: General SessionLevel: IntermediateThe UX of Configuration Files
Presented by: Eemeli Aro
Developers 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...
Format: General SessionLevel: IntermediateA .NET Data Access Layer You're Proud of (Without Entity Framework)
Presented by: Jonathan "J." Tower
If 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...
Format: General SessionLevel: IntermediateAngular and The Case for RxJS
Presented by: Sandi Barr
When 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...
Format: General SessionLevel: IntermediateBeware of dark clouds on the horizon
Presented by: Andrew May
There are many benefits to be gained in moving your infrastructure to the cloud, but many more ways in which it can go horribly wrong. ...
Format: General SessionLevel: IntermediateGoing crazy with CQRS
Presented by: Seth Kraut
CQRS 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....
Format: General SessionLevel: IntermediateUsability Starts With Accessibility
Presented by: Patrick McSweeny
For 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...
Format: General SessionLevel: Intermediate[CANCELLED] Adding Search Capabilities to your Applications with Elastic Search
Presented by: Rod Paddock
This session has been cancelled. We apologize for any trouble this causes.
Format: General SessionLevel: IntermediateAntifragile Teams
Presented by: Charlie Sweet
Software 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. ...
Format: General SessionLevel: IntermediateMake More 💰 Money with Less 🛠Effort: 🧪 Experimentation Before Implementation
Presented by: Scott Showalter
Developing 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...
Format: General SessionLevel: IntermediateVue 3.0 Smaller, Faster & Stronger
Presented by: Dan Vega
Vue.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 as: ...
Format: General SessionLevel: IntermediateAutomating Your Automation: The Care and Feeding of Jenkins
Presented by: Jeff McKenzie
If 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...
Format: General SessionLevel: IntermediateBringing Order to Chaos
Presented by: Scott Connerly
So, 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...
Format: General SessionLevel: IntermediateConducting Humane Code Reviews
Presented by: Adrienne Tacke
Code 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...
Format: General SessionLevel: IntermediateSecuring Your API Endpoints - A Practical Authentication Guide
Presented by: Seth Petry-Johnson
It's never been easier to expose services over HTTP. It's also never been easier to inadvertently expose security holes via those same services. ...
Format: General SessionLevel: IntermediateBy Our Powers Combined: Observability for Developers
Presented by: Aaron Aldrich
The 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....
Format: General SessionLevel: IntermediateHold Up, Wait a Minute, Let Me Put Some Async In It
Presented by: Matthew Jones
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? ...
Format: General SessionLevel: IntermediatePostman Delivers! A Deep Dive into API Testing.
Presented by: Bob Crowley
Whether 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...
Format: General SessionLevel: IntermediateSell Yourself With a Software Quality Portfolio
Presented by: Aaron Glass
Finding 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? ...
Format: General SessionLevel: IntermediateThe Agile Designer: Aligning Dual-track UX and Development to Balance the Tactical and Strategic, Mi
Presented by: Jenna Chamra
Product 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...
Format: General SessionLevel: IntermediateUsing Python to Develop a Discord Bot
Presented by: Raphael Gotfryd
Discord 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...
Format: KidzMash DivezLevel: IntermediateFrom idea to physical: A demo of how to make CAD models in Rhino3d
This lab is intended to be a fast-paced technology walk-through of the process of creating a 3D printed object. We will focus in on the process of using CAD to create our model with a NURBS modeler called Rhino3D and will walk through the UI and how Rhino uses basic curves and shapes to create more...
Format: KidzMash DivezLevel: IntermediateA Series of Unfortunate Events - What Happens When Your App is Hacked.
Presented by: Joe Kuemerle
Many 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. ...
Format: General SessionLevel: IntermediateCoaching & Communicating with Diverse Teams
Presented by: Kiera Prioleau
Don’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...
Format: General SessionLevel: IntermediateFast, Reliable, Powerful IoT Projects Built on Elixir With Nerves
Presented by: Joel Byler
Elixir 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...
Format: General SessionLevel: IntermediateSay No To Accidental Architecture! Code Your Design Systems Instead
Presented by: Burton Smith
Are 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...
Format: General SessionLevel: IntermediateTerseScript: JavaScript with 6 characters or less
Presented by: Mike Hand
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...
Format: General SessionLevel: IntermediateUser Interviews: More than Just a Conversation
Presented by: Ash Banaszek
Anyone 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...
Format: General SessionLevel: IntermediateWhat's New in Xamarin Forms 4.0
Presented by: Jason Awbrey
Xamarin 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...
Format: General SessionLevel: IntermediateFrom idea to physical series: Additional Castle project walk-through Rhino project.
Can’t get enough model building? Want to make something more advanced than your basic cups/keychains/challenge coins? We’ve noticed we have some repeat students each year on our kids track that just love to build models, and we’ve also run several years of our introductory track for adults. We...
Format: General SessionLevel: IntermediateApp Deco - Applied Design Thinking for Secure Development
Presented by: Wolfgang Goerlich
Usability 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...
Format: General SessionLevel: IntermediateDevOps as a Force Multiplier for Agile
Presented by: Nate Berent-Spillson
So 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...
Format: General SessionLevel: IntermediateHorizontal Scaling of Graph Databases
Presented by: Ryan Hendrickson
A 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...
Format: General SessionLevel: IntermediateHuman Readable JavaScript: Using ES2015+ to Craft Better Code
Presented by: Laurie Barth
Love 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. ...
Format: General SessionLevel: IntermediateTesting your UI Components
Presented by: Avindra Fernando
When 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...
Format: General SessionLevel: IntermediateTwelve Spins on User Experience
Presented by: Keith Instone
What 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. ...
Format: General SessionLevel: IntermediateVertical Slice Architecture
Presented by: Jimmy Bogard
Moving 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...
Format: General SessionLevel: Intermediate“How would you print that?” interactive panel
We have a wealth of different perspectives reflected with our 3D printing room staff- including tinkering hobbyists, hardcore makers, and even that of using multiple printer types repeatably in a small business setting. We thought it would be fun to share these various perspectives on how we...
Format: General SessionLevel: IntermediateSuper Smash Bros Ultimate Tournament
A tournament... where folks play Super Smash Bros
Format: General SessionLevel: IntermediateDessert Bar, Karaoke, and Photo Booth
Dessert Bar is only until 9PM
Format: General SessionLevel: IntermediateWaterpark Party
If you still have energy, come on down to the Waterpark Party! Swimming is optional. Having fun is mandatory. ...
Format: General SessionLevel: IntermediateKM: Alexa Scavenger Hunt
Ready for a digital adventure? There is an Alexa Scavenger Hunt throughout the Kalahari that you can play using your phone or tablet, and your voice! The hunt starts at the giant bronze gorilla (at the entrance to the convention center). You can do it entirely at your own pace or schedule, and there...
Format: General SessionLevel: IntermediateWell.. that's ONNX-pected
Presented by: Ron Dagdag
The 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...
Format: General SessionLevel: IntermediateHave More Fun in Minecraft, With Redstone!
Presented by: Nathan Arthur
Have 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! ...
Format: KidzMash SessionzLevel: IntermediateKidzMash: A Kid’s World of 3D printing
This session is targeted for children. All ages of children are welcome (with a responsible adult). We will tour the maker lab and talk about the exciting world of 3D printing. We will look at the printers as well as models made on them and pass around lots of things. We will also go over basics of...
Format: KidzMash SessionzLevel: IntermediateAPI Design for ETL - Lessons from Nearly 100 Data Integrations in the Wild
Presented by: Dan Mosora
In 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...
Format: General SessionLevel: IntermediateBuilding a super performant GossipGirl.com in Gatsby in under 50 Minutes
Presented by: Jennifer Wadella
Hey, 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...
Format: General SessionLevel: IntermediateBurn It Down and Start Again: Principles of Modern JavaScript
Presented by: Joe Morgan
Heard 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...
Format: General SessionLevel: IntermediateContext is King: Finding Service Boundaries
Presented by: Derek Comartin
Are 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. ...
Format: General SessionLevel: IntermediateEnvironment Configuration for JavaScript Apps
Presented by: David Truxall
For 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...
Format: General SessionLevel: IntermediateHow Exploding Birthday Cakes and Other CRAZY Projects Come to Life
Presented by: Barry Tarlton
Have 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...
Format: General SessionLevel: IntermediateOwning Your Experience: Talking about Mental Health In the Workplace
Presented by: Arthur Doler
Your 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"...
Format: General SessionLevel: IntermediateAndroid: A peek under the hood
Presented by: Brad Hollander
Over 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...
Format: General SessionLevel: IntermediateAssembly Language: The (Sega) Genesis of Programming
Presented by: Joe Sewell
Have 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...
Format: General SessionLevel: IntermediateDevelopment magic: Producing more development time out of thin air.
Presented by: Jonathan Batteas
It'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...
Format: General SessionLevel: IntermediateHiring and Inspiring an Exceptional Team
Presented by: Seth Petry-Johnson
Management gets a bad rap in technical circles, and for good reason: many managers are terrible, and it shows! ...
Format: General SessionLevel: IntermediateREST in Peace: Killing REST and adopting RPC.
Presented by: Steven Swenson
REST 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...
Format: General SessionLevel: IntermediateDDoS Attacks: Threat Landscape & Defensive Countermeasures
Presented by: Chris Holland
October 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...
Format: General SessionLevel: IntermediateHey, You Got Your TDD in my SQL DB!
Presented by: Jeff McKenzie
When 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)....
Format: General SessionLevel: IntermediateReact State: Redux & Context & Hooks, Oh My!
Presented by: Michael Moran
In 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...
Format: General SessionLevel: IntermediateUnderstanding the identity business, and how to get out of it
Presented by: Jeff Putz
Knowing 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...
Format: General SessionLevel: IntermediateMock It 'til You Make It
Presented by: Gabriela Dombrowski
Let'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...
Format: General SessionLevel: IntermediateWhat Time Is It Anyway?
Presented by: Tyler Jennings
Handling 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...
Format: General SessionLevel: IntermediateTest-driven development: save your time, save your sanity, write great code fast
Presented by: Paul Roub
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...
Format: General SessionLevel: IntermediateThirst-quenching Streams for the Reactive Mind
Presented by: Mary Grygleski
With 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...
Format: General SessionLevel: IntermediateWatch How The Giants Fall: Learning from Bug Bounty Results
Presented by: John Melton
Security is hard. We all miss things. Attackers find things. ...
Format: General SessionLevel: IntermediateKidzMash: Mad Science
It is always sad to come to the end. To ease our parting Mad Science is coming to the close and bringing Fire and Ice! One last scientific exploration into matter and pressure before we send you home until 2021
Format: General SessionLevel: Intermediate