Connectaha Logo

Sessions

A Skeptics guide to functional style javascript
Jonathan Mills
With modern JavaScript, we have seen a rise in ‘functional style’ javascript popularity. This style introduces a whole slew of terms and patterns that have different connotations depending on who you are talking to. Phrases like purity, higher order functions, and currying are thrown around all over the place. What does ‘no side effects’ mean, and what about when you need to get something done? And what in the world is a ‘monad’? In this talk, Jon will walk through the world of the functional programmer and show how these phrases and patterns fit into modern JavaScript development. Jon will work through functions as first class objects in JS, and show how we can use that feature to write clean, maintainable, and reusable code. You will also walk away armed with the information you need to see through all they hype. You’ll have a firm grasp of where these patterns are useful, and as importantly, where they are not.
/>
Airbnb and Luxury Retreats, a post acquisition technical migration
Allen Wu
In 2019, Airbnb decided to migrate the entirety of the Luxury Retreats business onto the Airbnb technical stack. Post acquisition migrations are an often overlooked but absolutely critical part of acquisitions. In this talk we will go through the journey together, covering technical details, challenges, and key takeaways. The following is an outline of the presentation. # Outline ### 1. Why did we decide to migrate as opposed to support two stacks? *Lessons we learned along the way that you can take away from.* Post acquisition, Luxury Retreats operated on its own tech stack independently of Airbnb's. We began to notice the following drawbacks: - Difficulty of collaboration — different codebases and tools made it difficult for engineering and data science to collaborate across the two stacks - Large maintenance cost — maintaining two sets of software on different technical stacks created significant overhead and required two distinct sets of engineers, one for each platform - Inability to leverage Airbnb Platform — being on a different stack meant LR would be unable to take advantage of core platform features available on Airbnb (experimentation, internationalization, security/fraud checks, etc) We decided that migrating over to Airbnb's tech stack would be well worth the investment and lay a strong foundation to future growth. ### 2. What strategies did we employ to execute the migration? *The technical complexity here was high and we had to keep the business running throughout the entire process* Luxury Retreats is a complicated business. Behind the website and app, we also had villa management tools, salesforce instances, calendar and pricing databases, and data reporting pipelines. The Luxury Retreats migration involved many interdependencies. This played a factor in deciding the sequencing of the various pieces that needed to migrate. In broad terms, we went with the following sequencing. 1. Read paths 2. Write paths Read-only products such as the website and iOS app launched first. By doing this, we were able to keep the source of truth constant. Writes would continue to happen on the legacy side, with changes synced over from LR to Airbnb. Following that, products that impacted the write path, such as host tools to create and modify listings and agent tools to create bookings were launched. These changes would allow us to move the source of truth over to Airbnb’s infrastructure transparently to the clients. ### 3. How did we leverage Airbnb's infrastructure to rebuild the Luxury Retreats website? *An architecture deep dive as well as key concerns and challenges that were tackled.* We rebuilt the entirety of the Luxury Retreats website on Airbnb's infrastructure. We decided to maintain as much design and feature parity as possible to limit the variable effects on business performance. By leveraging Airbnb's infrastructure for traffic, server side react rendering, api gateway, backend services, we were able to rebuild the entire website in a time frame of several months. ![enter image description here](https://i.imgur.com/xy99pxs.png) Key concerns include handling inconsistencies between search and regions between the two products, and backwards incompatible differences in URL structures for region and villa detail pages. ### 4. What did the data warehouse migration entail? *A critical and often overlooked piece of the infrastructure.* The data warehouse and ETL pipelines between Luxury Retreats and Airbnb were very different. Luxury Retreats used SQL Server and even had an unknown number os Excel sheets configured to have read or write access into the data warehouse. Additionally, accounting principles and operational terminologies were different. We had to undertake innovative solutions to consolidate differences in revenue tracking. In order to have a continuous view of the business, we had to move Luxury Retreats' historical data over to Airbnb's data warehouse, which meant mapping and migrating data fields properly. Before and after of the data warehouse ![enter image description here](https://i.imgur.com/yPiIUvH.png) ### 5. How did we roll out the new website? *A technical deep dive on the website rollout and business performance confidence through AB testing.* With a project of this magnitude with so many moving parts, it’s important to keep in mind that at the end of the day business continuity is critical. Taking the product down or negatively impacting the conversion rate would be disastrous for the business and would go against the goal of migration, which was to lay the foundation and groundwork for future work to grow the business. It was critical to our success to quantify the guest impact of the migration. Given the seasonality of the business, the most accurate way to do this was by running an AB test of user facing products. This was challenging because it involved testing two entirely different web stacks. The following steps demonstrate the path towards being fully on Airbnb’s web infrastructure in four phases. 1. Copy over all DNS records from LR name server to Airbnb’s name server, and update our domain registration to point to the correct server accordingly. 2. Update DNS record to point to Akamai, Airbnb’s CDN provider which forwards the request to the load balancer. This step is transparent and gives us a platform upstream for both legacy and Airbnb load balancers where we can deploy business logic. 3. Use the CDN to send partial traffic to the Airbnb web stack. This is the phase with live experimentation. 4. Update CDN so that 100% of LR web traffic goes to new Airbnb web stack, and deprecate all legacy web components. The web rollout experiment was subject to a tight timeline. Due to the migration sequencing, the web rollout was first, and any delays would block the rollout of subsequent tracks. The following describes the preparations we made ahead of going live to ensure a smooth rollout. **Power analysis** More data means more statistical confidence in results. Relative to Airbnb, Luxury Retreats has a lower booking volume, and has a concept of an inquiry that can mature into a booking. In order to prepare an experimentation plan, we calculated the MDEs (minimum detectable effects) of various metrics under consideration at various P values. That data gave us the ability to make an informed tradeoff between how long to run the experiment and the statistical confidence of changes in the metrics that we were evaluating. **Target metrics** As with any experiment, it was important to pre-define what the target metrics were - the primary indicators to consider concluding the experiment and shipping to 100%. From our power analysis, given the lead time required for an inquiry to turn into a booking, it would not have been feasible to use bookings as a target metric for a short experiment duration. We sought out a metric that was a leading indicator of bookings that had more reasonable MDEs. We ended up choosing “Contacts” (inquires + online bookings), which had a much more manageable MDE of detecting a 10% change within 2 weeks. One issue with looking solely at contacts was around the quality of contacts. For example, a product change that introduces confusion may encourage more visitors to inquire, but those incremental inquiries may not lead to additional bookings; this change may actually be bad for the business. In order to address this, we introduced “High Intent Inquiries” as the second target metric that would help us quantify changes to the website. To measure intent, we created an inquiry scoring ML model that took a variety of user signals to generate a quality score. We set a predefined threshold to classify the inquiry as high intent based on signals collected at the time of submission. “High intent inquiries” had a MDE of 15% change within 2 weeks. Ultimately we decided to use contacts and high intent inquiries as our two target metrics for the web experiment. Funnel events We sought to define and implement Google Analytics events for all events in the funnel across both the old and new website. This was important for two reasons: 1. Events were required in order to build metrics for the experiment 2. Comprehensive funnel events would allow us to course correct during the experimentation period (there would be no time to add logs and wait several days to collect more data) This was challenging because the product and implementation differed in many areas; we had to use the same funnel but implement the events in a way that was consistent and meaningful. We also built out an experimentation dashboard on Tableau that utilized the GA events and reported daily on all funnel events so we could closely track and monitor performance. **Launch plan** Before starting the experiment, we aligned with all stakeholders on the following plan and launch criteria. 1. The experiment would last for 2 weeks 2. As long as the target metrics of Contacts and High Intent Inquiries did not drop more than the predefined threshold, the statistically significantly detectable amount (P=0.05) for that time frame, we could launch to 100% the new website. **Outcome** When the experiment was live, we monitored the performance in terms of movements in funnel metrics on a daily basis. We shipped product changes during the experimentation phase based on funnel metrics, so the positive impact was likely to be underrepresented in the final set of cumulative data. We reported on the target metrics, their delta, and their confidence interval using a [one tailed test](https://en.wikipedia.org/wiki/One-_and_two-tailed_tests), as lifts in key metrics would not be launch blockers. The analysis showed fluctuations on contacters, high intent contacts, and low intent contacts within low digit percentage points. Additionally, the one tailed test showed that the lower bound of the 95% confidence interval was within our predefined criteria. We believed this outcome validates our hypothesis that we successfully migrated without any impact to our users, and rolled out to 100% of users.
/>
Automate Everything with GitHub Actions
Matt Steele
GitHub Actions are a new way to respond to anything that occurs on GitHub, and it's pretty amazing. You can use it to automatically run tests when you push new code, or publish to NPM if all the tests pass. But this is just the tip of the iceberg, let's automate everything we can (and some things we probably shouldn't).
/>
Believe in the Power of CSS
Chris DeMars
You know that song by Huey Lewis and the News, The Power of Love? "First time you feel it, it might make you sad." Might be how you feel about CSS right? What about the power of CSS? CSS has received a bad name as of late, but truth of the matter is that CSS is such a powerful piece of the front-end puzzle and you should really be excited for what's already here and what's to come! Who would have thought we could create magazine-style layouts with CSS grid? What about ruleset variable scoping with custom properties(CSS variables)? And last but not least, the pain of centering content horizontally and vertically which is now possible in three lines with flexbox! Let's talk about how awesome CSS is, and how we can restore our faith in one of the best things that makes the web amazing!
/>
Building a QA practice from scratch
Alison Hawke
When you're the only QA, how do you build a quality assurance practice? Thinking about recruiting, training, fun, multiple remote offices, delegation, velociraptor-avoidance techniques, staffing, snacks, blood, sweat, and tea. I'll share the potholes we fell into so you can fall in different ones.
/>
Design Thinking for Inclusive Collaboration
Sandi Barr
How can Design Thinking help us build more collaborative and inclusive teams? The process involves seeking out diverse perspectives to better understand user needs. This reduces the impact of our cognitive biases, which then also helps to find alignment across differences and leads to more creative solutions. It changes the conversation by reframing the problem around user-driven criteria. Design Thinking involves and values all team members throughout the process and results in building the best solution for our users. As we walk through the process step-by-step, attendees will gain insights they can leverage to introduce a design thinking mindset within their organization and learn how it can be used as a tool to collaborate effectively within and across teams.
/>
Design systems from the other side: understanding the value for non-designer roles.
Andrew Wirick
Design systems are something that many design teams are pushing for within software platforms and products. On the surface, the term sounds like something great for designers. But what's the value in it for other technical roles? After demystifying the term "design system", we'll dive into the differences in day-to-day life with the developer, quality assurance, and product owner roles. I'll discuss some of the responsibilities that non-designer roles typically have as part of a well-implemented design system. If your company's software doesn't yet have an intentional design system, I'll talk through some great starting spots for designers and non-designers alike.
/>
Diamonds in Our Own Backyard: Building Great Development Teams at Hudl
Kathy I. Andersen
Successfully developing and retaining skilled engineers, designers, and product people is make-or-break for companies large and small. Hudl has grown fast and done well in that arena: today over 250 development team members ply their trade at the company, building video and analysis tools for sports teams around the world. One key to Hudl's success is apprenticeships, where anyone in the company can apprentice in a new role. The apprenticeship program has evolved over many years to become an adaptable, decentralized, and finely-tuned framework. We found that apprenticeships not only drive employee career growth; they also build a more robust and diverse workforce as a whole. This model is part of the big picture of talent pipelines in the Midwest and beyond, where making smart investments in human capital means we’re tapping into “diamonds in our own backyard.” This talk shows the How, the Who, and the Why of Hudl’s apprenticeship program, told via individual narratives and product team outcomes.
/>
Disciplined Development: What is dead may never die
Jerry Koske
Dave Thomas, one of the Agile Manifesto’s creators famously wrote a post titled “Agile is Dead” nearly 6 years ago. In practice the term Agile can unfortunately be used as a silver bullet, a panacea - snake oil from salesmen and consultants of dubious character who often provide underwhelming results. We all observe how projects tend to go, and often lecture each other on how we are doing Agile wrong, stopping at the point of rhetoric. Surely Agile isn’t fundamentally flawed… or is it? In this session we will discuss personal observations I’ve made over the past 20 years of working with over 50 agile projects across numerous industries. I’ll provide published trends and data that feed into these observations, highlighting common issues encountered. Finally, I’ll demonstrate how from the ruins of failed agile initiatives effective development can rise again harder and stronger.
/>
Everything's an Experiment: the Try/Catch for Teams
Scott Connerly
Google's Project Aristotle helped quantify the value of psychological safety on a team, but how do you actually achieve it? Of all the values that support psychological safety, trust is the most foundational. But how do you build trust, especially in situations where people have been burnt before? Just like in building technology, iteration and experimentation can get us there. In this talk I explore when team experiments are useful, how to structure them, how to manage expectations around them. and I'll share stories of my own experiments and how they've panned out.
/>
Fail Faster: Quick UX Design Techniques to Drive Toward Success
Ash Banaszek
Learn simple and paradigm shifting design techniques from Senior UX Professional Ash Banaszek. This talk comes from hearing folks exasperated from making their project deadlines and budgets, only to fail with users upon launch. A lot of times, this has to do with missed requirements and a stubborn conviction to stick to a plan even if the design is untested. Ash will share with you the design techniques used to create effective user interfaces through sketching, mind stretching, and iteration. Further, you'll learn how to conduct black hat sessions to shake out missed requirements, mismatched UI expectations, and get much needed buy in from project stakeholders. With a world that wants everything faster and faster, Ash will give you simple techniques that make a big difference; thus enabling you to think through multiple solutions, get yourself un-stuck from a single idea, iterate on your designs, and rally your team around this process. Ready, get set, FAIL!.. The faster you fail, the faster you can succeed.
/>
Get Out of Your Lane!
Cassandra Faris
In the tech industry, we often think our jobs have narrowly defined skillsets. We believe that staying in our lanes, gaining more years of experience, and learning new technical skills yields automatic career growth. This is a mistake! For continual career growth, we must also venture into the worlds of business and communication. This talk will explain why these worlds matter to your career. You’ll discover how to gain and apply this knowledge through hands-on exercises and discussion. You’ll also learn how leveraging the tech community enhances your business and communication skills alongside your technical skills. This session will leave you challenged to go beyond your job description and drive your career forward.
/>
Growing a Learning Organization
Joel Tosi
This session is an evolution of our talks around growing Dojos (though awareness of dojos is not necessary for this talk). In this session we will look at the challenges facing organizations and people today trying to learn new skills (committment, context, multitude of needs). From there we will look at how we learn exploring explicit vs tacit knowledge. We will wrap up with tangible ways you can start growing an organization that continuous learns - looking at addressing the whole value stream to provide context and growing an organization that has internal coaches and teachers (along with models for that).
/>
How To Have Code Reviews Developers Actually Want
Cameron Presley
This phrase can stir up a lot of emotions for people. For some, it's aggravation because they're a waste of time, for others, it's stressful because it feels like you're getting a review. However, for some, it's a great learning experience that leads to the team improving. Do you want to be in the latter group? Then this talk is for you! In this talk, we'll start by looking into the goal of code reviews and why we should be doing them. From there, I'll show you the common mistakes that teams make with code reviews and how to fix them. To wrap things up, I'll show you what I do when performing code reviews. Intended for developers of all levels, attendees will understand the reason why we should have code reviews, signs of bad reviews, signs of good reviews, and have some ideas to take back with them.
/>
JavaScript and Accessibility: Building Thoughtful Interactions
Jake Partusch
Building accessibility into modern web applications is an often-overlooked ethical requirement. _Every_ user should be able to use our applications! With the complexity of the web in 2020, there are more and more potential pitfalls in developing accessible interactions with JavaScript frameworks. In this talk, we'll walk through common mistakes, discuss repeatable accessibility strategies, and learn how to build accessibility testing into the development process.
/>
Preparing For the Future of Employment In Technology
Heather Terenzio
/>
Product Discovery - How teams bring their customers into focus!
Brian Wohlers
Hear about Farm Credit Services of America's journey into product management and creating a hyper focus on the customer's needs. Brian's team has been learning about customers using product management techniques to help determine outcomes and then measure results as builds are sent into the wild. This journey has been nothing near normal as the team has adapted their learning and practices to produce new features that are valuable to their customers and business. The more they learn about their customers and dispel assumptions they have, the faster the team needs to react to build a product that is relevant. Hear about how agility has changed for the team, and why practices matter differently than before.
/>
Secret Backlogs
Chris Chung
Across the five fundamental events of scrum, each has a varying degree of maturity and success. This session looks to introspectively analyze how backlog grooming, planning, standup, demo, and retro are powerful team building and culture tools but how our previous experiences have shaped them into something else entirely. Themes of "Secret Backlogs", "Place Holder Planning", "Sit-down Stand-ups", "Lack of Demos", and "Touch-and-Go Retro" are indications of areas where team members need to coaching and support to become high performing again.
/>
Testing the Functional Waters: Functional Programming Principles and Patterns in C#
Adrienne Tacke
Originating as a C# developer, the benefits of functional programming always taunted me. Yet, most applications I worked on heavily relied on user interfaces and an otherwise object-oriented architecture, so the decision to move to F# or some other functional programming language didn't make sense. Despite this, many principles and patterns from functional programming DID make sense to implement for cleaner and more robust code. Important paradigms like immutability, method chaining, and using expressions over statements were certainly things even C# developers could take advantage of! In this talk, I want to demonstrate how C# developers can implement these beneficial patterns and principles and explore how doing so ultimately results in better code!
/>
The Dark Side of UX
Courtney Heitman
User experience design brings clarity, removes obstacles. It rewards - makes us feel accomplished, successful, happy. Users are confident when using a well-designed application - as easy as turning on a light switch: [Buy] Don't make me think: did I opt in? Don't make me think: was that a hidden fee? We will explore the wild world of user manipulation. The Bait and Switch. Trick Questions. Misdirection. Confirm-shaming! Discover the latest ways UX designers trick their users, how easy it is to do by accident and how it affects your brand. [ Sounds great ] [ No, I hate knowing things ]
/>
The Dungeon Master's Guide to DevOps
Bill Dinger
We'll go over the full CI/CD cycle: builds, commit hooks, static code analysis, pull request review tools, automated linting, QA/Security/Release automation and build automation. Gained from years of practical experience I’ll share what has worked best on projects cross industry and from teams ranging for 2 to 140.
/>
The Immutable Laws of Software and Life: Exploring Tradeoffs
Cory House
The first Law of Ecology: you can never merely do one thing. Actions can have unexpected, profound impacts. In this session, we'll explore the tradeoffs. In this story-based session, I'll reference both popular and little-known laws of computing and life. I'll show how to use these laws to write better software, and live better too. This session will give you new mental models for thinking about the tradeoffs we make in software...and life
/>
The Side Project Survival Guide
Charlie Koster
Have you ever been highly motivated to work on a side project only to see that project not survive its first weekend? There are many reasons side projects don't survive such as intimidating complexity, scope creep, or an attention shift to a shiny new tech. In this talk I'll explain not only how to keep your side project from dying but also the importance of completing side projects for your career and future opportunities.
/>
Travels through the Looking Glass: My journey from Customer Service rep to Automation Test Engineer
Amanda Perkins
The road we travel in our jobs (and our lives) is not always smooth, but sometimes, it takes falling down the rabbit hole to lead you on the yellow brick road to your very own Oz. It doesn't matter where you start; it's about where you end up. Using pop culture references, we'll discuss the journey I took to get from Customer Service Rep where my understanding of IT was a couple people in a closet like office to working as a QA in a waterfall software shop for a university to Automation Test Engineer and Lead QA. I want to share my experience with others to show that we've all traveled down different roads but our experiences and knowledge shape how and what we test as we're testing, from how we interact with a mobile app to how we test that new website to how we write up a bug ticket. Everything we’ve done before comes with us into testing, and it’s what shapes us to do what we do best!
/>
Unit-Testing With Ease
Duane Newman
Do you want to skip all the setup ceremony and get straight to the actual testing when writing unit tests? Leveraging dependency injection and IoC makes it a breeze to build solutions that are modular and testable, but building out those dependency chains in our unit tests can leave them cluttered and overly complex. It's time to learn to embrace the magic of IoC, DI, and mocking to lower the friction of writing and maintaining unit tests. Taking cues from the open-source library Ease, you can see how to tap into the life-cycle of unit testing frameworks and integrate it with an IoC container to give you a fresh start for each test. Throw in a little mocking and a flexible pattern for managing setup and now you are testing in high gear! A great side-effect of using Ease, or a similar methodology, is that tests become more resilient against changes in the dependencies that are not a direct concern of the test, so you end up breaking fewer tests and changing less test code. What are you waiting for? Stop the ceremony, and start testing!
/>
Using our powers for good: Tech and social impact
Hilary Stohs-Krause
Want to make a difference in your community, but don’t know how, or feel like you don’t have time? You’re not alone. Luckily, there are a number of ways you can use your tech-industry skills to create positive change in your community - and yourself! (Fun fact: volunteers live longer and make more money than those who don’t volunteer.) We’ll explore the why’s, how’s, and where’s for sharing our skills, both technical and non-technical. You’ll learn more about the breadth of ways to give back, and hopefully leave feeling empowered to reach out in your own community and start making connections.
/>
What You Need to Know About Open Source—Trust Me, I'm a Lawyer
Jeff Strauss
Open source tools. We all use them. Whether an entire framework, a focused toolkit, or a simple custom component from GitHub, npm, or NuGet, the opportunity to improve our development speed while learning new things from open source projects is enticing. But what does “open source” truly mean? What are our rights and limitations as open source consumers to use, modify, and redistribute these tools in a professional environment? The answer depends upon the OSS author's own decisions regarding project licensing. Come investigate the core principles of open source development and consumption while comparing and contrasting some of the more popular licenses in use today. Learn to make better decisions for your organization by becoming informed of how best to leverage the open source works of others and also how to properly license your own.
/>
What the “F” is UX and how does it fit in to the agile world?
Jennifer Blatz
There is a lot of confusion about UX. What is it? What’s the difference between UX and UI? How do UX folks relate to and work with developers? And this is just the tip of the iceberg. When the Agile Manifesto was written, UX was not a part of that world. So this brings up even more questions: How is UX supposed to fit in to our company’s agile model? Should UX be part of our agile ceremonies and sprints? How is this all supposed to work. This talk will clarify the mustery of what User Experience is and how to incorporate it in to agile and sprints. Outline • Define UX o What UX is and is not o The benefits of UX o Demystifying the UX and user-centered design process o What a UX designer actually does o Value of user research o How UX can make a developer’s life easier • UX in Agile o Agile Manifesto’s principles and how they relate to UX o Planning ahead o Timeline and sprints o Working on the team, we’re not a “developer” o Collaboration in person and remotely o Don’t throw it over the wall
/>
You don’t know ML and neither do we
Ryan Hochstetler
But that’s fine, Google does! Google Cloud Vision AI is an approachable collection of deep learning algorithms that enables high quality visual analysis on any application. But will the actual analysis meet your expectations? Finding millions of images to put Cloud Vision through its paces is just an Instagram away. With both Cloud Vision and Instagram in combination, this talk will show the highs and lows of using this advanced imaging technology, no data science degree required.
/>
You don’t know ML and neither do we
Christine Seeman
But that’s fine, Google does! Google Cloud Vision AI is an approachable collection of deep learning algorithms that enables high quality visual analysis on any application. But will the actual analysis meet your expectations? Finding millions of images to put Cloud Vision through its paces is just an Instagram away. With both Cloud Vision and Instagram in combination, this talk will show the highs and lows of using this advanced imaging technology, no data science degree required.
/>

Copyright 2018-2020 © Connectaha, LLC. All rights reserved.