CodeMash Conference 2020

Paths

CodeMash Conference 2020

Author: CodeMash

CodeMash is a unique event that educates developers on current practices, methodologies and technology trends in variety of platforms and development languages such as Java, .NET,... Read more

What You Will Learn

  • Front End Web Development
  • Technology Leadership
  • Programming Principles
  • Architecture
  • DevOps
  • Data
  • Security
  • User Experience (UX) and User Interface (UI) Design

Pre-requisites

None.

Architecture

This CodeMash Conference track features talks about architecture.

Event Processing without Breaking Production: CodeMash

by CodeMash

Feb 7, 2020 / 51m

51m

Start Course
Description

Transactional systems are built with the primary focus of processing many concurrent events, only keeping the current state of data. What if there was a way to capture all the events that led to that current state? Capturing all events would allow for deeper analytics/machine learning, debugging, auditing, and more all without affecting your production systems. In this talk, Nathan Zender will explore the architecture, tools, and patterns used to do just that. Before leaving this talk, you will also learn about the stumbling blocks Nathan ran into while implementing this against a temperamental legacy application.

Table of contents
  1. Event Processing without Breaking Production

Bringing Order to Chaos: CodeMash

by CodeMash

Feb 7, 2020 / 51m

51m

Start Course
Description

By combining React, design systems, and Storybook, Nate Taylor's team was able to create their own component library from scratch. They also found that their team was much more collaborative involving developers and designers as they created a custom user interface (UI) for their client. This talk walks through their experience and lessons learned, and it highlights some tools and libraries that were essential in creating a UI framework.

Table of contents
  1. Bringing Order to Chaos

Finding Service Boundaries: CodeMash

by CodeMash

Feb 7, 2020 / 54m

54m

Start Course
Description

Are you experiencing difficulty defining service boundaries? There are benefits in splitting up a complex system, such as more focused models and modular deployments. Defining the correct service boundaries is important, but it can be tricky. When defined correctly, the model feels natural and cohesive. When defined incorrectly, a system might be overly complex and end in disaster. Join Derek Comartin as he explores the use of key terminology in real business systems.

Table of contents
  1. Context Is King: Finding Service Boundaries

API Gateways and Microservices: CodeMash

by CodeMash

Feb 7, 2020 / 44m

44m

Start Course
Description

In this session, you'll learn how to leverage API Gateways so your microservices are able to fully connect and harness their power. Santosh Hari will go into details on various API Gateway offerings and a decision matrix on which one to choose. The talk will also highlight the various features of API Gateways like productizing APIs, creating users and subscriptions, security, error handling, rate limiting, and more. For demonstration purposes, Santosh will use Azure API Management.

Table of contents
  1. API Gateways and Microservices: 2 Peas in a Pod

Vertical Slice Architecture: CodeMash

by CodeMash

Feb 7, 2020 / 53m

53m

Start Course
Description

Moving from a layered architecture to a vertical slice architecture can be daunting. In this session, Jimmy Bogard will introduce the idea of vertical slice architectures, and dive into the patterns, tools, and techniques used with slices. You'll learn how you can fit vertical slices into different kinds of systems, from desktop and SPA to normal MVC applications. Finally, Jimmy will share some of the new challenges that come with slices and layers, and how a different approach provides a much more maintainable end result.

Table of contents
  1. Vertical Slice Architecture

Killing REST and Adopting RPC: CodeMash

by CodeMash

Feb 7, 2020 / 55m

55m

Start Course
Description

REST has been the de facto architecture for web APIs for 15 years and its deficiencies are starting to become apparent. For developers, these deficiencies result in extra work when creating or consuming an API. The time has come to start using RPC architecture. This talk will discuss why REST is deficient for modern applications and how adopting RPC can reduce development time and reinforce more rigorous design standards. Using better standards leads to faster development, easier testing, and auto-generated clients. Steven Swenson will illustrate these points by comparing a simple API implemented in both REST and in gRPC, a standard created by Google. Other RPC standards will also be reviewed and compared to gRPC.

Table of contents
  1. REST in Peace: Killing REST and adopting RPC.

5 Ideas For Writing Better Cloud Native Microservices: CodeMash

by CodeMash

Feb 7, 2020 / 36m

36m

Start Course
Description

In this session, Todd Sharp will show you some new ideas to help you develop performant and easy to maintain microservices. You will learn new ways to solve some challenges that microservice development brings and the benefits and downsides of each approach. Todd will deploy a simple set of microservices using several languages and frameworks and then look at how to share data between the individual services and create a service that combines the data from multiple sources into a single feed of data. Finally, this session will touch on other cloud native features that fit into your microservice application like serverless functions and cloud events.

Table of contents
  1. 5 Ideas For Writing Better Cloud Native Microservices

Going Crazy with CQRS: CodeMash

by CodeMash

Feb 7, 2020 / 56m

56m

Start Course
Description

In this conference talk, Seth Kraut will explore Command Query Responsibility Segregation (CQRS), which is a high performance, event oriented flavor of Domain Driven Design. CQRS challenges normal conceptions of design. By separating read and write logic, this architecture unlocks unique possibilities.

Table of contents
  1. Going Crazy with CQRS

Cosmic Full-Stack a Blazor, ML.NET, and CosmosDB Mashup: CodeMash

by CodeMash

Feb 7, 2020 / 52m

52m

Start Course
Description

Are you ready to countdown to liftoff? In this conference session, Ed Charbeneau will test the limits of the .NET stack in an incredible mission to build BlazePort, a futuristic ride share app for space travel. Ed will use a mashup of the latest in .NET technologies, leveraging CosmosDB for data persistence, modeling travel prices with ML.NET (via an Azure Function), and going full-stack with ASP.NET Core and Blazor for an end-to-end C# development experience. Strap yourself in for fast paced demos and hot bits on this journey through the .NET ecosystem.

Table of contents
  1. Cosmic Full-Stack a Blazor, ML.NET, and CosmosDB Mashup

Quantum Computing Deep Dive: CodeMash

by CodeMash

Feb 7, 2020 / 52m

52m

Start Course
Description

You've probably heard of Quantum Computing. In this conference deep dive session, Johnny Jooyberghs explains important concepts like qbits, superposition, and entanglement. Theoretical knowledge about quantum physics, quantum gates and quantum algorithms will be associated with practical examples using a real quantum computer on the IBM Q Experience and simulated using Microsoft Q#.

Table of contents
  1. Quantum Computing Deep Dive

What Building Architecture Can Teach Us About Software Architecture: CodeMash

by CodeMash

Feb 7, 2020 / 49m

49m

Start Course
Description

Architecture has existed for the better part of human history. Over 2000 years ago, the Roman architect Vitruvius claimed that a good building must be durable, functional, and bring delight. Sounds familiar, right? In this conference session, Wes Delp will explore how architectural design concepts such as, 'less is more', 'form vs. function', and 'adaptive reuse,' can be applied to the software patterns and structure in your own applications. You'll discover how the successes and failures in building design over the years provide timeless lessons for designing and architecting software that will stand the test of time.

Table of contents
  1. What Architecture (The Building Kind) Can Teach Us About Architecture (The Software Kind)

Data

Are you a data professional or someone who is determined to become data literate? Dive into these sessions to learn more.

You Version Your Code, Why Not Your Database: CodeMash

by CodeMash

Feb 7, 2020 / 33m

33m

Start Course
Description

Code versioning is an integral part of a developer's daily workflow. However, database changes are often handled manually, making automatic code deploys a challenge. If something goes wrong, rolling back a deployment requires either complex and possibly untested scripts or a database restore. Adding database versioning to your development environment will help you solve these issues. In the talk, Derek Binkley will share examples of using Liquibase to manage database changes. You will learn how scripting and versioning your database structures will allow easy, scripted deployments that can be repeated by developers in QA and in production. Once you see the ease at which you can deploy database changes, you will wonder how you ever got along without it.

Table of contents
  1. You Version Your Code, Why Not Your Database

A .NET Data Access Layer You're Proud of: CodeMash

by CodeMash

Feb 7, 2020 / 45m

45m

Start Course
Description

If you're a .NET developer, it almost goes without saying that you use Entity Framework (EF) 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 and performant with better control of generated SQL queries. Over the years, several micro-ORMs (object relationship mappers) have evolved for just this purpose because, often, the simplest solution is the best one. Join Jonathan "J." Tower on this walk-through of some popular alternatives to EF, an overview of .NET micro-ORMs, and useful design patterns that you can use to organize them all into a powerful, fast, and coherent data access layer. You will leave this session equipped to make a simple, high-performance, and easy to use data access layer that you can be proud of.

Table of contents
  1. A .NET Data Access Layer You're Proud of (Without Entity Framework)

API Design for ETL: CodeMash

by CodeMash

Feb 7, 2020 / 47m

47m

Start Course
Description

In the API Economy, users increasingly want to analyze and connect more of their business data, from small startup shops to multinational corporations. Are you thinking about making data available through an API? There are innumerable ways to slice the problem. How do you implement pagination? What data model makes sense? What level of authentication is correct to be secure but usable? At Stitch, the teams have built and reviewed almost 100 data integrations in Python for the Singer project, most of which interact with APIs, and have had good experiences and not-so-good experiences. In this conference talk, Dan Mosora will explore these lessons through APIs in the wild, cover the challenges that Stitch has faced when integrating with an API for ETL purposes, and highlight the qualities that make an API a joy to interact with.

Table of contents
  1. API Design for ETL - Lessons from Nearly 100 Data Integrations in the Wild

Common Data Problems Solved with Graphs: CodeMash

by CodeMash

Feb 7, 2020 / 49m

49m

Start Course
Description

Data in the real world is naturally connected, but traditional data modeling focuses on entities which can cause for complicated joins of naturally connected data. That is where graph databases come in. Graph databases store data in a way that is more similar to what occurs naturally in the real world. There is a lot of talk about using graph databases for social networks, recommendation engines, and Internet of Things (IoT), but using graph databases can also make a lot of sense when working with common business data problems. In this conference talk, Chad Green will help you gain a better understanding of what graph databases are, show you how to use the Gremlin API within Azure Cosmos DB to traverse such data structures, and demonstrate practical examples to common data problems.

Table of contents
  1. Graphing Your Way through the Cosmos: Common Data Problems Solved with Graphs

What Time Is It Anyway: CodeMash

by CodeMash

Feb 7, 2020 / 42m

42m

Start Course
Description

Handling date and time in applications can be a complex task with many nuances. How should you handle date time? Should you store local time zone or UTC? Should you store dates and times separately? Should you use Unix time? These are all valid questions and there isn't a one size fits all solution. In this talk, Tyler Jennings will take a look at the challenges that date and time present, the different scenarios you might run into, and how you might solve them in your applications. You will also learn the pros and cons of different approaches and see which approach might be best in various circumstances.

Table of contents
  1. What Time Is It Anyway?

Learning R through Sports, or Learning Sports through R: CodeMash

by CodeMash

Feb 7, 2020 / 42m

42m

Start Course
Description

Big data has been a buzzword for years, but it’s only recently been hitting the world of professional sports. How do sports teams use big data? With R! Join Mike Roznik to learn what kind of data sports teams look for and how they present it. Along the way, you'll look at real world examples of R code interpreting, calculating, and presenting sports data. You’ll receive an overview of the cool things you can do with R and learn about many places you can start using it with available data sets or your own.

Table of contents
  1. Learning R through Sports, or Learning Sports through R

Creating a Chess AI That Can Beat You: CodeMash

by CodeMash

Feb 7, 2020 / 44m

44m

Start Course
Description

Artificial intelligence (AI) is in the news seemingly every week. In this conference talk, David Hauck will go through how an AI program that can play chess is made. Using fundamental data structures and algorithms (without machine learning), the AI will start from the ground up and use audience knowledge of the game to make it an exceptional chess player. After, attendees can attempt to beat the AI that was built.

Table of contents
  1. Not Just Fun and Games: Creating a Chess AI That Can Beat You

DevOps

These sessions are from CodeMash's DevOps track.

DevOps as a Force Multiplier for Agile: CodeMash

by CodeMash

Feb 7, 2020 / 33m

33m

Start Course
Description

Applying DevOps to Agile increases your terminal velocity forever. DevOps clears the field of bottlenecks so you are able to work effectively without falling into productivity constraints. In this session, Nate Berent-Spillson will teach you the art of making DevOps your ultimate Agile force multiplier. You will learn how to go faster by automating every instance and evolving a product over time with continuous testing, kick legacy processes to the curb to ensure no one in your organization waits on the dev process ever again, and make decisions based on data to achieve a feedback loop that powers products release after release.

Table of contents
  1. DevOps as a Force Multiplier for Agile

Automating Your Automation: CodeMash

by CodeMash

Feb 7, 2020 / 44m

44m

Start Course
Description

If you're like 70% of continuous integration and delivery users, you're using Jenkins, the powerful and popular automation server. 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 automation, how different job types and plugins can improve your architecture and decrease your maintenance effort. Almost no matter where you are in your automation maturity, there’s always another level to reach: if you're using the basic point-and-click of freestyle jobs, you can move to the scripted context of pipelines. Once you've explored pipelines, you can learn to leverage shared global libraries to promote code reuse across multiple pipelines. Jeff McKenzie will cover Jenkins basics, specific use cases for different job types, and how best to manage your automation as it grows from one job, to ten, to one hundred. Finally, you'll learn how to create your entire Jenkins job collection from scratch at the push of a button.

Table of contents
  1. Automating Your Automation: The Care and Feeding of Jenkins

Creating Container Images with Cloud Native Buildpacks: CodeMash

by CodeMash

Feb 7, 2020 / 55m

55m

Start Course
Description

Buildpacks are a pluggable, modular, language-agnostic tool that take application source code and, in turn, provide you with an OCI (Open Container Initiative) image to run using Docker, Kubernetes, or your OCI Runtime of choice. The higher-level abstraction of buildpacks allows you, as a developer, to focus less time on building containers and more time being productive, writing code and providing value for your employer. In this conference session, Daniel Mikusa will explore how Cloud Native Buildpacks work, you'll see examples of how you can use them to create images from source code in your favorite languages, and you'll learn how to integrate buildpacks into common development workflows.

Table of contents
  1. Speed, Security and Simplicity: Creating Container Images with Cloud Native Buildpacks

Hardware

These sessions focus on hardware.

A Developer's Introduction to Electronics: CodeMash

by CodeMash

Feb 7, 2020 / 47m

47m

Start Course
Description

Are you a programmer? Odds are you have a love of Raspberry Pi, Arduino, and other devices of their ilk. These devices are easy to program. When it comes to building circuits for these devices to control, you might find yourself following instructions without understanding what's going on. This talk will correct that. Guy Royse will explain the basics of electronics and the components that are used to build circuits. After this session, you'll be able to build circuits that you can use for your own projects and have the knowledge on how they work.

Table of contents
  1. A Developer's Introduction to Electronics

Assembly Language: The (Sega) Genesis of Programming: CodeMash

by CodeMash

Feb 7, 2020 / 56m

56m

Start Course
Description

Have you wondered how many popular video games of the 70s, 80s, and 90s managed to look, sound, and play 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 programmer manually decides the CPU instructions the program will execute. This “by hand” approach, while difficult, allowed game developers to maximize their use of the hardware and still keep a playable framerate. This conference session with Joe Sewell dives into the ancient art of assembly programming with the Sega Genesis (aka Mega Drive) as an example. You will learn the basics of assembly languages and the unique quirks of video game hardware of the era with examples from real assembly code for the Genesis’ Motorola 68000 processor. You'll leave with a deeper understanding of computer architecture, the knowledge of what situations call for assembly programming, and the gratitude of being able to use higher-level languages in all other situations.

Table of contents
  1. Assembly Language: The (Sega) Genesis of Programming

Mobile

CodeMash's Mobile track features talks on Flutter, Swift, Kotlin, and more.

Open Source XAML Takes You Places: CodeMash

by CodeMash

Feb 7, 2020 / 51m

51m

Start Course
Description

Today, XAML powers a lot of app platforms, seems poised for success going forward, and almost all XAML application stacks are now open source. In this session, Sam Basu unpacks the magic behind democratization of X-platform .NET development.

Table of contents
  1. Open Source XAML Takes You Places

Building Mobile Applications with the Ionic Framework: CodeMash

by CodeMash

Feb 7, 2020 / 54m

54m

Start Course
Description

Have you wanted to start developing mobile applications, but became overwhelmed when selecting the right technology, framework, and language? Ionic provides a framework that allows developers to build applications using familiar web technologies to produce a native application experience for iOS, Android, and Windows Phone. Ionic is free and backed by a vibrant community of millions of developers who have used Ionic to build more than 5 million apps. In this talk, Robert Lair will provide a brief introduction to Ionic and explain how to get started developing, testing and deploying your apps. You will also learn how to take advantage of native phone services using Ionic.

Table of contents
  1. Building Mobile Applications with the Ionic Framework

What's New in Xamarin Forms 4.0: CodeMash

by CodeMash

Feb 7, 2020 / 53m

53m

Start Course
Description

If you're a .NET developer, it almost goes without saying that you use Entity Framework (EF) 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 and performant with better control of generated SQL queries. Over the years, several micro-ORMs (object relationship mappers) have evolved for just this purpose because, often, the simplest solution is the best one. Join Jonathan "J." Tower on this walk-through of some popular alternatives to EF, an overview of .NET micro-ORMs, and useful design patterns that you can use to organize them all into a powerful, fast, and coherent data access later. You will leave this session equipped to make a simple, high-performance, and easy to use data access layer that you can be proud of.

Table of contents
  1. What's New in Xamarin Forms 4.0

Taking Control of Errors in Swift: CodeMash

by Pluralsight

Feb 7, 2020 / 37m

37m

Start Course
Description

Have you ever seen a code comment saying “this should never happen”? What would happen if it did? Swift has a diverse set of error-handling capabilities, from using throw to send errors up the stack to using a Result to handle errors in asynchronous methods. In this talk, Jeff Kelley will look at the landscape of handling errors in Swift, create new ways of expressing and handling them, and show how even the most impossible code-level situations can have 100% test coverage. You'll walk away with knowledge to take control of the errors in your code.

Table of contents
  1. Straying From the Happy Path: Taking Control of Errors in Swift

How to Get Started with Swift in 2020: CodeMash

by CodeMash

Feb 7, 2020 / 46m

46m

Start Course
Description

With Swift 5 and ABI stability, Swift has matured into a language ready for new adopters. In this talk, Leo Dion gives an introduction to Swift development as well as Swift’s journey from the iPhone to the Watch to servers. Leo also covers questions like: How has Swift changed in those years? What is the future of Swift? What does ABI stability mean for Swift? Where is Swift headed?

Table of contents
  1. How to Get Started with Swift in 2020

Android: A Peek under the Hood: CodeMash

by CodeMash

Feb 7, 2020 / 47m

47m

Start Course
Description

Over the years, Android has become one of the most widely used operating systems in the world. It can be found running on practically any hardware, from high-end flagship phones to smartwatches and IoT devices. Despite its massive popularity, the inner workings of Android are still a mystery to most. In this talk, Brad Hollander will look at the command line and investigate a running Android system to gain a better understanding of all the things Android does. This session will also cover what an app actually is, how it runs from the perspective of Android's Linux underpinnings, and what differentiates Android from a typical Linux distribution.

Table of contents
  1. Android: A Peek under the Hood

One Codebase, Many Screens - Flutter in a Nutshell: CodeMash

by CodeMash

Feb 7, 2020 / 1h 21s

1h 21s

Start Course
Description

Flutter is Google’s cross-platform development framework for quickly crafting high-quality native apps on Web, iOS, Android, and ChromeOS. Flutter works with existing code, is used by developers and organizations around the world, and is free and open source. In this session, Don Ward will cover the following questions: 1. What is Flutter? 2. Why should you consider Flutter? 3. What makes Flutter different? 4. What you need to get quickly started creating great apps.

Table of contents
  1. One Codebase, Many Screens - Flutter in a Nutshell

Kotlin for C# Developers: CodeMash

by CodeMash

Feb 7, 2020 / 53m

53m

Start Course
Description

Dive into Kotlin with Alex Dunn. In this conference session, you'll be looking at Kotlin from the perspective of a .NET C# developer, drawing comparisons between the languages, and bridging the gap between these two amazing languages. You'll also learn about Kotlin as a language, platforms Kotlin is great for, Object Oriented Implementations in Kotlin, extended features, features Kotlin has that C# doesn't, and a demo Android application in Kotlin versus a Xamarin.Android app in C#. You will leave with a foundational knowledge of Kotlin and its capabilities to build apps with less code. You should feel comfortable comparing C# applications to Kotlin applications and know where to find resources to learn even more.

Table of contents
  1. Kotlin for C# Developers

A Mobile App Success Starter Pack: CodeMash

by CodeMash

Feb 7, 2020 / 36m

36m

Start Course
Description

When you’re pitching a mobile app to a prospective client, it’s easy to focus on the app’s purpose. A pizza-ordering app should order pizza, a messaging app should send messages, and a game should be fun. For an app to succeed, there are countless other hidden tasks to consider: Does your app respond well to poor network connectivity? Is it always clear when it’s waiting on network communication? What happens when you ship the app but need to prevent users from using a broken version? In this talk, Jeff Kelley will look at common examples of the unspoken assumptions made when creating apps- assumptions that clients may have, assumptions users definitely have, and the things no app should leave an App Store without. Using these critical features as a guide, you’ll be better prepared to estimate project length and deliver amazing (and successful) apps.

Table of contents
  1. A Mobile App Success Starter Pack

Programming Principles

From practical functional programming to test-driven development, these sessions immerse you into programming principles.

Practical Functional Programming: CodeMash

by CodeMash

Feb 7, 2020 / 59m

59m

Start Course
Description

Functional programming is more than math and monads. Functional programming empowers developers to solve real problems with safe, predictable, and maintainable code. In this talk, Jeremy Fairbank will present the basics of functional programming and how to apply functional concepts in a practical manner. Learn how pure functions are easily testable, how to compose specialized functions to create more complex functions, how immutable data prevents bugs, how to prevent runtime errors with static types, how to safely model nulls with special types, and more. Most importantly, you will leave this talk with a deeper understanding and appreciation for functional programming.

Table of contents
  1. Practical Functional Programming

The Immutable Laws of Software and Life: CodeMash

by CodeMash

Feb 7, 2020 / 59m

59m

Start Course
Description

In this session, you'll explore how changes in software design can have unexpected, profound impacts. Join Cory House as he references both popular and little-known "laws" of computing and life. You'll see how to use these laws to write better software. This session will give you new mental models for thinking about the tradeoffs you make in software and life.

Table of contents
  1. The Immutable Laws of Software and Life: Code Accordingly

Machine Learning on the Cheap and without a PhD in Math: CodeMash

by CodeMash

Feb 7, 2020 / 39m

39m

Start Course
Description

Machine learning used to require a command of advanced mathematics, years of university training, and expensive hardware. With better open source tools and online resources, it’s easier to create robust neural networks. It’s possible to learn the fundamentals of machine learning and experiment with different architectures to create your own optimized solutions. In this conference talk, Jim Wilson will cover the basics of neural nets and how to use Google Colab notebooks, Python, and the fastai/PyTorch libraries to develop your own customized neural networks for free.

Table of contents
  1. Machine Learning on the Cheap and without a PhD in Math

Hold up, Wait a Minute, Let Me Put Some Async In It: CodeMash

by CodeMash

Feb 7, 2020 / 55m

55m

Start Course
Description

In this code-heavy session, Matthew Jones will take an older .NET web app, which has no asynchronous code, and slowly refactor it into a modern async app. Along the way, there'll be discussions about what practices you need to be aware of, such as "async all the way down." This session also demonstrates when async/await is NOT needed.

Table of contents
  1. Hold up, Wait a Minute, Let Me Put Some Async In It

Solving the Boolean Identity Crisis: CodeMash

by CodeMash

Feb 7, 2020 / 56m

56m

Start Course
Description

While powerful in its simplicity and important to computation, the boolean can be limiting in applications. In this talk, Jeremy Fairbank will briefly explore the history of boolean logic in computation and look at how booleans can be misused in programming languages. You'll explore examples where booleans obscure the meaning of code, make code harder to maintain, and hinder usability for teammates and users. You'll also learn how to harness custom types and higher-order functions to write clearer code, and to place empathy and usability at the forefront of the APIs and UIs you build.

Table of contents
  1. Solving the Boolean Identity Crisis

Unit Testing Strategies and Patterns in C#: CodeMash

by CodeMash

Feb 7, 2020 / 53m

53m

Start Course
Description

In this session, you'll learn common patterns and strategies to effectively unit test your code in C#. Bill Dinger will cover 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, and MsTest to remove some of the drudgery of testing. This session also contains real world examples and code to provide a good foundation for making testable code for teams and clients.

Table of contents
  1. Unit Testing Strategies & Patterns in C#

Python, The World Beyond Scripting: CodeMash

by CodeMash

Feb 7, 2020 / 48m

48m

Start Course
Description

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? In this talk, Charles Yost will cover all of that and more to get you started for developing more than just a script or two in Python.

Table of contents
  1. Python, The World Beyond Scripting

Test-driven Development: CodeMash

by CodeMash

Feb 9, 2020 / 50m

50m

Start Course
Description

Both new and seasoned developers, especially solo practitioners, can have a lot of misconceptions about test-driven development (TDD). The primary misconceptions are: "It's extra work, it's extra code, I can't ship tests, why would I test something simple and obvious." Magic happens when the light bulb switches to "on." In this session, Paul Roub will walk through the design of a simple-enough class, showing along the way how initial assumptions are often wrong, how to avoid making those assumptions too early, how to throw away less code, and how to feel comfortable and safe when you do throw away code.

Table of contents
  1. Test-driven Development: Save Your Time, Save Your Sanity, Write Great Code Fast

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

by CodeMash

Feb 7, 2020 / 54m

54m

Start Course
Description

Has there ever been a time where you received a bug report and you didn't know where to start? Have you felt overwhelmed with how code behaves? Situations like these can be some of the more frustrating aspects of software development. Solving problems is central to being a top-notch developer; it’s part of what separates the experts from the novices. Over the years, Nate Taylor has come to realize that problem solving isn't always easy, but it can be broken down into some basic steps. These same steps were taught to Nate when first learning physics and have helped solve numerous problems. By the end of this conference talk, you'll have a mental framework for solving problems, and you'll get to see that framework in practice as we solve problems that have happened on real-life software projects.

Table of contents
  1. Everything I Needed to Know About Debugging I Learned in Elementary Physics

The Best Code Is the Code Never Written: CodeMash

by CodeMash

Feb 7, 2020 / 43m

43m

Start Course
Description

In the modern realms of software where getting to market fast with minimal issues is a must, developers need all the advantages that they can get. One such advantage is to limit the amount of actual code produced and shipped. During this conference session, Daniel Davis will explore some of the practices, tips and tricks for helping you avoid writing the code that you don't need.

Table of contents
  1. The Best Code, Is the Code Never Written

Git Back to Basics: CodeMash

by CodeMash

Feb 7, 2020 / 49m

49m

Start Course
Description

Have you written code that worked, then the code broke, and you failed to 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. You can use it in collaboration with a team or as the only developer on a project. In this conference talk, Angel Thomas will discuss commands that are used every day as well as a few that can help you recover from mistakes.

Table of contents
  1. Git Back to Basics

Hobby Projects Are Awesome: CodeMash

by CodeMash

Feb 7, 2020 / 40m

40m

Start Course
Description

There you are, enjoying a hobby that you love, which gets you away from your screens and keyboard. Then, out of nowhere, an idea comes to mind. Maybe it is 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 new project that helps to scratch that itch. Of course, since you are a tech professional, you find yourself building these solutions with the technologies we know, or wish to learn more about. In this talk, Joel Byler discusses the following questions: How do you get started? What do you do when you're not sure whether your users will like it? How do you do this on your own? How do you avoid burnout? Joel also intends to help folks who have these ideas and get stuck.

Table of contents
  1. Hobby Projects Are Awesome

Project Leadership/Soft Skills

This group of courses focuses on building or refining soft skills in addition to covering topics that will help you be more successful as a business professional.

Antifragile Teams: CodeMash

by CodeMash

Feb 7, 2020 / 53m

53m

Start Course
Description

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. In nature, there are three types of systems: 1. Fragile systems that break under stress, like a teacup, 2. Resilient systems that resist stress, like a rock, and 3. Antifragile systems that become stronger when they are stressed, like your muscles when you exercise. Most organizations attempt to build resilience, but do so in a way that nearly guarantees fragility. Designing for "antifragility" is a much better goal. In this talk, Charlie Sweet will talk about the concepts of antifragility, the concepts of teams (as opposed to working groups) and how to apply antifragile concepts to make teams less fragile.

Table of contents
  1. Antifragile Teams

Will the Real "Women in Tech" Please Stand Up: CodeMash

by CodeMash

Feb 7, 2020 / 42m

42m

Start Course
Description

In this session, Taranjeet Kaur will talk about approaching formative years differently for women in the tech community, provide a retrospect on the gender bias that exists in technology, and discuss the bigger problem.

Table of contents
  1. Will the Real "Women in Tech" Please Stand Up

Document Yourself: A Framework for Career Advancement: CodeMash

by CodeMash

Feb 7, 2020 / 19m

19m

Start Course
Description

The goal of this workshop is to document yourself the way you would document code. You wouldn't expect someone who wants to use the program you built to read every line of code. Instead, they're relying on the design documents and doc strings to know how it works. The same is true with your career. This talk is about making it easy for you to provide overwhelming evidence of your value to the company. When you can show your return on investment (ROI), it’s much easier to secure a promotion, raise, or new job. Michelle Brenner's session consists of three parts. Writing your daily accomplishments in the form of success statements. Putting them together into a brag sheet. And, finally, using them to create your elevator pitch. This framework helps you make a habit out of documenting. Once you have documented yourself, you will be amazed at how much you have accomplished. You will walk away with the confidence and plan to take your next step.

Table of contents
  1. Document Yourself: A Framework for Career Advancement

Hiring, Firing, and Inspiring an Exceptional Team: CodeMash

by CodeMash

Feb 7, 2020 / 57m

57m

Start Course
Description

By grounding your leadership style in management science and adding emotional intelligence, you can help your team meet its individual and collective goals, improve morale and engagement, and reduce turnover. In this session, Seth Petry-Johnson will show early career managers how to improve recruiting and retention via core values, how to communicate with personality-typing tools like DISC, how to improve decision-making with a process called Cynefin, and how to "transition with empathy" when someone isn't working out.

Table of contents
  1. Hiring, Firing and Inspiring an Exceptional Team

Communicating Code to Business Stakeholders: CodeMash

by CodeMash

Feb 7, 2020 / 45m

45m

Start Course
Description

In this conference session, join Matt Eland and learn to gather, analyze, and interpret data in order to create effective presentations to communicate quality, technical debt, and other technical matters in ways that tell a compelling story. You'll master how to communicate effectively with key stakeholders by taking a data-driven approach blended with storytelling techniques to bridge common gaps between development and business stakeholders. You'll explore the seven tools of software quality and how they can bring clarity and sanity to the decision-making process, justify paying down technical debt, and focusing on improving software in the areas that need it most.

Table of contents
  1. Technical Debt Must Die - Communicating Code to Business Stakeholders

Technical Leadership 101: CodeMash

by CodeMash

Feb 7, 2020 / 50m

50m

Start Course
Description

Everyone has potential to be a technical leader. What is a leader? John Rouda's daughter says a leader is the person in front of you in line, and she's correct in that a leader is someone to follow. In this talk, John will explore how to lead those to your right and to your left from any level, not only as the “boss.” He will also share a story of failed leadership and explain the biology behind leadership. Leadership is about training, there is no magic formula, but there are ways to train your leadership muscles, just like you would train your body. You'll also learn how leadership is a process without an end.

Table of contents
  1. Technical Leadership 101

Conducting Humane Code Reviews: CodeMash

by CodeMash

Feb 7, 2020 / 32m

32m

Start Course
Description

In this conference talk, Adrienne Tacke will describe common mistakes developers make while performing a code review, the unwanted side effects they can cause among a team and their codebase, and worthwhile strategies to implement so that these issues are less likely to occur. By the end of this talk, developer teams should be able to conduct code reviews fairly, catch substantiated mistakes, make productive suggestions, and still like each other afterward.

Table of contents
  1. Conducting Humane Code Reviews

Public Speaking For Engineers: CodeMash

by CodeMash

Feb 7, 2020 / 51m

51m

Start Course
Description

In this conference talk, Robby Millsap will explain how to excel at public speaking, technical sessions, Q&A, and stand-up comedy. Robby will cover how to make the perfect deck, submitting abstracts, using humor, and how to build your personal confidence. You will laugh, you will grow, and you will leave inspired.

Table of contents
  1. Public Speaking For Engineers

The Art of Delivering Quality Software Quickly: CodeMash

by CodeMash

Feb 7, 2020 / 1h 28s

1h 28s

Start Course
Description

Building software is tricky business and the demands are higher than ever. Agile was meant to free many from the confines of red-tape driven software, but most people cannot help but feel something is off in their software process. Do you wonder why startups can launch an entire product in a few months, but it took your team six months to get that new feature into production? Do you get tired of having hour long meetings with 16 people just to talk about having another meeting to talk about the color of a button to use? Are you stuck building a bunch of features "just in case" instead of getting something working in front of a user? Does it take you more time to plan, document and release a simple change than it does to actually make the change? If any of these resonate with you, then join Josh Carroll to learn about a simple question you, your team, and your company can ask that will help cut through the bloat in your software process and start delivering value like never before.

Table of contents
  1. Going Fast: The Art of Delivering Quality Software Quickly

Dealing with Disagreement: CodeMash

by CodeMash

Feb 7, 2020 / 48m

48m

Start Course
Description

In this session, Tommy Graves will focus on a few of the most important tactics for dealing with disagreement. First, you'll take a look at the root causes of disagreement and examine how it's possible for disagreements to arise in the first place. Then, you'll learn about two strategies that can be applied immediately to disagreements: 1. disagree and commit, and 2. retrospective outlooks on disagreement. You'll encounter concrete examples of how these strategies have solved disagreements and talk through not only how to apply them personally but also how to get a team on board. The result will be a robust perspective on dealing with disagreement plus a genuinely enjoyable and productive work environment.

Table of contents
  1. Dealing with Disagreement

How to Recognize and Avoid Programmer Burnout: CodeMash

by CodeMash

Feb 7, 2020 / 41m

41m

Start Course
Description

Burnout among software professionals is far more widespread than many would like to admit. It can sneak up on you. At first, you might dread going in to work each day. You find that can barely focus enough to get through the day and struggle with tasks that should be simple for you. It starts there and gets much worse. What are some of the things that cause you to burn out? In this session, Santosh Hari will draw from personal experiences and have a frank and productive discussions on some of the well-known, and not so well-known causes of burn out, how to recognize the symptoms, how to avoid getting burned out and some tricks on coping.

Table of contents
  1. Programmer Burnout: How to Recognize and Avoid It

Coaching and Communicating with Diverse Teams: CodeMash

by CodeMash

Feb 7, 2020 / 59m

59m

Start Course
Description

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 interesting. Diversity encompasses more than gender and race, which creates challenges for development team members and managers. This session will help you overcome those challenges by helping senior and junior team members communicate more effectively. Kiera Prioleau will help you discover ways to tailor your communication style to fit the introverts and extroverts on your team. This knowledge will help you run effective deployments with both onsite and distributed teams. Through a production manager’s case study and other real-life examples, you'll leave with actionable steps for having a more successful, diverse, and creative development team.

Table of contents
  1. Coaching & Communicating with Diverse Teams

The Hows and Whys of Podcasting in 2020: CodeMash

by CodeMash

Feb 7, 2020 / 36m

36m

Start Course
Description

In 2017, Leo Dion started a podcast, "OK Productive," with his co-host Erik Gillespie. A few months later, he started another podcast, "Empower Apps," to compliment his business developing apps for Apple devices. In this conference talk, Leo gives some guidance on how to get started, how to foster audience growth, hosting and publishing, equipment upgrades, improving notes, consistent scheduling, and more. He'll also talk about podcasting as a great way to market yourself and your skills.

Table of contents
  1. The Hows and Whys of Podcasting in 2020

Security

These security-centric sessions give you a look at threat modeling, cryptography, and bug bounty programs.

Threat Modeling on the Family Road Trip: CodeMash

by CodeMash

Feb 7, 2020 / 58m

58m

Start Course
Description

Join Angela Pinney, software architect, in this conference session to discuss the challenges with adopting a security mindset on a product team, what steps you can take to empower your team members to own security of their own applications, and how you can leverage shift-left and modern CI principles to sustain it. You will leave this session prepared to champion security on your own team and to grow a security mindset in others.

Table of contents
  1. Threat Modeling on the Family Road Trip and Other Strategies for Delivering Secure Applications

How CTF Competitions Make You a Better Developer: CodeMash

by CodeMash

Feb 7, 2020 / 57m

57m

Start Course
Description

Have you ever been asked to "think like a hacker?" Do your eyes glaze over when you have to sit through a security audit of your application? Do you want to avoid having an incident? If any of these apply to you, consider participating in a Capture the Flag (CTF) competition. In this conference talk, John Koerner will explore the basic concepts of a CTF, a bevy of tools that are available to you, and dig into some example flags that have relevance to you as a developer. John will also cover topics such as buffer overflows, SQL injection, and cross site scripting, just to name a few. You'll walk away with the skills needed to participate in your first (or your next) CTF competition and with the knowledge of how this will make your applications more secure.

Table of contents
  1. Capture That Flag : How CTF Competitions Make You a Better Developer

Practical Cryptography for Developers: CodeMash

by CodeMash

Feb 7, 2020 / 47m

47m

Start Course
Description

Understanding the building blocks for cryptography is important for every software developer, especially as the quantity and value of data stored and sent over networks continues to grow. In this talk, Anthony Eden will introduce you to the fundamentals of cryptography, demonstrating concepts such as symmetric and asymmetric encryption, hashing functions, message authentication codes, and more, using code examples. By the end of this talk, you will have a basic understanding of the different components used to ensure primary functions of cryptography and a set of resources for further exploration into modern cryptography.

Table of contents
  1. Practical Cryptography for Developers

Securing Your API Endpoints: CodeMash

by CodeMash

Feb 7, 2020 / 47m

47m

Start Course
Description

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. This session is designed for the average developer/architect that wants a brief overview of API security without getting into the weeds of cryptography or complex authentication frameworks. You'll learn from Seth Petry-Johnson about OAuth, API Keys, HMAC, JSON Web Tokens (JWT), and more. Don't worry if those things sound foreign; they'll be explained in a clear, practical way so that you’ll be able to choose the appropriate tool for your specific needs.

Table of contents
  1. Securing Your API Endpoints - A Practical Authentication Guide

Open Source Security Vulnerabilities in Containers: CodeMash

by CodeMash

Feb 7, 2020 / 44m

44m

Start Course
Description

You stay on top of operating system vulnerabilities and patch regularly. Did you ever consider that there may be vulnerabilities in your containers? Not all vulnerabilities are created equal. In this talk, Matt Williams investigates methods for detecting and mitigating vulnerabilities in containers.

Table of contents
  1. What's in Your Docker? Open Source Security Vulnerabilities in Containers

What Happens When Your App Is Hacked: CodeMash

by CodeMash

Feb 7, 2020 / 56m

56m

Start Course
Description

Many of you know about various security checklists and how you should write more secure code. In this session, Joe Kuemerle 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 demonstrations of how a malicious actor can hack into applications and receive an overview of real world exploits that steal data, take over systems, and even compromise entire organizations. You will leave with concrete steps that you can take to mitigate similar attacks on your own systems.

Table of contents
  1. A Series of Unfortunate Events - What Happens When Your App Is Hacked

Intro to Mobile Security Testing: CodeMash

by CodeMash

Feb 7, 2020 / 57m

57m

Start Course
Description

Many of the introspection capabilities that exist for web development are absent by default on mobile platforms. This is particularly frustrating when you need to validate assumptions or security controls during development. In this talk, Hans Weisheimer will provide you with a basic understanding on how to audit your mobile apps.

Table of contents
  1. Hack Your App - Intro to Mobile Security Testing

Including Security in the Development Testing Process: CodeMash

by CodeMash

Feb 7, 2020 / 48m

48m

Start Course
Description

In this talk, Craig Hills will show you how to build security testing into your CI/CD pipeline. The primary goal is to think about what the appropriate level of testing is for your project, and determine how to make the most significant improvements to your security, while being cost effective.

Table of contents
  1. Including Security in the Development Testing Process

Explain It to Me Like I'm 5: OAuth2 & OpenID: CodeMash

by CodeMash

Feb 7, 2020 / 54m

54m

Start Course
Description

In this talk, you'll learn about Oauth2 and OpenID starting with their basic concepts presented in the simplest light possible. From there, the session will take a practical focus, and Daniel Mikusa will show you what you need to know as a developer, share tools and libraries to make your life easier and, of course, present concrete examples in Java, .NET, and for static apps.

Table of contents
  1. Explain It to Me Like I'm 5: OAuth2 & OpenID

DDoS Attacks: Threat Landscape & Defensive Countermeasures: CodeMash

by CodeMash

Feb 7, 2020 / 56m

56m

Start Course
Description

As Chris Holland looks at the role that 'Internet of Things' devices played in the attacks against Dyn and Krebs, he will dive into the DDoS attacks Threat Landscape: Symptoms, Motivations, Business Impact & Attack Vectors. Having thereby gained a better understanding of exposure to these threats, Chris will then explore Defensive Countermeasures with a strong emphasis on preparedness ahead of these attacks. After this talk, you will have a better understanding of what DDoS attacks are and how they work, a better understanding of your exposure to such attacks, and a set of concrete steps to better prepare ahead of an attack for more effective mitigation.

Table of contents
  1. DDoS Attacks: Threat Landscape & Defensive Countermeasures

Hacking on a Home Server for Fun and Profit: CodeMash

by CodeMash

Feb 7, 2020 / 26m

26m

Start Course
Description

Do you have a Raspberry Pi or various other computer components hanging around? If you do, come join Leo Guinan's journey down the road of system administration, beginning with an assortment of Raspberry Pis to a rack server. He will walk through the process of picking components, setting up a penetration testing lab, and a home automation portal. Finally, he will share how this experimentation affected his career path and recommendations for getting started.

Table of contents
  1. Hacking on a Home Server for Fun and Profit

Learning from Bug Bounty Results: CodeMash

by CodeMash

Feb 7, 2020 / 58m

58m

Start Course
Description

This conference talk is a fun, fast-moving survey of some of the best recent bug bounty finds against some of the largest and best-known applications in the world. Some of the bugs are really simple, some are super complex, but all are entertaining. Throughout this talk, John Melton will share what caused the issue and how to fix it. You'll walk away with entertainment, a view of the wide breadth of security issues, and practical ideas on testing and shoring up security in your own applications.

Table of contents
  1. Watch How The Giants Fall: Learning from Bug Bounty Results

Software Quality

This track focuses on software quality from documentation to many types of testing,

End to End Testing with Cypress: CodeMash

by CodeMash

Feb 7, 2020 / 57m

57m

Start Course
Description

A lot of companies are investing in end to end testing to release high quality software and remain competitive in today’s market. But, end to end testing comes with a set of challenges. Setting up, writing, running, and debugging these tests could be challenging and tedious. Now, with Cypress, end to end testing has become very intuitive and fun. Cypress is a blazing fast testing library that integrates well with your favorite front end frameworks like React, Vue, or Angular. With Cypress, you do not need to install various other tools and libraries to write and run your end to end tests. Since Cypress tests are so easy to work with, developers as well as QA engineers will enjoy it a lot. In this session, Avindra Fernando will explore Cypress and look at how you can integrate it with your web application. This end to end testing experience will enable you to release high quality software to your clients.

Table of contents
  1. End to End Testing with Cypress

Postman Delivers: CodeMash

by CodeMash

Feb 7, 2020 / 49m

49m

Start Course
Description

Whether you are a tester or a developer of HTTP APIs, chances are you are already using Postman to some degree and you are likely missing out on some of its advanced goodness. Using only features of the free version, this session with Bob Crowley introduces you to effective use of these features to save time, reduce errors, and share your work. You will learn how to declutter your collections with environments, create dynamic requests with the powerful scripting environment, chain requests, data drive an entire suite of tests with just a few clicks, backup and share your work, automate from the command line, and much more. Ditch the click, wait, verify, and repeat cycle! Concepts presented in this talk apply to API testing in general, whether you use another tool or test with code only. Save time and gain confidence in your software.

Table of contents
  1. Postman Delivers

Mutation Testing to the Rescue of Your Tests: CodeMash

by CodeMash

Feb 7, 2020 / 37m

37m

Start Course
Description

Unit testing ensures your production code is relevant. What ensures your testing code is relevant? Come discover mutation testing and make sure your never forget another assert again. In the realm of testing, the code coverage metric is often talked about. However, it doesn't mean that the test has been useful or even that an assert has been coded. Mutation testing is a strategy to make sure that the test code is relevant. In this talk, Nicholas Frankel will explain how code coverage is computed and what its inherent flaw is. Afterwards, he will describe how mutation testing works and how it helps pointing out code that is tested but leave out corner cases. This session also includes a demonstration on PIT, a Java production-grade framework that enables mutation testing.

Table of contents
  1. Mutation Testing to the Rescue of Your Tests

From Manual Testing to Automation Suite: CodeMash

by CodeMash

Feb 7, 2020 / 32m

32m

Start Course
Description

Do you start with automation or manual tests? Should you always consider both? Can developers help? Learn some easy steps for going from manual testing to writing full automation suites. In this talk, Mike Roznik provides numerous easy to understand code snippets, sources for more information, and encouragement.

Table of contents
  1. From Manual Testing to Automation Suite

Example Mapping: CodeMash

by CodeMash

Feb 7, 2020 / 29m

29m

Start Course
Description

Example Mapping is a collaboration technique used by teams to help refine requirements. Every team should have a set of “ready” criteria that includes some kind of workshop between development team members to establish a shared understanding. In a time-boxed Example Mapping session, rules will summarize examples or constraints about a user story. Questions about outcomes or dependencies are documented for future refinement. The end result is requirements written as user behavior with a shared understanding among all roles on an Agile team. Thomas Haver will walk learners through a live Example Mapping session and teach how to workshop within their own teams.

Table of contents
  1. Example Mapping: The New Three Amigos

Becoming a Better Curator of Your Code: CodeMash

by Pluralsight

Feb 7, 2020 / 42m

42m

Start Course
Description

Writing code that functions correctly is only part of the development process. You spend the majority of your time reading, maintaining, and refactoring code. In this talk, Ian Zelikman will discuss you making your job easier and more productive by seeing your work as code curation. Ian will start the talk with an introduction to the role of a curator and how it applies to software engineers. You'll also encounter principles and techniques that enable you to produce better code with a curation mindset.

Table of contents
  1. Becoming a Better Curator of Your Code

Let's Talk About Documentation: CodeMash

by CodeMash

Feb 7, 2020 / 1h 32s

1h 32s

Start Course
Description

Every field requires documentation, and some are far better at it than others. In this conference talk, Mike Hand will take a tour through the highlights and lowlights, hits and misses of documentation and then see what you can apply back to the field of software development.

Table of contents
  1. Let's Talk About Documentation

Hey, You Got Your TDD in MySQL DB: CodeMash

by CodeMash

Feb 7, 2020 / 44m

44m

Start Course
Description

When should you test your data? From an application development perspective, a unit test against a database isn't a unit test at all, which makes sense because connected systems introduce overhead and dependency, both of which reduce stability and decrease productivity during test-driven development (TDD). If you wait for integration testing, critical functionality can get missed. In this session, Jeff McKenzie will discuss strategies for filling the data testing gap, directly within a Microsoft SQL Server environment. If you do a lot of work in T-SQL but aren't familiar with TDD, you'll learn the why and how of test-first development. If you're accomplished with unit tests but never tried them in your database, you'll learn how to apply familiar concepts like setup, mocking, and assertion. The majority of this session will focus on walking through a solution based on a real-world project, specifically using the open source tSQLt database unit testing framework.

Table of contents
  1. Hey, You Got Your TDD in MySQL DB

A Brief History of Version Control: CodeMash

by CodeMash

Feb 7, 2020 / 58m

58m

Start Course
Description

Believe it or not, there was a time before Git. Even longer ago, there was a time before version control. In this conference session, Brian Meeker will discuss version control systems of yesteryear, such as SCSS and RCS, file locking, versioning, the Darcs patch theory, the history of version contraol, different paradigms, and the future of version control.

Table of contents
  1. From Punchcards to Git: A Brief History of Version Control

Azure Application Insights to Improve Your Code: CodeMash

by CodeMash

Feb 7, 2020 / 58m

58m

Start Course
Description

You've worked hard on your app and are excited to finally release it. However, you start encountering reports of slowness, and the app seems to crash once every seven hours. In this conference talk, Tim Jarzombek will discuss how to use Azure Application Insights to identify application issues, like slow performance and crashes to the line of code running on server-side or client-side.

Table of contents
  1. +5, Insightful: Azure Application Insights to Improve Your Code

How Using Your Words Improves QA Work: CodeMash

by CodeMash

Feb 7, 2020 / 34m

34m

Start Course
Description

In this talk, Katrina Ohlemacher has a lot to say about how using your own writing and storytelling skills makes for better reporting, increased reproducibility, better team dynamics and better overall testing. Katrina will cover note-taking, bug reports, client communication and more, all with help from Baker Street’s most famous resident.

Table of contents
  1. The Case of the Tenacious Tester: How Using Your Words Improves QA Work

UI/Design

CodeMash's UI/Design track was put together with UX designers and enthusiasts in mind. You'll learn about accessibility, user experience (UX), and more.

Beyond Alt-text: Trends in Online Accessibility: CodeMash

by CodeMash

Feb 7, 2020 / 46m

46m

Start Course
Description

If you're like the 2016 version of Ian Forrest, then you think you have a decent handle on web accessibility. You put alt attributes on all your images (though you don't give much thought to the actual text) and you make sure your sites can be used with a keyboard (except for overlays, sometimes). Then, the day comes when you're given a 100-page accessibility audit from a client and a deadline for all issues to be fixed. "What is high contrast mode," you ask yourself, "...and why does it matter if these links are implemented in a list?" In this presentation, Ian will share some of the hard lessons learned over the past few years, from both a development and a project management perspective. Topics discussed will include an overview of common accessibility problems, tools used to validate accessibility issues, and best practices for training your team.

Table of contents
  1. Beyond Alt-text: Trends in Online Accessibility

Building a Custom CSS Framework Was Easier Than I Thought: CodeMash

by CodeMash

Feb 7, 2020 / 55m

55m

Start Course
Description

By combining React, design systems, and Storybook, Nate Taylor's team was able to create their own component library from scratch. They also found that their team was much more collaborative involving developers and designers as they created a custom user interface (UI) for otheir ur client. This talk walks through their experience and lessons learned, and it highlights some tools and libraries that were essential in creating a UI framework.

Table of contents
  1. Building a Custom CSS Framework Was Easier Than I Thought

Twelve Spins on User Experience: CodeMash

by CodeMash

Feb 7, 2020 / 53m

53m

Start Course
Description

What is “user experience (UX)”? 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. In your organization, is UX a design process, a separate team, a ubiquitous skill, or a meaningless buzzword? If people are confused about user experience in your organization, then this talk is for you. In this session, Keith Instone will share 12 spins on UX so that you can communicate about it better. The 12 UX spins can be helpful in integrating UX with agile, defining roles, writing job descriptions, adopting DesignOps, or planning your next reorg.

Table of contents
  1. Twelve Spins on User Experience

The UX of Configuration Files: CodeMash

by CodeMash

Feb 7, 2020 / 47m

47m

Start Course
Description

Developers should be your primary concern when designing an interface for them to configure your tools and libraries. There are options other than JSON available, but they come with associated costs and limitations. In this session, Eemeli Aro will explore the following: How well do JSON5, YAML and TOML work with each other, and what else is out there? How do the tools associated with these languages compare, and when is writing your own the right choice? Do you even really need config files?

Table of contents
  1. The UX of Configuration Files

Usability Starts with Accessibility: CodeMash

by CodeMash

Feb 7, 2020 / 27m

27m

Start Course
Description

For many web developers, accessibility is an afterthought. What many fail to realize is that planning for accessibility from the beginning can enhance the design process rather than hindering it, with the end result being more usable by everyone. In this conference talk, Patrick McSweeny will cover some common web accessibility techniques and show you how they can change the way you think about web design.

Table of contents
  1. Usability Starts with Accessibility

Web/Front End

These sessions place the spotlight on front end web development and tools like Angular and JavaScript.

Angular and the Case for RxJS: CodeMash

by CodeMash

Feb 7, 2020 / 41m

41m

Start Course
Description

When choosing Angular to build a front end application, it can seem like RxJS is just one more thing to learn without an easy way to transition from another framework. However, RxJS is efficient and expressive. RxJs declares relationships between entities describing the what, not the how. The basic sequence operators are likely familiar from using them in array chains. RxJS is a core part of the Angular framework used in everything from Reactive Forms to the HTTP module. Harnessing observables with Angular’s async pipe is essential to building clean and concise components. Developers can overcome the RxJS learning curve by focusing on core concepts like hot vs. cold observables, piping operations, and a few of the most common operators. Join Sandi Barr to learn more.

Table of contents
  1. Angular and the Case for RxJS

Mock It 'til You Make It: CodeMash

by CodeMash

Feb 7, 2020 / 40m

40m

Start Course
Description

In this session, Gabriela Dombrowski wants to automate the 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. You'll learn how to use GraphQL and Apollo in a React application to build providers that will dynamically auto mock all the things for tests and stories. This talk assumes the audience has prior knowledge of React and GraphQL.

Table of contents
  1. Mock It 'til You Make It

An Introduction to WebAssembly: CodeMash

by CodeMash

Feb 7, 2020 / 57m

57m

Start Course
Description

In this session, Guy Royse will introduce you to WebAssembly, explain how WebAssembly works, and how to use it. You'll gain an understanding of how it might fit into your application, and how to build your own WebAssembly modules. Guy will also demo how to build and use those modules with both Rust and the WebAssembly Text Format. After this talk, you'll have the footing you need to start building applications featuring WebAssembly. Grab a non-JavaScript language, a modern browser, and let's get started!

Table of contents
  1. An Introduction to WebAssembly

Principles of Modern JavaScript: CodeMash

by CodeMash

Feb 7, 2020 / 49m

49m

Start Course
Description

In this session, Joe Morgan will explore how to think in modern JavaScript. Learners will encounter principles in modern JavaScript and learn how those principles apply to new syntax and upcoming language changes. Don’t throw new syntax into old paradigms; write intentional code.

Table of contents
  1. Burn It Down and Start Again: Principles of Modern JavaScript

Vue 3.0 Better, Faster, and Stronger: CodeMash

by CodeMash

Feb 7, 2020 / 1h 23s

1h 23s

Start Course
Description

Vue released its long-awaited v3 and there are new features to get excited about. In this presentation, Dan Vega is going to cover some of the highlights with code examples of what's included in VueJS 3.0 and tools that will help you upgrade your existing applications to 3.0.

Table of contents
  1. Vue 3.0 Better, Faster & Stronger

React State: Redux & Context & Hooks, Oh My: CodeMash

by CodeMash

Feb 7, 2020 / 42m

42m

Start Course
Description

In the age of ephemeral JavaScript frameworks, ReactJS came out and continues to grow in popularity. How should you handle state? In this talk, Michael Moran discusses and compares many options, including React component state, Redux, the React Context API, and the new React Hooks.

Table of contents
  1. React State: Redux & Context & Hooks, Oh My

Human Readable JavaScript: CodeMash

by CodeMash

Feb 7, 2020 / 51m

51m

Start Course
Description

JavaScript hasn't always been easy to read. The good news is that things have gotten better! ECMAScript 2015 (and beyond) features are valuable additions to the language that improve its readability. Writing readable code is a win for the whole team, and this session with Laurie Barth will focus on the features of ES2015 that make code more readable to all.

Table of contents
  1. Human Readable JavaScript: Using ES2015+ to Craft Better Code

StencilJS and Universal Components: CodeMash

by CodeMash

Feb 7, 2020 / 50m

50m

Start Course
Description

Have you ever found an awesome component online but couldn’t use it because it was written for a different framework? For too long, frameworks got in the way of developers sharing code. With different APIs, developers would have to rewrite a component multiple times to be able to work with React, Angular, Vue, or Ember. Built on open web standards, web components provide a way for creating reusable components that work within every framework. In this session, Mike Hartington will share what Ionic has been experimenting with and discuss why Web Components are the way of the future.

Table of contents
  1. StencilJS and Universal Components

JavaScript the Grumpy Parts: CodeMash

by CodeMash

Feb 7, 2020 / 1h 6m

1h 6m

Start Course
Description

Many people love JavaScript, but it's weird. Why does this behave as it does? How does variable scope work? Why do you have such comical behavior when comparing mixed types? In this conference talk, Rob Richardson looks at these scenarios and shares how it truly works.

Table of contents
  1. JavaScript the Grumpy Parts