Accounts as a Service: Why we have 50+ AWS accounts, and why you should too
One of the chief benefits of cloud computing is the ability to experiment: to spin up infrastructure for hours or days and then shut it down again. Giving your developers the ability to manage their own environments gives them this freedom to experiment. But with great power comes great responsibility, and an unrestricted AWS account is one mistake away from...
Advanced Text Layout
There's a lot of focus in user experience on graphics and animations. It can be easy to forget about the workhorse of most interfaces: text. Text can seem mundane and simple, but that's only because modern systems do so much work to make it beautiful automatically. Great text layout is actually very complex. But powerful as modern systems are, sometimes...
All Kinds of Free
Free is a word that has been overloaded through the course of human history, with both good intentions and bad. All will be enumerated with a specific focus on "free" in the context of the modern internet and what it means to the construction and deployment of complex web applications. You will leave this talk with an arsenal of better...
Choosing Your Giants: Principles for Navigating the Landscape of Emerging Technology
Functional or object-oriented, relational or schemaless, on-premises or entirely serverless: for better or worse, technology choices in software development remain mostly ideological. Whether we prefer to “stand on the shoulders of giants”, use “the right tool for the job”, or eschew anything “not invented here”, we must acknowledge the effects of this ideology on our systems, our customers, and our...
Coroutine + Flow = MVI
Managing state in Android applications can be painful. Over the years, various architectural patterns have evolved to try and tame it: MVC, MVP, and MVVM. MVI (Model-View-Intent) is an evolution of these patterns. Thanks to Immutable State management and Unidirectional Data Flow, we can finally say goodbye to race conditions and rogue mutations. Combine the power of MVI with Kotlin...
Designing Workhorse Tools
We’re designing professional tools, so it’s trite to say that our software needs to be fast, powerful, and intuitive. We need to build seamless, integrated experiences for a growing number of tasks and users. As our platforms grow in functionality and maturity, this gets harder. I’ll talk about some techniques we can use to build and grow interconnected experiences and...
DesignOps: Integrating Product Design into your SDLC
What kind of surgery does it take to integrate evidence-based, multidisciplinary innovation into your software development lifecycle, and what are the tangible benefits to teams? Whether your organization has no design function, treats design as a centralized service/agency, or is on the path to integrating designers into your product teams, this session discusses a handful of practical approaches to this...
FaaD: Frameworks as a Disease
Frameworks are great.. or not. This is one of those controversial talks that will take you on a roller coaster along the gems like "libraries vs. frameworks", "objects vs. functions", "types vs. data", etc. Oh, yes, they are all connected. One great thing about controversial talks over "how to build X" or "how X works" is they make humans conjure...
How Robotics, Augmented & Virtual Reality Will Make Us Human Again
We’re entering the next wave of innovation that integrates moment by moment collaboration with robots, cobots, virtual/augmented/mixed realities that today, seem daunting. But in fact, these technologies will allow humans to pass on the mundane tasks and free to tap into what once was the natural state of humans. The key takeaways are to (1) embrace the future of tech...
Humanizing Technology: What Accessible Design Offers Us
Accessible design is about inclusivity. We know that. We know it’s the right thing to do. We want to be inclusive. But the consideration seems daunting and we put it off. It becomes a feature to bolt on later, much later. But what if accessible design has the potential to create business opportunities? Could we make a compelling case for...
Investigation and Creation of Software
As software developers we operate in pockets of reality with their own rules. From our language system to frameworks to the software we interface with, our work is first that of the scientist: how does this happen? We find causes and effects. Then of the engineer: use those to make the word more to our liking. In the process we...
Latency SLOs Done Right
Median, average, 90th, 99th percentile. We've all seen these metrics on our monitoring systems, both open source and from commercial vendors, but often they are used incorrectly when constructing Service Level Objectives. This session will show three different approaches to correctly calculating latency SLOs, and how histograms can be used to calculate mathematically correct quantiles and set SLOs based on...
Come by to hear about a wide range of subjects in a short amount of time. Processing messages with Kinesis and Spring Cloud Stream Kevin Grainer Consultant, Chariot Solutions Spring cloud stream offers a spring integration style library for processing stream data. Streams have become popular due to their flexible durability settings, replay ability, and bandwidth. AWS offers a hosted...
Looking over the edge: Bridging the gaps between geospatial data, cloud computing, and local disaster response organizations
In this talk we look at the challenges of making geospatial data accessible and rapidly consumable in disaster response scenarios. The wide variety and large volume of commercial and public data available in AWS coupled with scalable edge computing and communication devices allows for unprecedented data access, delivery and integration with in-situ data collection. We’ll discuss user interface challenges, the...
Measuring success: Making sure your product organizations ship valuable code
Many teams strive towards Agile development, chopping work into small pieces to increase velocity and value of feature delivery. Without carefully defining and measuring feature value with defined success metrics, these processes can devolve into just a high volume of underutilized features. In this session, learn from Julia Kastner, the VP of Product Management at NeuroFlow, a behavioral health technology...
Open Source Bayesian Inference in Python with PyMC3
In the last ten years, there have been a number of advancements in the study of Hamiltonian Monte Carlo algorithms that have enabled effective Bayesian statistical computation for much more complicated models than were previously feasible. These algorithmic advancements have been accompanied by a number of open source probabilistic programming packages that make them accessible to programmers and statisticians. PyMC3...
Rapid Prototyping Verifiable Software Architecture
Even the best engineers are limited by some human factors in their development process: most notably by incorrect estimation time and scope, or the wrong interpretation of the end goal of a product from a client’s description, and inefficient software architecture. Rapid Prototyping is a simple tool that can drastically reduce human factors errors in initial product design, both internally...
Serverless, Schmerverless… Why should I care?
Ah, Serverless. The term that means a dozen different things to a dozen different developers. In the most simple case, Serverless just means deploying applications to a platform where the servers are managed for you, and abstracted away as much as possible. But Serverless can also mean a database that scales automatically without your intervention, a Docker platform managed by...
Software security: Can it keep up with the current speed of development?
The delivery of software is happening faster and faster. The use of microservices, agile development, CI/CD, and containers is changing the delivery time of software. At the same time, the number of software vulnerabilities is also growing. A software security assurance program must scale to meet the growing number of software and time to deliver products. This talk will walk...
SwiftUI and Combine changes Everything
The way you architect and write your iOS and macOS apps is about to change completely. The future of development on Apple platforms is SwiftUI and Combine. You will have to rethink everything from the way you layout your GUI to the way you handle data flow to the way you respond to asynchronous events. This session will highlight and...
The Evolution of Object Oriented Programming
The foundation of programming which many of us have used for 20 years is evolving into something new. Concepts including immutability, functions, ADTs, and pattern matching are helping us solve problems more reliably, understandably, and quickly. This session will help you understand the evolutions happening in many OOP languages and how you can begin taking better advantage of these changes.
The next five years in databases
Last year at Philly ETE, Jonathan explained five lessons from his last five years in distributed databases. This time, he offers his predictions on the future: what impact will databases experience from machine learning, graph algorithms, hardware trends, and cloud services.
The Next Paradigm Shift in Programming
Originally, GOTO statements were widespread. Then structured and procedural programming appeared, and now that's the normal way of doing conditionals, and the previously widespread GOTO statements are widely considered an antipattern. When garbage collection first appeared, it was largely ignored outside academia. Then hardware got faster, and since the 1990s garbage collection has become the norm in industry. When functional...
Typesafe Design Systems
What is a design system? The answer depends on which part of the software development team you ask. To web developers, it is often synonymous with a low-level library of components. Those components are used interchangeably to create consistent experiences that embody an organization’s brand and tone. Creating those components, in and of themselves, is easy. However, creating a component...
Understanding Parkinson’s Disease Through Data Science
Parkinson’s disease (PD) is a chronic, degenerative neurological disorder that affects as many as one in a 100 people over the age of 60. It is estimated that more than 8 million individuals have PD worldwide, and the number is growing with today’s aging population. Despite immense investment and research, we don’t fully understand the underlying mechanisms of this disease....
Viewing The Software World Through ‘Risk’ Colored Glasses
Have you ever missed a deadline? ...gone over budget? ...built a feature that, it turns out, nobody even wanted? Building software is hard! And there is no shortage of advice out there on how to do it better; tools to use, frameworks to adopt, processes to follow. A large part of getting a great product to market fast is identifying...