Schedule
Conference Day - August-25-2023
Each talk is scheduled for around 50 min. TimeZone - US/Eastern
Please use Chrome or Edge Browser to view the schedule.
Time | Session Details | Speaker Name | Room | |
---|---|---|---|---|
7:15 AM | Title : Registration Registration and Breakfast | Edison | ||
8:15 AM | Title : Javascript and The Edge I would like to talk about how deploying Javascript applications in the Edge using Cloudflare simplifies running our code in 285 cities in 100+ countries. All this can be done in less than an hour. I would like to discuss the pros and cons of AWS infrastructure and share how Cloudflare can help us accomplish the same faster. My goal is to explain all the infrastructure concepts with as many analogies as possible with no buzzwords. | Varsha Thirumakil | Glenn 1-2 (150) | |
8:15 AM | Title : A Look Inside Observables RxJS Observables are one of the more complicated topics I've learned over the past few years. This is something I struggled to understand fully for a few years.
Observables provide support for passing messages between parts of an application. They are a technique for event handling, asynchronous programming, and handling multiple values.
In this talk, we will examine what Observables are and how Observables can be implemented in a clean, testable manner using code examples to dig into the fine details. | Bob Fornal | Morgan 1 (50) | |
8:15 AM | Title : Debugging Burnout Working in a product space requires knowing how to take a very complex problem and break it down into iterative chunks. Far too often, we’re so wrapped up in the problems we’re solving professionally, that we completely forget to introspectively look at ourselves and ask what problems in our own lives need solving. Burnout is real and worth addressing. But much like the dev process, understanding the “why” behind behavior leads to a more sustainable outcome.
This talk is a part of an ongoing conversation in life. We want to develop a framework and language to properly identify burnout and how we can work through it. Let’s take some time in this iteration of the conversation and talk about what it is, why it’s a problem, and how we can leverage tools at our disposal to help identify, address, and debug burnout.
| Samuel Shaw | Morgan 2 (50) | |
8:15 AM | Title : How to be a Leader What is leadership? That term gets thrown around a lot, but what is it really? What do leader do that makes them leaders? Leadership can be learned and that is good as leaders are in high demand and in short supply. TO be an effective leader, you must first understand what leadership is and what traits a leader exhibits.
During this session, we will review leadership traits and principles and how you can implement them within your teams. By demonstrating these in your daily activities you will earn the respect, confidence, and loyal cooperation of those on your team. | Chad Green | Morgan 3 (50) | |
9:30 AM | Title : JSON Data Modeling in Document Databases If you’re thinking about using a document database, it can be intimidating to start. A flexible data model gives you a lot of choices, but which way is the right way? Is a document database even the right tool? In this session we’ll go over the basics of data modeling using JSON. We’ll compare and contrast with traditional RDBMS modeling. Impact on application code will be discussed, as well as some tooling that could be helpful along the way. The examples use the Couchbase Capella document database, but the principles from this session can also be applied to CosmosDb, Mongo, RavenDb, etc. | Matthew Groves | Glenn 1-2 (150) | |
9:30 AM | Title : Meet Your New BFF: Backend to Frontend without the Duct Tape Even with all of the incredible frameworks available today vs. a decade ago (or even two––for devs who have been around as long as I have), it still feels like much of our work as fullstack developers is still repetitive, and held together by duct tape code we shouldn’t be writing.
This is because we write a lot of duplicate and boilerplate code for everyday things such as simple database CRUD, data validation, authorization, and data-type conversions, but the majority of these tasks haven’t advanced at the pace of modern web architecture.
In this live coding session we'll turn a front-end app into a fullstack app with code that is easy to write, follow &, most importantly maintain, with end-to-end typesafety (say no to GraphQL!), consistent and encapsulated validations, live querying, access control, secured APIs, you get the idea.
You’ll come away from this session able to build apps for modern web architecture while still maintaining our code DRY and increase productivity.
| Dev Agrawal | Morgan 1 (50) | |
9:30 AM | Title : Node.js Multithreading Node.js's sweet spot has traditionally been with I/O-intensive processes. It's event-driven architecture allows I/O operations to run concurrently while their associated callbacks are executed synchronously in the event loop. This, however, comes with a dark side in that CPU-bound operations are likely to block the event loop thus delaying when those callbacks are invoked. Fortunately, Node.js ships with several modules that allow us to offload those blocking CPU-bound operations from the main event loop so it's free to handle other tasks while the CPU-bound operations go about their business. Most notably we'll explore some ways in which the child_process and worker_threads modules can keep your Node.js application performant while still handling those CPU-intensive operations. | Dave Fancher | Morgan 2 (50) | |
9:30 AM | Title : Understanding Probabilistic Data Structures with 112,092 UFO Sightings There are three reactions to the title of this talk:
- What the heck’s a probabilistic data structure?
- UFO Sightings… wha?
- 112,092 is an oddly specific number.
This is a talk about the first bullet point with the second thrown in just for fun. I like weird stuff—UFOs, Bigfoot, peanut butter and bologna on toast—maybe you do too? As far as the third bullet point, well, that’s how many sightings I have.
Now, if you’re like most developers, you probably have no idea what probabilistic data structures are. In fact, I did a super-scientific poll on Twitter and found that out of 119 participants, 58% had never heard of them and 22% had heard the term but nothing more. I wonder what percentage of that 22% heard the term for the first time in the poll. We’re a literal-minded lot at times.
Anyhow. That’s 4 out of 5 developers or, as I like to call it, the Trident dentist ratio. (It’s actually a manifestation of the Pareto principle but I’m a 70s kid). That’s a lot of folks that need to be educated. So, let’s do that.
A probabilistic data structure is, well, they’re sort of like the TARDIS—bigger on the inside—and JPEG compression—a bit lossy. And, like both, they are fast, accurate enough, and can take you to interesting places of adventure. That last one might not be something a JPEG does.
More technically speaking, most probabilistic data structures use hashes to give you faster and smaller data structures in exchange for precision. If you’ve got a mountain of data to process, this is super useful. In this talk, we’ll briefly go over some common probabilistic data structures; dive deep into a couple (Bloom Filter, MinHash, and Top-K); and show a running application that makes use of Top-K to analyze the most commonly used words in all 112,092 of my UFO sightings.
When we’re done, you’ll be ready to start using some of these structures in your own applications. And, if you use the UFO data, maybe you’ll discover that the truth really is out there. | Guy Royse | Wright 1 (50) | |
10:45 AM | Title : Asynchronous JavaScript (Part 1): Livin' On A Prayer There is a unique world where Single-Threaded JavaScript manages to be much more. JavaScript interacts with its environment in ways that allow it to handle Asynchronous activities. Using several detailed code examples, we will examine these examples in a unique way to show how these interactions truly work.
This talk has been also called, "JavaScript Enjoys Your Tears" and "Lip Sync To The Async". If you are an experienced developer or new to the field, there is something in this presentation for you.
This session takes a look at how JavaScript manages Asynchronous events and some of the ways developer decisions may work for, or against them.
This discussion will examine the ways that JavaScript coordinates and manages events using several coding examples and we can determine which are the good, the bad, and ... the ugly. | Bob Fornal | Glenn 1-2 (150) | |
10:45 AM | Title : The Science of Testing In the past decade the software development paradigm has shifted to “deliver fast” -- with concomitant frameworks and methodologies to support that emphasis – but without proper consideration of quality. So most teams end up failing fast and hard when development continues beyond a shaky foundation. To bring about positive change, we must improve both our knowledge base and our processes to achieve quality delivery without disturbing the bookkeeper’s project delivery timelines. Lessons learned from a career in research science can be applied to QA, with parallels to industry product quality models. Testing techniques and product delivery processes from research science will aid not just testers but the entire team in delivering quality software. More than just day-to-day team activities and testing tools, the science of testing is about the pursuit of knowledge and understanding for its own sake. Testers should foster their skills in the community with professional development activities. Those in attendance will learn about the successes and failures of applying a scientist’s approach to testing software, from the “publish-or-perish” mindset of science to “deliver fast” in IT.
| Thomas Haver | Morgan 1 (50) | |
10:45 AM | Title : Turn on those listening ears!: Improving Communication through Listening Skills In today's fast-paced technological age, effective communication skills are essential for success in all areas of life, both personal and professional. One of the most critical communication skills is listening, and it is often overlooked. Amanda is a Certified Professional Scrum Master who wants to help developers (and friends) focus on the importance of listening skills in technology and related fields. With the ever-evolving advancements in technology, it's essential to be a good listener to understand and respond effectively to the needs of our clients, colleagues, and stakeholders. We will explore the various aspects of listening, including active listening, empathetic listening, and critical listening, and how they can be applied in the context of technology. | Amanda Lange | Morgan 2 (50) | |
10:45 AM | Title : Measuring the Cost of a GraphQL Query Developers tend to centralise the fragments definitions and use them in each query where the entity is used, even if just a subset of the attributes is necessary.
Unlike rest, the client needs to be more careful on query optimization because the server must process the client's query and create a tailored response. If the client's query is not optimized, it can lead to the server having to process more data than is necessary, resulting in slower response times.
mercurius-explain is a simple and lightweight Mercurius plugin that records how many times a GraphQL resolver is invoked and how long it took to retrieve the data, which helps to keep track of performance changes during development and to troubleshoot possible bottlenecks. | Marco Ippolito | Morgan 3 (50) | |
11:45 AM | Title : Lunch Lunch and Networking | Edison | ||
1:15 PM | Title : Tracking Aircraft with Streams + Software-Defined Radio Aircraft are everywhere. Knowing exactly where is paramount as it’s considered bad form for two aircraft to be in the same place at the same time. To avoid this, aircraft worldwide constantly and publicly broadcast their location, heading, and all sorts of other data using a system called ADS-B or Automatic Dependent Surveillance Broadcast.
This data is a natural fit for an event stream. After all, it’s a constant stream of data that is literally being broadcast in real-time. But how can we capture these broadcasts and the data within? Surely it must require expensive hardware and special tools!
Not so much. It turns out that we can capture ADS-B data easily using a combination of a cheap radio dongle and free software—a combination called software-defined radio. From there we can store it in an event stream and consume, transform, and publish it at our leisure. Cool, right?
In this session, you’ll learn how software-defined radio works (and not just for ADB-S), how to receive and store ADS-B data in event streams, and how to use those streams to build a map showing real-time flight data using Node.js, Redis Streams, and whatever front-end JavaScript framework happens to be popular that day! | Guy Royse | Glenn 1-2 (150) | |
1:15 PM | Title : The Automation Firehose: Be Strategic and Tactical The widespread adoption of test automation has led to numerous challenges that range from development lifecycle integration to simple scripting strategy. Just because a scenario CAN be automated does not mean it SHOULD be automated. Teams that adopt automation often rush to automate everything they can -- the automation firehose. For those scenarios that should be automated, every team must adopt an implementation plan to ensure value is derived from reliable automated test execution. In this session, the audience will learn how to automate both strategically and tactically to maximize the benefits of automation. Entry criteria will be demonstrated for automation in the development lifecycle along with a set of checks to determine automation feasibility & ROI. | Thomas Haver | Morgan 1 (50) | |
1:15 PM | Title : Zero Pain Frontend to Fullstack in Minutes with Open Source How silly is it that in 2023, with the huge diversity of tooling out there for frontend devs, half of our productive coding time is still spent on continuous error handling?! From code duplication, to typing errors, routing, validation, authentication…the list goes on.
As a NodeJS developer, we want to be able to keep our code DRY –– literally just write once, and reuse, by maintaining our code in a single source of truth. Sounds too good to be true? It is possible.
In this live coding demo we’ll walk you through how to take a common NodeJS/Express/Fastify stack and convert it into a fullstack app in minutes using open source tooling and frameworks all fullstack developers should know about.
| Dev Agrawal | Morgan 2 (50) | |
1:15 PM | Title : The End… for mobile apps – Enter ASP.NET Core Blazor WebAssembly PWAs Native/Hybrid/Cross-Platform apps are finally no longer needed! Ionic, React Native, Android/iOS Native… no longer necessary. Come listen in to learn why. What was the web standard or feature that tipped me over the edge? I’ve written dozens of mobile apps over the last few years and watched as the PWA spec has grown to impressive feats. It’s official, we’re no longer writing native apps and have moved all-in on Blazor WebAsm PWAs. In this talk, I’ll take you on a journey through Blazor WebAssembly PWAs and tell you why it solves most major line-of-business mobile needs. I’ll talk about the important PWA features supported and show code examples throughout the entire talk. The example is an app we built 4 years ago with Ionic… now fully capable as a PWA. | Heath Murphy | Morgan 3 (50) | |
2:30 PM | Title : JavaScript Metaprogramming Metadata, data about data, is everywhere. We seem to intrinsically understand that using data to further describe the data within our systems brings numerous benefits to taming complexity. It follows then that metaprogramming, programming that interacts with the program itself by inspecting or even manipulating its own code can bring similar benefits to our software.
ES6 greatly expands upon JavaScript's existing metaprogramming capabilities with the Symbol, Reflect, and Proxy types. Through some practical examples we'll discuss the role each of these types play within JavaScript metaprogramming and see how they not only affect your code but even drive several modern language features. | Dave Fancher | Glenn 1-2 (150) | |
2:30 PM | Title : What to Avoid When Writing Unit Tests “These tests should never have been written. They provide no or little value.” -ME
Testing code has been described as an "art form." It is, but it should not be. There are many good patterns that should be followed when writing tests. There is even a lifecycle of tests that should be paid some attention. There are also many BAD patterns that developers should be aware of so that they can be avoided (or cleaned up).
This session will provide a series of examples of bad front-end tests and how to write them correctly.
* Tests Should Not Be "Well-Factored"
* Keep The Reader In The Test
* Violate The DRY Principle
* Testing Too Much
* Duplication Of Code Logic
* Bad Test Double
* Testing The Mock
* False Positives
* Testing Private Functionality Directly
* Excessive Setup | Bob Fornal | Morgan 1 (50) | |
2:30 PM | Title : Vue for React Developers React is one of the most popular front end frameworks... but within the React community there are several misconceptions about Vue. Let's go through and convert a React component into a Vue component. The results might surprise a lot of React developers! | Alex Riviere | Morgan 2 (50) | |
2:30 PM | Title : Memory First: An Introduction to Redis Odds are, you’ve heard of Redis. Maybe you’re a total noob and want to learn all about it. Maybe you’ve used it to cache an API call or some JSON strings and want to know what else it can do. Maybe you *haven’t* heard of Redis and are curious what all the fuss is about.
Wanna find out? Join me as I explain what Redis is—a wicked-fast, memory-first database—and why you should care. I’ll share with you what it can store, how you can access it, and how you can make sure that what’s in memory is still there when the power goes off. We’ll explore how you can extend Redis—adding new commands, new data structures, and new capabilities. And, we’ll do it both from the command line and from code with examples in C#, Java, JavaScript, and Python.
When we’re done, you’ll know what Redis is and what all the fuss was about. But, more importantly, you’ll know how to put memory first to build fast applications and faster experiences. | Morgan 3 (50) |