Powered by AppSignal & Oban Pro
Would you like to see your link here? Contact us
Notesclub

ElixirConf 2022 - Thursday

elixirconf--2022/thursday.livemd

ElixirConf 2022 - Thursday

Topics

10:55am to 11:05am

10 minutes

Title: Welcome - Emcees Sundi and Amos

11:05am to 11:10am

5 minutes

Title: Platinum Speaker - Teller

11:10am to 11:15am

5 minutes

Title: Platinum Speaker - Smartlogic

11:15am to 11:20am

5 minutes

Title: Platinum Speaker - PepsiCo

11:20am to 11:25am

5 minutes

Title: Platinum Speaker - DockYard

11:25am to 12:25pm

1 hour

Title: Keynote: Brian Cardarella

12:40pm to 1:20pm

40 minutes

Track 1

Title: Onboarding New Elixir Members

Speaker(s): De Wet Blomerus

Topic: Adoption

Audiences: Advanced | Intermediate | Beginner

I onboarded onto Elixir myself and after consuming a bunch of podcasts, videos, books and mentoring, I started to regularly get asked to help new people onboard. I keep seeing new people run into the same pitfalls of misunderstanding, let’s go over them. I have seen experienced people throw advanced topics at beginners that they don’t actually need to know yet. Let’s discuss those. If you are new to Elixir, or need to help new teams onboard, you will leave with the following: - A list of things that new people can avoid in most situations. - A list of things that new people absolutely need to learn to become productive with Elixir. - A list of things that new people often get stuck with and need extra explanation and guidance. - Examples of how to make your code more clearly understandable for people new to Elixir (and probably everyone else).

Track 2

Title: In Production with Elixir, Rust, and WebAssembly

Speaker(s): Kevin Hoffman

Topic: Adoption

Audiences: Advanced | Intermediate | Beginner

We maintain a Phoenix cluster that serves up a GraphQL API, a user-installable Elixir application that becomes part of a peer network running WebAssembly modules, and a user-installable Elixir application that performs Kubernetes-like autonomous agent activities. Some of these apps interact with Rust crates via rustler, others interact with each other as Horde clusters or via message brokers. In this talk I’ll be covering what we’ve learned, done wrong, done right, loved, and hated along our journey. We’ve had to figure out everything from automating distillery releases in CI to managing cluster-aware applications to trying to smooth the developer experience of installing our pre-built OTP application. Come to this session to learn how wasmCloud and Cosmonic are leveraging Elixir to build both an open source project and a commercial startup around WebAssembly.

Track 3

Title:

Speaker(s):

Topic:

Audiences: Advanced | Intermediate | Beginner

1:25pm to 2:00pm

35 minutes

Track 1

Title: “How to Grow your own Juniors”: A guide to mentoring in an Elixir Environment

Speaker(s): Nikki Kyllonen, Meks McClure

Topic: Adoption

Audiences: Advanced | Intermediate | Beginner

Wanting to grow your team, but having trouble finding developers with Elixir experience? Will your team have the time and resources you need to train someone? How do you know if hiring someone new to Elixir is right for your team? In this talk, two junior developers will share their experiences learning Elixir and Phoenix LiveView in their first development job. You’ll come away with: - How to set realistic expectations for both mentors and mentees. - Which functional programming, Elixir, and Phoenix LiveView concepts to cover during mentorship. - How to structure mentorship in the first week, 30 days, 90 days and year of hiring a junior or a developer new to Elixir and Phoenix.

Track 2

Title: Quick Iteration in Elixir - Tips from 6 Years of Professional & Hobby Elixir Development

Speaker(s): Jason Axelson

Topic:

Audiences: Intermediate | Beginner

I fell in love with Elixir in 2016 and have been coding in it professionally (and for fun!) ever since. Over the past 6 years I’ve amassed a series of micro-techniques and tips that help me move code from my brain into my editor quickly and with minimal fuss. In this talk, I will share from my bag of tips and techniques to help other developers accelerate their productivity (and have more fun) while developing in this language that we love.

Track 3

Title:

Speaker(s):

Topic:

Audiences: Advanced | Intermediate | Beginner

2:00pm to 3:15pm

1 hour 15 minutes

Title: Lunch

3:15pm to 3:50pm

35 minutes

Track 1

Title: Selling Elixir

Speaker(s): Alan Feuerlein

Topic: Adoption

Audiences: Advanced | Intermediate | Beginner

For whatever reason, you may see Elixir as the best choice for your organization, but perhaps others are resistant, or don’t feel ready. I’ll explain our organizations journey to Elixir adoption, and provide an overview and explanation of the main selling points of Elixir to a group of solid (but perhaps Elixir-novice) developers. We’ll cover how to bring up these points, the roadblocks you might encounter, and how to engender real buy-in for a new language and perhaps architectural strategy. We’ll also briefly review how to sell Elixir further up in your organization, and why executive leadership should buy in to such a shift in engineering strategy.

Track 2

Title: Seems Good Enough to Me: Working with Testers to Derisk Elixir Upgrades

Speaker(s): Jenny Bramble

Topic: Testing

Audiences: Advanced

It’s that time again! You have a legacy app running business critical functions and it’s on an old version of Elixir. You need to upgrade to stay safe, have access to the most modern features of the ecosystem, and be current with your community. But a full regression of the app will take days if not weeks and no one can find the time. What’s a team to do?

Jenny Bramble suggests leaning on the deep magic of test methodology and collaboration to determine the minimum viable tests to run in order to ensure your system is preforming as expected. She’ll talk about working through release notes with your testers as well as applying test methodologies to the types of problems we see in upgrades and regressions. You’ll walk away from this talk with a stronger understanding of the ways we can simplify and derisk upgrades and a structure for working with test to make sure that we’re doing the right amount of testing.

Track 3

Title:

Speaker(s):

Topic:

Audiences: Advanced | Intermediate | Beginner

3:55pm to 4:30pm

35 minutes

Track 1

Title: Roll Cages, Pit Stops, and Victory Laps: The Launch of Elixir and LiveView at Scale on the New Cars.com

Speaker(s): Zack Kayser

Topic: Adoption

Audiences: Advanced | Intermediate | Beginner

As software engineers, it is not everyday that we are presented with the opportunity to work on a full rewrite and re-platforming of a large-scale legacy system. In June 2021, when we launched the new Cars.com platform to a full production audience, we officially completed a long-running re-platforming process and transitioned to our shiny new platform built on Elixir, Phoenix, and LiveView (not to mention many other goodies provided by the Elixir and BEAM community)! As exciting as the launch was, the bulk of the learning from the launch process still laid before us – with just a short ramp-up period, we went from taking 0 user traffic in production to handling 100% of the traffic to cars.com and related sites and APIs.

This talk is going to focus on some of our biggest takeaways and lessons from the transition to our new platform, and in particular focus on the lessons learned from the most prominent page of our site that is powered by LiveView.

In Part 1, we’ll take a look at the “roll cages” that allowed us to pull off this re-platforming successfully. For us, a roll cage is not the metal safety enclosure around a race car, but rather the resiliency provided by the BEAM and process architectures that allowed us to keep serving traffic even when our system was under duress and stakes were high. The roll cages couldn’t keep us from crashing, but we were glad they were there when the inevitable crashes came.

In Part 2, we’ll talk about some of the pit stops we made along the way. We’ll cover a few of the tweaks and tune-ups we made to our LiveView-powered search results page. Sometimes the tune-ups were exactly what was needed, sometimes they were misguided, and yet other times they had little to no impact. Each pit stop, however, did have its own lessons and that’s what I’ll share with you here.

Finally, we’ll close out with the victory lap – the success story we’ve built so far, how our team continues to grow and learn, and some reflections on the journey we’ve been on.

Track 2

Title: Self Taught to First Job!

Speaker(s): Kimberly Johnson

Topic: Adoption

Audiences: Beginner

How I dove into the community and got my first job as a self-taught software engineer; how TravelPass Group has helped facilitate growth.

The role of character - grit, passion, hard work, and exuberance are key!

The role of tutorials - Pragmatic Studio, Grox.io, YouTube, and Books/Online - THANK YOU.

The role of mentors - Bruce Tate, John Cotton, Jeffrey Matthias, Sophie Benedetto, Brett Wise, Adi Iyengar, and Jon Forsyth - THANK YOU.

The role of TravelPass Group - A company that was willing to take a chance on me, how they have created a culture to help new engineers succeed - THANK YOU.

Track 3

Title:

Speaker(s):

Topic:

Audiences: Advanced | Intermediate | Beginner

4:35pm to 5:10pm

35 minutes

Track 1

Title: Axon: Functional Programming for Deep Learning

Speaker(s): Sean Moriarity

Topic: Neural Networks

Audiences: Advanced | Intermediate | Beginner

An overview of designing a deep learning framework in a functional programming language and how it differs from languages in the Python ecosystem.

Track 2

Title: Serverless to Serving Elixir: Migrating Serverless app to run on Phoenix

Speaker(s): Erik Guzman

Topic: Adoption

Audiences: Intermediate | Beginner

Problem: Increasing productivity, affordability, scalability, and even less coding (gasp!) are the goals for any web application. Add on top unpredictable server traffic, then a solution you might consider is going serverless and throwing in one of those nifty NoSQL database solutions. Easy enough, but at what cost? You can unintentionally suffer vendor lock-in, deal with cold starts, architect your application improperly, and miscalculate cost structure at scale. But there is an even better solution you might want to consider, Elixir. Elixir and Pheonix can help developers solve all these technical challenges, allowing you to focus on the end-user experience.

Purpose: “Serverless to Serving Elixir: Migrating Serverless app to run on Phoenix” will demonstrate why migrating Elixir can solve all the same issues your serverless application would, make it faster, avoid vendor lock-in, and help future-proof your application. Maybe even have you second-guess if you ever need to go serverless again.

Live Demo/ Walkthru: In preparation for this talk, I will guide conference attendees through the libraries and strategies to take NodeJS Serverless applications using Firebase Firestore and migrate them to a single Phoenix application and Postgres database with no downtime.

Track 3

Title:

Speaker(s):

Topic:

Audiences: Advanced | Intermediate | Beginner

5:10pm to 5:45pm

35 minutes

Title: Refreshment Break - Meet Sponsors

5:45pm to 6:20pm

35 minutes

Track 1

Title: SOLID code isn’t flexible

Speaker(s): Chris Keathley

Topic:

Audiences: Advanced | Intermediate | Beginner

The only constant in software development is change. As engineers, we’re presented with new bugs, new integrations and new requirements on a regular basis. In order to handle these changes, software engineers have adopted a number of different principles and techniques, designed to aid them in code comprehension and adapting to change. Unfortunately, many of the widely accepted software patterns fail to achieve either of these goals. Luckily for us, we have the power of Elixir, Erlang, and functional programming on our side.

In this talk we will compare and contrast many established ideas from object oriented design with a more functional approach. Beginners to Elixir may see a new way to think about design while more experienced Elixirists will hopefully pick up some new techniques and patterns to apply in their own code. Most importantly, we will discuss how to build even simpler systems using the tools that we all love.

Track 2

Title: Using Livebook to Teach Elixir

Speaker(s): Brooklin Myers

Topic: Livebook

Audiences: Advanced | Intermediate | Beginner

Livebook allows you to create interactive code notebooks often used for teaching, documentation, and rapid prototyping.

With this talk, you will come away with the lessons learned from creating an academy curriculum with Livebook. While focused on education, there will be applications for onboarding developers, teaching teams, documenting open-source projects, and more.

You will learn how to:

Create effective teaching material. Create interactive code examples, exercises, and executable tests. Organize a large Livebook project with an index. Display visuals, including animations, charts, diagrams, images, and tables. Connect a Mix project and external dependencies to a Livebook notebook. Use Livebook as a convenient alternative to the IEx shell.

Track 3

Title:

Speaker(s):

Topic:

Audiences: Advanced | Intermediate | Beginner

6:25pm to 7:00pm

35 minutes

Track 1

Title: Learn you some pattern matching for great good!

Speaker(s): Elayne Juten

Topic:

Audiences: Beginner

Move if to the bottom of your toolbox. Have you ever looked at a function with numerous conditionals buried within and thought “there has to be a better way”? Well, there is! It’s pattern matching!

This talk will focus on the basics of pattern matching, both how it works and why we might want to use it to simplify our code structure.

First, we will walk through an example of a simple pattern match and take a look at how these concepts can be applied in a larger codebase.

Then we will refactor by taking a look at a function that utilizes multiple conditionals and walk through how to implement pattern matching in a step by step process. We’ll also discuss why refactoring to pattern matching can improve codebases.

Lastly, we’ll discuss the pros and cons of utilizing pattern matching in different situations you might see in a large codebase. By the end of this talk, you’ll have added pattern matching to your toolbox to wield with confidence.

Track 2

Title: Connect the Docs

Speaker(s):

Topic: Documentation

Audiences: Intermediate

Generating and maintaining web API documentation is daunting for a large code-base, and many solutions require regular manual maintenance that does not guarantee correctness or accuracy.

The speakers introduce Connect the Docs, a new documentation tool that generates an OpenAPI specification by leveraging controller action unit tests. With sufficient unit test coverage a team can generate accurate, consistent web API documentation by running their existing test suite (with just three lines of code!). This library also enables tracking any drift in an API contract if it is integrated in a continuous integration platform.

Track 3

Title:

Speaker(s):

Topic:

Audiences: Advanced | Intermediate | Beginner

Schedule

  • 11:05am to 11:10am - Platinum Speaker - Teller
  • 11:10am to 11:15am - Platinum Speaker - Smartlogic
  • 11:15am to 11:20am - Platinum Speaker - PepsiCo
  • 11:20am to 11:25am - Platinum Speaker - DockYard
  • 11:25am to 12:25pm - Keynote: Brian Cardarella
  • 12:40pm to 1:20pm
    • [x] Track 1 - 13 - *Onboarding New Elixir Members
    • [ ] Track 2 - 3 - In Production with Elixir, Rust, and WebAssembly
    • [ ] Track 3 - 8 - *Caching with the Postgres WAL
  • 1:25pm to 2:00pm
    • [ ] Track 1 - 5 - “How to Grow your own Juniors”: A guide to mentoring in an Elixir Environment
    • [x] Track 2 - 13 - *Quick Iteration in Elixir - Tips from 6 Years of Professional & Hobby Elixir Development
    • [ ] Track 3 - 8 - *WebAuthn + LiveView
  • 2:00pm to 3:15pm - Lunch
  • 3:15pm to 3:50pm
    • [ ] Track 1 - 8 - Selling Elixir
    • [ ] Track 2 - 13 - *Seems Good Enough to Me: Working with Testers to Derisk Elixir Upgrades
    • [ ] Track 3 - 5 - Wordle: Elixir Flavour
  • 3:55pm to 4:30pm
    • [ ] Track 1 - 8 - Roll Cages, Pit Stops, and Victory Laps: The Launch of Elixir and LiveView at Scale on the New Cars.com
    • [ ] Track 2 - 5 - Self Taught to First Job!
    • [ ] Track 3 - 13 - *E2E Reactivity - using Svelte with Phoenix LiveView
  • 4:35pm to 5:10pm
    • [ ] Track 1 - 5 - *Axon: Functional Programming for Deep Learning
    • [ ] Track 2 - 8 - *Serverless to Serving Elixir: Migrating Serverless app to run on Phoenix
    • [ ] Track 3 - 13 - Have you got the ExFactor? Writing a refactor helper
  • 5:10pm to 5:45pm - Refreshment Break - Meet Sponsors
  • 5:45pm to 6:20pm
    • [ ] Track 1 - 8 - *SOLID code isn’t flexible
    • [ ] Track 2 - 13 - *Using Livebook to Teach Elixir
    • [ ] Track 3 - 5 - *Review of using Elixir for 4 years in production
  • 6:25pm to 7:00pm
    • [ ] Track 1 - 5 - Learn you some pattern matching for great good!
    • [ ] Track 2 - 13 - *Connect the Docs
    • [ ] Track 3 - 8 - *Shifting Left: Secure Coding in Elixir Livebooks

Understanding the Notes

  1. Notes attempt to be in sequential order.
  2. Anything worth calling out falls to the bottom of the section, it may not belong in the stream of consciousness.
  3. Using the block quote > to show notes taken during rewatching the VODs.
  4. I don’t want to modify the original notes much but this should allow me to somewhat annotate the previous sections.
  5. Allows us to also add new sections.

Notes

Platinum Speakers

This started on stream late and refreshing wasn’t easy so I really want to see the VOD for this portion

Keynote: Brian Cardarella

Wasn’t able to take notes during the talk as Miranda was getting lunch. That meant I needed to be at a point to throw the laptop down if the girls got restless.

Big things: LiveView native, especially the WinUI3 parts we discussed on Twitter. BeaconCMS is still a thing and I have ideas I really need to publish this weekend, after going through yet another walkthrough attempt. It’s been updated recently and I hadn’t noticed. Firefly also seems really awesome for IoT.

It may be worth trying to discuss my ideas with Brian but it’s important to be concise when talking to a CEO. He is a developer but my brain wants to shotgun ideas when they need to be sniped.

12:40pm to 1:20pm

  • [x] Track 1 - 13 - *Onboarding New Elixir Members
  • [ ] Track 2 - 3 - In Production with Elixir, Rust, and WebAssembly
  • [ ] Track 3 - 8 - *Caching with the Postgres WAL

This happened completely during lunch so no real notes. These slides would be invaluable as an Elixir newbie myself. This just reinforced that I really need to focus on Brooklyn’s expertise and be more present.

Would love to see the VOD for this and caching especially. Rust would be useful too but it’s not high on my interest meter.

1:25pm to 2:00pm

  • [ ] Track 1 - 5 - “How to Grow your own Juniors”: A guide to mentoring in an Elixir Environment
  • [x] Track 2 - 13 - *Quick Iteration in Elixir - Tips from 6 Years of Professional & Hobby Elixir Development
  • [ ] Track 3 - 8 - *WebAuthn + LiveView

Came in late as the girls were going back for a nap. The VOD will be useful to understand the early tips for the shell for instance. I prefer Fork and git ui’s over git aliases. It would likely be useful to keep them though.

3:15pm to 3:50pm

  • [ ] Track 1 - 8 - Selling Elixir
  • [x] Track 2 - 13 - *Seems Good Enough to Me: Working with Testers to Derisk Elixir Upgrades
  • [ ] Track 3 - 5 - Wordle: Elixir Flavour

Jenny is a great public speaker like David Bernheisel. Works at Papa and mentioned they were hiring. Watching the VOD would be helpful and it makes sense to test the minimal amount required, specifically for upgrades. An extensive test suite makes sense overall but taking Laravel Shift as an example, the upgrade paths are examined from the changelog and code is altered to match. If a problem happens converting that deprecated function for instance, it’s highlighted in the PR.

This really highlights my curiosity into expanding the concepts Laravel Shift offers to virtually every framework. It’s really impressive and I think Elixir and Phoenix could benefit from similar approaches.

I spaced out a little bit as I was day dreaming about Shift but it’s great to get an understanding of how QA functions. The key take away is having empathy for users and testers. Understanding the testing plan is key and I’m a person that likes to collaborate, if I know you’re looking to break x, I wanna unpack all the pain points. It’s also important to document what we’re not testing, what dependency in a changelog is not a problem because we don’t use it, etc. You have someone that thinks like you that often doesn’t have the context of why you chose not to do something. The what we’re doing should also live along side with what we’re not, to an exceptable limit.

3:55pm to 4:30pm

  • [ ] Track 1 - 8 - Roll Cages, Pit Stops, and Victory Laps: The Launch of Elixir and LiveView at Scale on the New Cars.com
  • [ ] Track 2 - 5 - Self Taught to First Job!
  • [x] Track 3 - 13 - *E2E Reactivity - using Svelte with Phoenix LiveView

Man I spaced out a bit and just wanted to watch. Svelte has always been on my radar but that’s looking really slick and not all that difficult to comprehend.

Playing with the demo at https://github.com/jumpwire-ai/elixirconf2022 or following https://github.com/hexedpackets would be highly useful. https://jumpwire.ai/ also seems like useful technology.

4:35pm to 5:10pm

  • [ ] Track 1 - 5 - *Axon: Functional Programming for Deep Learning
  • [ ] Track 2 - 8 - *Serverless to Serving Elixir: Migrating Serverless app to run on Phoenix
  • [x] Track 3 - 13 - Have you got the ExFactor? Writing a refactor helper

Heavily distracted but the IntelliJ refactor section piqued my interest heavily. I’ve always wanted deeper refactoring tools.

5:45pm to 6:20pm

  • [ ] Track 1 - 8 - *SOLID code isn’t flexible
  • [ ] Track 2 - 13 - *Using Livebook to Teach Elixir
  • [ ] Track 3 - 5 - *Review of using Elixir for 4 years in production

6:25pm to 7:00pm

  • [ ] Track 1 - 5 - Learn you some pattern matching for great good!
  • [ ] Track 2 - 13 - *Connect the Docs
  • [ ] Track 3 - 8 - *Shifting Left: Secure Coding in Elixir Livebooks