Mid-Atlantic Developer Conference is a polyglot event, designed to bring together programmers from the region, regardless of their choice of platform, for two full days of learning from each other and building a stronger regional community.

Thursday 1st August 2019

08:00
0
Registration (1 hour)

(No Description)

09:00
1
Travelers Tale: Two Decades of Open Source
Keynote by Jim Jagielski (1 hour)

In over 20 years, Jim has seen Open Source evolve from a small movement of a handful of projects to the de-facto standard in IT; from a philosophy misunderstood and derided by many, to the cornerstone of emerging tech. Get an insiders view on how open source has grown and changed, and the challenges and opportunities that still exist.

10:15
1
Domain-Driven Design Workshop
Workshop by Andrew Cassell (2 hours, 15 minutes)

Building applications using Domain-Driven Design results in code that is easier to modify, maintain, test, and a better user experience. In this workshop, we will learn how to build a ubiquitous language with stakeholders and translate it into encapsulated logic, objects, entities, and contexts. Building applications using domain-driven design (DDD) techniques results in code that is easier to modify, maintain, test, and makes for a better user experience. In this hands-on tutorial, you will become versed in the best practices for solving problems from start to finish. You will learn to: – Discover a ubiquitous language and identify changes in the design of classes, methods, and problem solving – Assemble an incorruptible domain model by encapsulating business logic in immutable value objects, specifications, and entities – Plan for change by using the Hexagonal Architecture Pattern – Evaluate when and how to use CQRS and Event Sourcing techniques – Introduce DDD to a “legacy” codebase – Discover recommended resources for learning more about DDD

1
Ethical Hacking for Development Teams
Talk by Rajni Hatti (1 hour)

We all know that application security testing is critical in today's world, but what exactly is it? There are many automated security tools that do the testing for you, but it is critical to understand what goes on under the hood of these tools in order to become a better developer and tester. Security testing is often handled by a specialized team or a set of automated tools, but every development team should understand the basics of how malicious data can enter a system in order to prevent the vulnerabilities from occurring in the first place. In this session, we’ll take a look at fuzzing, a type of black box security testing used in dynamic application security testing (DAST). I’ll present the top 5 fuzz vectors that are used to exploit vulnerable systems and how to develop and test against them. You will learn how to be an ethical hacker in order to make your system more robust and you will leave with a better understanding of how to incorporate a security mindset into your daily development and testing efforts.

1
The Coder’s Journey: Community and Gatekeepers
Talk by Bekah Hawrot Weigel (1 hour)

Frodo couldn't have made it to Mount Doom without his allies and companions. But at each step of the way there were gatekeepers trying to keep him from achieving his goals. Gatekeeping in tech is no new thing. By creating and getting involved in positive communities, we create stronger teams. With the rise of second career devs thanks to internet resources and coding bootcamps, coding is for everyone. But it’s only for everyone if we stop gatekeeping and allow community to prime us for success. Coming from a background in English, and learning to code when I had full-blown PTSD from a labor and delivery gone wrong, I found that not only did coding help me to overcome my PTSD, but it also gave me more resources than ever to solve my own problems. As I progressed in my bootcamp, I became involved in a number of coding communities, including Moms Can: Code, and found that both support for the personal journey along with the technical journey of coding, helped to ensure my growth as a developer. Gatekeeping isn’t just rejecting newbies, but it’s also not providing support for those with imposter syndrome, those coming back into the workplace after a gap in the resume for things like raising children, it’s rejecting people because you don’t feel like they fit into your “culture.” This talk will focus on community building and the strength it provides to teams and companies. It will give examples of how to build community, recognize gatekeeping, and create a positive atmosphere prime for positivity and growth.

1
Outrun the 🐻 Performance for Progressive Web Apps
Talk by Chris Lorenzo (1 hour)

Struggling to get your website to load in less than 5 seconds on a mobile phone? You’re not alone! At Comcast we’ve built many responsive sites and work hard at optimizing for performance. Using the latest PRPL pattern and Progressive Web API’s, we provide a compelling alternative to native apps. Struggling to get your website to load in less than 5 seconds on a mobile phone? Switching pages are a little sluggish? You’re not alone! Most web developers can build a responsive site, but fail to meet performance requirements for mobile. Using the latest PRPL pattern and Progressive Web API’s, you can provide a compelling alternative to native apps, as long as performance remains your top feature. This talk will cover the architecture for Xfinity xFi, an enterprise PWA for Comcast, built with Google Polymer. We’ll then dive into the Chrome performance tools to optimize xFi loading time down by more than half. You’ll walk away knowing what it takes to create a successful PWA and how to find slow downs in your app startup.

11:30
1
This Just Isn’t Working (On My Machine): Dev vs QA
Talk by Katie Cleveland (1 hour)

As a member of this dev and QA relationship, do you ever feel like you aren’t on the same page? Are there things you would change in your partner? Come join my session, where we will review the two perspectives from both sides of the code, and all of the emotions in-between- to benefit us both. Take a seat on my couch. As a member of this developer and QA relationship, do you ever feel like you aren’t on the same page? Communicate differently? Are there things you would change in your partner? What do you want out of this relationship? If you have pondered any of these questions, come join my session, where we will have gathered the two perspectives from both sides of the code, and all of the emotions in-between. We will examine these common relationship issues between developers and QA, and the changes we can make to ensure a productive, long-lasting relationship.

0
MySQL and GIS
Talk by Dave Stokes (1 hour)

MySQL has been very busy with the last two releases adding support for spatial extensions. This talk will cover the OpenGIS Geometry Support in MySQL 8 including GeoJSON, spatial indexes, and more. MySQL now support both Cartesian and geographic SRSs so you can have an ellipsodial world! MySQL has been very busy with the last two releases adding support for spatial extensions by working with the Boost.Geometery folks to greatly improve GIS support. This talk will cover the OpenGIS Geometry Support in MySQL 8 including GeoJSON, spatial indexes, and more. MySQL now support both Cartesian and geographic SRSs so you can have an ellipsodial world! And this support extends to the MySQL Workbench and other products too!

1
Code Is Not Neutral: Ethics of Web Development
Talk by Clarissa Peterson (1 hour)

It's easy to forget that the code you write does things that affect real humans. Social networks letting your data be stolen. Racist algorithms that decide how long someone goes to prison. Self-driving cars choosing which lives to save in a crash. Developers make all of those things happen. Are you responsible for the software you design or the code you write? Ask the Volkswagen engineer who's in prison for creating software that allowed their cars to “cheat” on emissions tests. Or think of the ethical issues if you're creating IoT devices that spy on users and report back to the company. And what about social networks that allow users’ data to be stolen? Or self-driving cars that have to choose which lives to save in a crash? Designers and developers make all of these things happen. It's easy to forget that what we design and build affects real humans. We need to be aware of how much power we've been given and start taking responsibility for what we create.

12:30
0
Lunch (1 hour)

(No Description)

13:30
1
APIs for Microservices
Talk by Mike Stowe (1 hour)

The concept of Microservices is changing the way we build and architect our systems, but are we really setting ourselves up for success? How can we ensure that our APIs act as a contractual, yet flexible representation of our service – and how do we address the “glue” issue to prevent ourselves from service lock-in? In this session, we’ll jump back into history to see what’s worked and what hasn’t, look at how to build truly decoupled services, and explore tools and technologies that make the entire process easier.

0
DevOps State of Mind: Continuous Security with Kubernetes
Talk by Chris Van Tuin (1 hour)

Is your organization ready to address the security risks with containers for your DevOps environment? In this presentation, you'll learn about best practices for the top security risks in your container environment and how to automate and integrate security in your DevOps CI/CD pipeline. With the rise of DevOps, containers are at the brink of becoming a pervasive technology in Enterprise IT to accelerate application delivery for the business. When it comes to adopting containers in the enterprise, Security is the highest adoption barrier. Is your organization ready to address the security risks with containers for your DevOps environment?  In this presentation, you'll learn about: — Best practices for addressing the top container security risks in a container environment including images, builds, registry, deployment, hosts, network, storage, APIs, monitoring & logging, and federation. — Automating and integrating security vulnerability management & compliance checking for container images in a DevOps CI/CD pipeline — Deployment strategies for deploying container security updates including recreate, rolling, blue/green, canary and a/b testing.

2
Algorithms in Context
Talk by Lane Staples (1 hour)

Our community is rich with self taught developers from a wide variety of backgrounds because of programming being very accessible at the moment. As a result, many of us are well into our professional lives before we integrate computer science concepts, like algorithms, into our knowledge base. This talk will look at several such algorithms, what they are useful for, but also their limitations and how we can use a clear understanding of the real world context in which we’re using them to create code that performs and serves our users better than the algorithms alone could manage.

2
Managing the Burnout Burndown
Talk by Aneika Simmons (1 hour)

In addition to managing backlogs and burndown charts, technology leaders have to follow an ever-changing software landscape, manage team dynamics, and navigate office politics. It’s no surprise that this leads to burnout. This talk will provide tools to help get stress into a managed state. Engineering managers are, almost by definition, highly capable and strongly driven individuals. These traits are indispensable to success in leading software engineering teams, but they are also the very traits that make engineering managers susceptible to burn out. People who can get things done often find themselves overwhelmed by their to-do lists. This talk will combine the understanding from the trenches of Anjuan Simmons (who has been an engineering manager for more than 20 years) with the academic understanding of his wife, Dr. Aneika Simmons. Together, they will provide a framework for reducing burnout and consistently keeping stress levels in a managed state.

14:45
0
Kubernetes: The Second Week
Workshop by Mofizur Rahman (2 hours, 15 minutes)

If you are someone who is trying to learn how to use Kubernetes you probably already know the high level overview. There are great resources for it already. We are gonna talk about the second week stuff. The ones intro tutorials usually miss and advance tutorials gloss over. Kubernetes is probably the de-facto container orchestrator for most people using container orchestrators. There is a huge demand for it as well as a lot of interest among people to learn Kubernetes. I like most people wanted to learn how it all worked. And don't get me wrong the docs for Kubernetes are great. The community as a whole also created many tutorials, blog posts, videos books etc. But I still find something is missing. The intro tutorials are too basic sometimes. They are great if you want to learn the architecture of Kubernetes and how it all fits together. There are some real advance use case tutorials that dive deep in one aspect of K8s. But there is missing link of middle ground. I hope to help bridge that with this workshop. We will look at what I call second week of learning Kubernetes. You got the idea behind Kubernetes. You have played a bit with minikube. You have deployed the nginx server. But whats next? We will talk about other lesser known but important features of k8s. We will tackle things like rollout, rollback, resource quotas, private image registry, continuous deployment and many more. You know the second week stuff.

0
Looking Good: Introduction to Visual Regression Testing
Talk by Loren Klingman (1 hour)

Testing that a web application functions correctly is already commonplace, but how do you test that the app looks good as well? Functional tests may pass even if text is stacked on top of other tests. The talk help you get started with visual regression tests using open source frameworks. Testing that a web application functions correctly is already commonplace, but how do you test that the app looks correct as well? Functional test tools can type into hidden fields, but your users cannot. The talk will walk through getting started with visual regression tests using open source testing frameworks. You’ll walk out of this talk prepared to add visual regression tests to your own applications.

0
Close Encounters of the Node Kind
Talk by Kelly Andrews (1 hour)

What would you do if the aliens landed tomorrow? Call the Area 51 Hotline, of course. Learn how to build your own call center so the UFO sightings can be documented easily. Building an Area 51 Call Center with Node-RED Would you know who to call if "The War of the Worlds" actually broke out? If aliens decided to land tomorrow, we are all horrifically unprepared, and personally I think only chaos would ensue. Never fear. We can build the solution. We can easily create an automated call center for Area 51 using Node-RED. Node-RED uses Flow-Based Programming in a browser-based visual editor. Built with Node.js, you can quickly build applications, and deploy with a single click. Node-RED has a library of community built integrations to allow you to build integrations with multiple services and publish with a single click. By the end of this talk, you should have the tools to start building with Node-RED, and a solution when the aliens climb aboard their starship and head for the skies.

1
FOSS Governance: The Good, the Bad & the Ugly
Talk by Deb Nicholson (1 hour)

Maintaining and scaling your project is easier when you've laid a good foundation -- join me for whirlwind tour of what not to do, what to do instead and maybe what you can do to fix what you've already done. There are lots of ideas out there about how to run a free and open source software project... but not all strategies were created equal. Sometimes governance "just happens" but more often than not, projects end up with some things that work and some that don't. Transparency, clear expectations and compassion go a long way towards helping you find people who support your vision but can still bring new ideas to the table when it comes time to talk implementation. Your project's governance should reflect your values and empower individuals to succeed within its structure. Specific topics that will be covered: How to bring in people who share your vision Why transparency matters Sharing expectations early and often Which legal decisions to sort out early Maintaining and scaling your project is easier when you've laid a good foundation. The wider community is mature enough that we can learn from what's already been done and set up new projects for success. This talk will cover some of the big red flags you'll want to avoid as well as some of the structural details that will help avoid issues later on.

16:00
1
From Caesar Cipher to Quantum Cryptography
Talk by Joel Lord (1 hour)

Some of the greatest wars in history have been won thanks to good encryption, or lost due to great cryptographers. Even if we don’t think about it, encryption and cryptography are a big part of our lives, now that https is the defacto standard for the web. Humans of all times have used codes and ciphers. Some of the greatest wars in history have been won thanks to good encryption, or lost due to great cryptographers. Even if we don’t think about it, encryption and cryptography are a big part of our lives, now that https is the defacto standard for the web. While most modern developers want to ensure that their data is secured, most of them don’t understand how the data is encrypted or how cryptography works. During this talk, the attendees will understand where ciphers come from by going through a journey in the history of cryptography. With examples from the Caesar cipher all the way to quantum cryptography, the speaker will explain in simple terms how cryptography evolved into what it is today and how it should be used to secure user data.

1
/[Rr]eg(ular\s)?[Ee]x(p$|pression)?/
Talk by Jordan Kasper (1 hour)

Regular expressions exist in a mystical, magical wonderland that many developers avoid like the plague. This talk aims to demystify this useful and powerful tool. We'll talk about what regular expressions are, why we use them, some basic concepts, and some new ones for developers of any level. Regular expressions (RegEx or RegExp depending on whom you ask) exist in a mystical, magical wonderland that many developers avoid like the plague. This talk aims to demystify this extremely useful and powerful tool. We'll talk about what regular expressions are, why we want to learn them, and the basic ins and outs of matching text and seeing those results. There are a lot of concepts in this tool, but this talk will hit the basics: character classes, grouping, escaped characters, flags, modifiers, and more. While not every language implements regex the same, this talk will give attendees the foundations they need to work in any language.

1
Building a Mentoring Community Through Live Coding
Talk by Jesse R Weigel (1 hour)

Have you ever wanted to be able to work with a team of developers, sharing your knowledge and learning from those with more experience? Learn about creating a diverse, widespread, encouraging, and productive community through Live Coding! Since I began live coding in May of 2017, an amazing community of developers of all ages, locations, and skill levels has grown around the live streams. We share ideas, teach and support each other while working on real projects together. Through this community our technical and non-technical skills have leveled significantly faster than they did on our own. Some of the ideas that are shared have had a significant impact on our projects. From using auto-formatting and a standard JavaScript style to prevent endless debates and merge conflicts, to using GraphQL instead of REST APIs, nearly every aspect of development has been influenced by my live coding. I even switched my code editor! We have managed to create a respectful, open, and encouraging environment. Everyone is free to share their ideas without fear of being ridiculed. A great variety of perspectives is heard and leads to innovation. Sometimes these ideas transform a project. Other times they are the start of great discussions. Even if the ideas are not ultimately used in the project, they are still teaching moments as community members discuss the pros and cons of the idea. I would like to share my experience and offer some advice on how to create a respectful online environment where everyone is encouraged to ask questions and contribute and negativity is nearly non-existent.

19:00
0
Movie Night (2 hour)

Staying overnight with us?  Join us back in the Auditorium for Movie Night! We will be announcing the movie shortly, but if you have a favorite, hit us up on Twitter - @middevcon to give us your vote.

Friday 2nd August 2019

08:00
0
Registration (1 hour)

(No Description)

09:00
0
Kubernetes: The Video Game
Talk by Grant Shipley (1 hour)

The Kubernetes API is amazing and we are not only going to break it down and show you how to wield this mighty weapon, we are going to do it while building a video game, live, on-stage. As a matter of fact, you get to play along! The speaker in this session wanted to create a game and learn kubernetes. He thought this was out of his reach until he met the Javascript Phaser Game Engine and the Kubernetes API. In this session, Grant Shipley will walk you through the code he wrote to create a retro style Wild West shooter that manipulates Kubernetes resources as part of the game. This session will leave the slides at the door and will focus on code and live demos. At the end of this session, you should have enough knowledge to gamify Kubernetes or to at least automate it for real-world use cases.  This talk will also include an introduction to containers and kubernetes.

1
OAuth 2.0 and OpenID Connect (In Plain English)
Talk by Micah Silverman (1 hour)

You've probably at least heard of the OAuth and OpenID Connect standards. It's challenging to find a good overview of how they work. In this talk, Micah digs into these protocols in plain English, including a "Live Action OAuth Theater" segment in which volunteers act out a common OAuth interaction. Here's the Live Action OAuth Theater segment of the talk (5 minutes) If you've ever tried to search for information on OAuth and/or OpenID Connect, you've probably encountered deep dive code examples or references to the specifications. The specifications are great if you're building OAuth from scratch or suffer from insomnia. Many examples focus on just code, rather than concepts. These types of resources are not useful for understanding the concepts and historical backdrop for why OAuth and OIDC exist. In this talk we start with the foundations of federated and delegated authentication and authorization, work our way through concepts and foundations for OAuth and OIDC and end with some practical demonstrations of the standards in action.

1
The Afterlife: Languages Beyond JavaScript
Talk by Jennifer Wong (1 hour)

JavaScript: flexible, beginner friendly, and many web developers' first programming language. What's it like to learn a second language after JavaScript? How do you map JS learnings onto another programming language? Learning Python surrounded by Python developers helped me discover all of JavaScript's weirdnesses. What do you mean Hoisting, Prototypal Inheritance, and this don't exist in Python? But I love my curly braces and semicolons! Accepting JavaScript’s quirks was one thing, but fully acknowledging them only came with learning Python. Watch me unearth core differences between JavaScript and Python, and learn why I'm a better JavaScript developer because of it!

1
Building an AI Twitter Bot to Guess Photo Locations
Talk by Randall Hunt (1 hour)

Learn how we built and deployed the @WhereML Twitter bot that can identify where in the world a picture was taken using only the pixels in the image. We'll dive deep on artificial intelligence and with the MXNet framework and also talk about working with the Twitter Account Activity API. Machine Learning in Production with Twitter Bots In this session attendees will learn how we designed, built, and deployed the @WhereML Twitter bot which can identify where in the world a picture was taken using only the pixels in the image. We'll dive deep on artificial intelligence and deep learning with the MXNet framework and explore the Twitter Account Activity API. Who Should Attend This Session? You should attend this session if you are interested in learning more about modern machine learning tools and processes. You should also attend this session if you're interested in production deployments of machine learning models. Architecture The WhereML twitter bot is built on the LocationNet model which is trained with the Berkley Multimedia Commons public dataset of 33.9 million geotagged images from Flickr and other creative commons sources. The model is based on a ResNet-101 architecture and adds a classification layer that splits the earth into ~15000 cells created with Google's S2 spherical geometry library (the only part of the talk that's not in Python). This model is based on prior work at Berkley and Google. In this session we'll start by describing AI in general terms for audiences who are unfamiliar with how it works. Then we'll dive into deep learning and the Apache MXNet machine learning framework, numpy, and scikit-learn. We'll describe the LocationNet model in detail and show how it is trained and created and areas for improvement. Finally, we'll talk about the Twitter Account Activity Webhooks API and how to interact with it using an API Gateway and AWS Lambda function. Attendees are encouraged to interact with the bot in real-time on twitter at @WhereML. Key Takeaways: - The latest and greatest framework and models don't matter if you don't understand your core questions - An architectural change can have vastly more powerful effects than just throwing more data at a problem - Bigger models are not always better - Machine learning is fun and you can perform experiments rapidly - Twitter's account activity API is brilliantly designed but a little haphazardly implemented All code used in this project is open source, built live on twitch.tv/aws, and attendees are encouraged to experiment with it.

10:15
0
JAMStack Jumpstart - Gatsby + Netlify
Workshop by Shawn Wang (2 hours, 15 minutes)

This workshop will teach developers to set up a simple but state of the art Gatsby and Netlify stack, which lets people create blazing fast sites and apps with React and GraphQL. It has never been easier to get a great Lighthouse score, or to deploy complex, secure webapps for free. There is a lot of developer and investment interest in JAMStack technologies, from the serverless movement to new authentication models to continuous atomic deployment to the static site generator renaissance. But with so many new terms and options, it is hard for people to figure out where to start. This workshop will teach developers to set up a simple but state of the art Gatsby and Netlify stack, which lets people create blazing fast sites and apps with React and GraphQL, backed up by a continuous deployment and serverless platform complete with authentication and CMS. It has never been easier to get a great Lighthouse score, or to deploy complex, secure webapps for free. Links: Info on JAMstack: https://jamstack.org/ VC interest in JAMStack: a16z: https://a16z.com/2017/08/09/netlify/ KPCB: https://www.kleinerperkins.com/perspectives/netlify-modernizing-the-web CRV: https://medium.com/@CRVVC/the-jamstack-startup-landscape-c06cc3cdb917 Redpoint: https://medium.com/memory-leak/the-jamstack-its-pretty-sweet-e0834e4e6bb7 Developer interest in JAMStack: Conf https://www.youtube.com/channel/UC8bRyfU7ycLXnEBfvdorpUg Hackathon https://hackathon.freecodecamp.org/

0
MySQL Without the SQL — Oh My!
Talk by Dave Stokes (1 hour)

MySQL can now be used as a NoSQL, schema-less document store. This means no more em,bedding ugly SQL code in your beautiful code, having to normalize data, or setting up tables before you can start using the most popular database on the web. This session will cover what you need to start today! MySQL can now be used as a NoSQL, schema-less document store. The MySQL Document Store was introduced with MySQL 5.7 along with a new shell and API to make life for developers easier. This means no more em,bedding ugly SQL code in your beautiful code, having to normalize data, or setting up tables before you can start using the most popular database on the web. You no longer need DBA-level skills to set up your database -- just open a document collection and start coding. This session will cover what you need to start today!

2
Offices Are Over: Lead a Remote Workforce in the Digital Age
Talk by Laura B Janusek (1 hour)

The remote working trend is becoming more and more popular, especially in STEAM industries, whether it’s a weekly work-from-home day or an overall company structure. This presentation will provide actionable tips from an experienced manager of a remote workforce, including how to effectively connect with a remote team, how to build a culture that supports this setup, how to promote both flexibility and accountability in your team, and how to have fun while doing it! This session will empower you with the actionable knowledge and skills you need to create a successful remote team. Rather than subscribing to the outdated idea that an office is the only place to be productive, you will come away with the facts and the potential to reshape your work environment. Rather than feeling isolated when working outside of a traditional office, you will leave knowing how to feel connected, motivated, balanced, and engaged with your team members and your work. Not sure if it's right for you? This session directly applies to anyone who works with people outside of the traditional office environment, or anyone who is interested in learning more about this setup. It's particularly geared towards managers and members of remote or dispersed teams, including people who work from home, work at a satellite office away from most of their colleagues, are regularly separated from team members due to travel, etc. And if you don't fall into one of those categories now, studies indicate it's becoming more and more likely that you will in the future, so get a leg up on how to handle it like a pro!

0
From AWS EC2 to Kubernetes on GCP
Talk by Oliver Hardt (1 hour)

This is the story of how the Algorithmic Recommendations team at The New York Times moved from EC2 in AWS to Kubernetes on Google Cloud. I will explain how we moved about a dozen services under live load, what our architecture used to look like and how we transitioned to containers running on GKE. I will give a detailed breakdown of how we migrated our production traffic system from VMs on AWS to Kubernetes, managed by GCP. It’s a drama in three acts: - Act 1: we happily live in AWS, serve recommendation traffic from EC2 instances, managed by Puppet, Jenkins, Consul, APIs written in Go but trouble looms on the horizon. - Act 2: The world is in turmoil, the decision was made to move to GCP. We start to containerize our apps, move to a new Ci/CD pipeline, figure out Kubernetes and serve traffic out of AWS and GCP, multi-cloud by accident. - Act 3: we finish the migration and productionize our Kubernetes setup, using Prometheus for monitoring, drone.io for the CI/CD pipeline and celebrate the end of our Jenkins and Puppet usage. There will be actual code and config snippets, e.g. showing how used nginx as a reverse proxy between clouds. I’ll show how the new CI/CD pipeline works and how we gather and use metrics (in both the old and new world).

11:30 The Container Is a Lie!
Talk by Larry Garfield (1 hour)

Containers are all the rage these days, but what are they, really? They're just a shorthand for certain OS features that let the OS lie to programs about how they're running. All modern software is based on lies! Let's look at what those lies are, and how they work. Containers are all the rage these days. They’re fast, they make deployment easy, they handle dependencies, they slice, they dice, they make julienne fries! But... what are they? What exactly is a container and how does it work? Just how does a container differ from the “old” silver bullet, virtual machines? Here’s a hint: It has nothing to do with boats, or whales, or shipping. That’s all marketing fluff. Containers are simply a shorthand name for leveraging newer features of operating system kernels that let the OS lie to programs about how they’re running. In fact, all of modern software is built on lies. That’s what’s useful about it! To understand how that works, why it’s so useful, and where it’s not, let’s dive into how software actually works on a modern Linux system to see how those kernel features fit into the big picture, building up to “containers” along the way. Pull back the veil of lies and see how your computer really works.

1
Immutability to Save an Ever-Changing World
Talk by Andrew Cassell (1 hour)

Want to build software that is more testable, modifiable, and has fewer lines of code? Architecting with immutable objects is the most important lesson I have learned in building better applications. Also, learn how to use immutable objects and collections to improve design of mutable entities. Want to build software that is more testable, easier to modify, and has fewer lines of code? Architecting with more immutable objects that are always in a valid state is the most important lesson I have learned in building better software applications. Using immutable value objects will lead to less checking, fewer bugs, and more DRY code, and will help avoid the “spooky action at a distance” problem in PHP. We will also learn how to use immutable objects and immutable collections to improve design of our mutable entities. Lastly, we’ll see how immutable objects and functional programming can reduce complexity.

0
The Ethics of Innovation, Dark Patterns & Accessibility
Talk by Joe Devon (1 hour)

Innovation brings on challenges. Most recently, developers are faced with moral dilemmas. Increasingly our code affects the emotional and sometimes physical well being of our users. This talk will explore the ethics of business, the moral tradeoffs we are being asked to compromise on, a review of Dark Patterns and how all of this affects People with Disabilities (“PwD”). We will end with some takeaways on how we can maintain our morals and take back the conversation.

12:30
0
Lunch (1 hour)

(No Description)

13:30
2
React + GraphQL + WordPress with Zero Server Management
Workshop by Jesse R Weigel (2 hours, 15 minutes)

Learn how to set up a lightning fast React app and headless WordPress with GraphQL for content management all without the need to maintain a server. We will go over using cloud technologies for MySQL and media files, and Now to serve our React app and WP. Based on a real, large scale project! Learn how to set up a lightning fast React app and headless WordPress with GraphQL for content management all without the need to maintain a server. We will go over using cloud technologies to host MySQL and all our media files for WordPress, and Now (from Zeit) to serve our React app and WordPress. We will create custom routing and caching for React using NodeJS and Express. Why would you want to do this? Automatic scaling Deployment and updates with no downtime, straight from the terminal Track WordPress with Git Automatic database and media file backups Speed of React + User friendliness of content management with WordPress Is this talk pushing a particular product? This can be done using Google Cloud, AWS, Azure or any similar services. Similar setup could use React and WordPress alternatives. Outline: Intro to React: What it is and why would you use it Setup Dev Environment: Help participants set up their machines to work with React. Optionally, a cloud IDE can be used. Bootstrap a React app using Next.js Set up Apollo to fetch GraphQL data Create custom parameterized routes using Express Fetch data with Apollo's Query component based on route parameters Deploy apps using Now Explain next steps to further improve apps with styling, seo optimization, advanced routing, complex GraphQL queries, etc. and alternate ways to build and deploy. (If time allows)

1
Testing the Front-End: Divide Your Time and Resources
Talk by Loren Klingman (1 hour)

Now that front-ends are built with frameworks, they come with their own test suites. Unit tests are fast, but with a front-end, it's much easier for a unit to work and not integrate well. End-to-end tests and visual tests help fill the gap but run slowly. What's the best way to divide your time? In the last few years, front-ends have gotten much more complicated through the use of frameworks like Vue, React, and Angular. This means front-ends now have their own test suites. These suites typically include unit and end-to-end tests and possibly visual regression tests. We'll talk about the pros and cons of each test type and ways to arrange your tests for best usage of time spent developing the tests and running them with CI software.

0
Strategies for Sharing Components ⚙
Talk by Chris Lorenzo (1 hour)

Faster, Better, Cheaper - the beating drum for software developers. Do you work in a large shop where teams are using Angular, Vue and React? With the multitude of frontend frameworks today, how do you share components between them? How do you build things once? Is it worth it? This talk will cover how Comcast front end teams are tackling these challenges. We’ll look at how we’re using Web Components to share code between sites and if they can be used to share components between frameworks. I’ll go over how we’re sharing data between codebases with Redux. Lastly we’ll talk about Shared Flows; pulling out complicated reusable logic into its own microsite. You’ll walk away learning from our experiences and being able to revisit how you build software to reuse code.

1
Demystifying Algorithmic Complexity
Talk by John Bafford (1 hour)

Algorithmic complexity theory is an important part of computer science, but many developers are unaware of it. What does it mean when we say a function or an algorithm is efficient? How can we tell if we can do better? I help answer these questions and more with an overview and simple examples. Complexity theory. Big-O. Constant, linear, logarithmic, and quadratic time versus space trade-offs. What does it actually mean when we say a function or an algorithm is efficient? How can we tell if we can do better? Join me on this tour through a corner of computer science few developers actively think about, and you’ll walk away with a new way of looking at code and thinking about problems.

14:45
1
Strategically Re-Using Code
Talk by Brad Griffith (1 hour)

This talk will look at common methods of re-using and depending upon code ranging from the adoption of software and cloud infrastructure platforms, the pervasive use of package managers like NPM, and code sharing within an organization. How can a product team effectively leverage 3rd-party libraries while maintaining control? How can you provide a stable, focused public API to a group of developers when your code is itself reliant on another library? How can different approaches to sharing code alleviate or exacerbate dysfunctional patterns in organizations and communities?

0
Etymology in CS: I Think I Know What You're Talking About
Talk by Jennifer Wong (1 hour)

Recursion, instantiate, lexical scope - where do these words come from?! If you’ve ever been in conversation with other developers and thought, “I think I know what they’re talking about, but I’m not sure...”, you’re not alone. Let’s delve into the weird and wonderful parlance that computer scientists and developers have created for themselves. Whether the words are borrowed or just plain made up, I’ll uncover how they made their way into the vocabulary of the modern programmer. In this session, you’ll learn everything from etymology to history to broader definitions, all of which can help you understand what the heck that person’s rambling about. So, the next time you’re in a conversation, you’ll be the one discussing dependency injection versus inversion of control with ease.

0
Code.mil: Open Sourcing the DoD
Talk by Jordan Kasper (1 hour)

No one ever said open sourcing code at the DoD would be easy. [citation needed] Nevertheless, in February 2017 the Defense Digital Service set out to bring some much needed guidance to the Department. These efforts produced the Code.mil project: an experiment in open source at the Department of Defense. This session will cover some of the challenges faced by the amazing service men and women (and civilians) as they promote a more open technology landscape. We'll highlight some of the great work that goes on in the DoD and the ongoing efforts to enable OSS at the DoD and across the Federal Government, including some great success stories.

16:00
4
Lending Privilege
Keynote by Anjuan Simmons (1 hour)

Diversity and inclusion have become hot topics in technology, but you may not know how you can make a difference. However, this talk will help you understand that, no matter your background, you have privilege and can lend it to underrepresented groups in tech. Description Privilege is access to societal and economic benefits based on characteristics you possess. The most well understood forms of privilege are birth privileges like racial, gender, and physical privilege, but there are also selected privileges like religion, education, and career. This session will teach attendees how to lend their privilege to their fellow technologists. They will learn the various types of privilege lending including credibility lending (where you provide visibility to someone without privilege), access lending (where you provide access to someone without privilege), and expertise lending (where you provide a voice to someone without privilege). These different types of privilege lending will be illustrated through well known examples and an explanation of how they can be applied to the technology industry. Outline 00:00 - 00:02 - The Diversity and Inclusion Challenge 00:02 - 00:04 - How Leonard Nimoy Lent His Privilege 00:04 - 00:06 - The Business Case for Diversity and Inclusion 00:06 - 00:08 - The Difference Between Diversity and Inclusion 00:08 - 00:10 - The Need for a Revolution 00:10 - 00:12 - Understanding Privilege 00:12 - 00:16 - Credibility Lending and Your Team 00:16 - 00:20 - Access Lending and Your Team 00:20 - 00:24 - Expertise Lending and Your Team 00:24 - 00:28 - Why Inclusion Lets Everyone Win 00:28 - 00:30 - Close

17:30
0
After Party at Urban BBQ (2 hours, 30 minutes)

Join us for some conference after party winddown time at Urban BBQ, a short 5 minute trip by car from the venue. Come enjoy some tasty food and a cool beverage as we reminisce about the last two days. Food and drinks are on your own, but the company and camaraderie are free. :) https://iloveubq.com/store/linthicum/