Sessions

Feburary 1-2. More Session Details Coming Soon

3x3: Fresh Code Delivered, Three Times a Day

At LinkedIn, we operate on a system called “3x3”, which is based on the paradigm that we should deploy code three times a day, with no more than three hours between when the code is committed and when those changes are available to our members. While counter-intuitive, many listeners will be surprised to hear that maintaining this rate of production has enabled us to ship higher quality code with fewer defects. While continuous integration is common in web frontend and backend systems, it is rare with native Mobile Applications. Attendees of this session will learn what the 3x3 system entails, why we have set this aggressive goal for ourselves, and how others in the Mobile Development Community may be able to leverage some of the learnings to make Continuous Integration a reality for their own projects.

Talk with Dr. Michio Kaku

Dr. Michio Kaku is one of the most widely recognized figures in science in the world today. He is an internationally recognized authority in two areas. The first is Einstein’s unified field theory, which Kaku is attempting to complete. The other is to predict trends affecting business, commerce and finance based on the latest research in science.

Faster Angular Applications

One thing is sure - performance matters! Blocking the main thread of an application, causing frame drops, is one of the most efficient ways to get rid of a significant portion of our users. Fortunately, the day could be saved, thanks to functional programming.

Coming with, at first, abstract ideas, functional programming brings the concepts of immutability and purity, which combined together can dramatically improve the rendering performance of our application.

In this talk, we'll apply concepts from functional programming in the face of pure components, pure pipes and persistent data structures. We'll demonstrate in details how we can use them to build high-performant Angular applications.

Universal.Power.Women

Learn about the Angular Universal during a walkthrough of a demo application featuring a list of Fictional Power Women! Learn how to improve your start render time and how to design a progressive user experience. Also see how to transition between the Server and Client renders and provide better SEO for your content. Also see the latest Angular features, such as HTTP Interceptors and the TransferState APIs at play.

Reactive Brain Waves

Our brain is a fascinating machine. Thanks to recent advancements in EEG technology, we are finally able to begin interfacing with it and build "thought-controlled" interfaces. In this talk, we are going to experiment in connecting our brains to an Angular app, using an affordable consumer EEG headset and Web Bluetooth, and then use RxJS to process the brain signals and feed them as events to our components. This gives a whole new meaning to the term "Smart Component", in a mind bending way.

NBA + Angular = Game Detail

Ever wonder how large scale websites use and integrate enterprise Angular applications? Then you'll really want to hear this session! See how NBA.com developed a live game experience, entitled Game Detail, around NBA League Pass with Angular at scale. This session will explore different concepts like progressive decoupling, data management, API integrations, and overall software architecture. Come see what issues NBA.com faced while implementing Angular, and how we were able to overcome those challenges and be successful.

Try not to lose your marbles with RXJS

Rxjs is a powerful way to handle UI events or asynchronous data, but it can be very confusing as a beginner. We’ll talk about important principles to understand when getting started in Rxjs like the observable and observer pattern, hot and cold observables, and operators. Come to this talk if you are new to Rxjs or need to refresh your skills.

Smart Angular Elements. An Experiment

If you've heard of A-Frame, you'll know that A-Frame is cool. You'll also know that it's built on top of Web Components standards, which takes the whole idea of Custom Elements to a whole new (mind blowing) level. 

Now....Imagine a similar concept, but for Machine Learning and built with Angular Elements. How would that look like? And how should one even start to reason about it? 

If these are the kind of questions that have been keeping you up late at night (and I know they have) then you're in the right place, because this is exactly what this experiment is about!

Deploying angular to the cloud

You’ve built your app, but can you deploy it to the cloud with confidence? If you hesitated, then this session is for you! We’ll use the Angular CLI, AOT, and other tools to optimize our apps and inspect them. We’ll deploy our apps directly to the cloud from our editor, and then learn how to use CI/CD. Learn how to run your apps locally and in the cloud with confidence! You’ll shout “it works on my machine and in the cloud”. The good news is there are tools to make this all within your reach.

Building VR Interfaces with Angular

As virtual reality applications become more widely used, developers of more traditional media, such as web and mobile platforms, may find themselves building non-traditional interfaces. This session will give an overview of the interaction patterns that work well in mixed reality environments and show techniques that can be integrated into new or existing applications using Angular with popular VR libraries.

Service Workers & Cows — a love story

(In deep-theatre-guy voice) In a world, where Internet speeds can reach up to 6 megabits per second and cows reign supreme, one developer stands alone to discover the simplest way to cache EVERYTHING! Join her on this epic journey fraught with lag and peril where she'll battle config files and caching external assets, all the while dealing with the conflict of freshness vs cache-first styles looming ominously over her every move!

Will her love for cows be forever destroyed by slow network? Or will she embrace the challenge and overcome the lag with service worker power?! Find out, at ng-atl’s 2018 talk “Service Workers & Cows — a love story”.

The dark side of tuning Angular performance

Lazy loading is not enough, for the best performance in critical parts of your application?! How far can you go to increase performance?

Change detection, View encapsulation, Zones, TypeScript, Javascript, White Space, Memory Consumption all of these contribute to performance.

In this talk, you will learn how to measure performance and where you can look for the most significant gains, and how deep is the rabbit hole.

Dissecting the architectural process for creating reusable Angular components

So you know the zappiest framework on earth now and cannot imagine going back to the old jQuery/Angular1 days, but you still find yourself writing more code every time you implement a new feature. Other times you stumble into 3 different versions of a slightly-different-yet-almost-similar component and think there should be just one. You want to finish projects faster and do more with less. 

If this describes you, then you are ready to take your Angular knowledge to the next level and learn the secrets of setting up scalable, maintainable, and performant components. 

This session will cover:

Creating reusable, consistent components that are scalable across various applications

Design philosophy behind such components

The high-level thought process and overall considerations while architecting such components

Reactive Programming: Future-Proof Your Code

There will always be a new JavaScript framework to learn. Technology will continue to evolve and change, and developers will continue to rewrite applications. Wouldn't it be amazing if we could just copy paste 90% of our code from framework to framework? 

Well, you can. Reactive programming enables just this AND the ability to future proof your code. 

Not only can reactive programming help with your solutions to JavaScript fatigue, but the concepts and technology remain consistent from framework to framework. Learn how to create a more composable application architecture and an arsenal of lego bricks with RxJS, a push based primitive and domain specific language that sits on top of JavaScript. 

With its more declarative syntax and intrinsic portability, learn how to use RxJS in Angular, React, and Vue and what the future holds for for reactive primitives in TC39 and WHATWG.

JavaScript is the new metal: the cloud vs the browser

One day we woke up and things were different. Maybe it happened overnight, maybe it took many years. Suddenly we are scripting against thousands of Virtual Machines from the command line while creating things today with JavaScript in the browser that were impossible yesterday. LiveScript becomes JavaScript becomes ES6 and now we're compiling C++ to JS and using WebRTC, WebVR, and WASM. Join Scott Hanselman as he explores the relationship between the Cloud and the Browser, many Languages and one Language, how it might all fit together and what might come next. NOTE: Non-technical business people and technical IT people alike will enjoy this lighthearted talk.

I Don’t Do Non-Technical Talks

We will never change how tech does business until we change how we define technical. Almost every CFP in some form or another, asks the submitter whether their proposed topic is technical or non-technical. “Non-technical” content does not hold the same value in the minds and wallets of many members in our communities. This kind of content is often seen as “filler” and unnecessary to the profession. No, the content I provide to the technology community is not programming specific but my ability to internalize and articulate this content in ways that enable programmers to hone their craft and to become better members of our community IS VERY TECHNICAL. And because not everyone can do what I do, I would say that I have a very specialized set of technical skills. In our efforts to become more inclusive and diverse, we must look beyond just gender and race and critically examine the various ways our intentional and unintentional behaviors may be placing barriers to entry for others.

Contributing to the Angular Docs

Learn the steps involved in contributing to the Angular docs. You'll learn how to setup the repo locally, make your changes, and what goes into submitting and landing a PR. Diving in is a great way to learn and build the community!

State management with ngrx

Managing state in large applications is hard. Let's talk about how reactive programming is awesome and how it can help us with managing complexity, data and scaling our applications. After this session, stores, effects, reducers and actions will no longer be a mistery but rather a key tool in simplifying our application's state.

Recursive Forms, CVAs & Components

While building the Firestore Console, we needed a system of recursive forms that allowed for users to create json-like data structures via the UI. In order to do this we set up a system of nested forms and components that the user could interact with. This talk covers lessons learned while building these forms!

Logging, and Errors, and Metrics - Oh My!

As engineers, we build pretty cool Angular apps. Once users start using our cool apps… well, we run into the fun process of discovering errors. Keeping track of these issues can get messy, getting alerted is stressful, and measuring it can provide you with an overwhelming amount of information. So, how do we combine all these things to make our cool apps work even better than before? In this talk, we’ll dive into logging, errors, and metrics.

Machine Learning & Angular Testing w/ Dozn

Imagine the thousands, millions, and billions of possible actions a user can take on your Angular application. Now; multiply that by the number of framework updates, browser releases, and every other variable that has ever caused a “working feature” to have a user yelling at you. It’s a lot for one developer, or even a whole team, to keep track of. Join us as we dive deep into how we utilized Machine Learning principles to support E2E Testing in Angular & Ionic applications. A live demo, open source examples, and as many egg puns as you can handle. After all, there are a Dozn reasons you shouldn’t let your application break :)

Live App Updates Without The App Store

Updating Mobile apps especially on IOS can sometimes be very challenging. Apart from the long list of rules to be followed, there is also the long time it takes for an IOS app to get approved for the app store, which a waiting time that can range from days to weeks. On the web, this is not the case, as we can update our websites instantly with a single push to the cloud. But what if you were able to instantly update your mobile application without the App store? This talk will showcase how we can achieve this and instantly update a mobile app live on stage.

End the Test Engineer role: how cross-functionality leads to a better engineering process

The role of QA, QE, or SDET is becoming less efficient in the fast-moving world of modern applications and continuous delivery. As manual testing was replaced by automated testing, software engineers specializing in testing obtained development skill sets. Being able to both develop and write tests concurrently for modern applications leads to improved engineering productivity and a team-wide commitment to quality. Angular in particular provides excellent tooling to make development and testing seamless. By eliminating specialized roles, developing applications can be fast and effective, because the team owns all aspects of the software development life cycle

Webpack - Your New BFF

Webpack is JavaScript module bundler that has taken the world by storm, but a lack of great docs and wealth of boilerplates have led to many people using it, but not understand it. I will show you how to utilize Webpack for building out your applications. Once you see the magic available, Webpack will become your new BFF!

The parable of the blender

If no one ever sets out to make a bad product, then why does bad software exist? Despite our best intentions, large budgets, and top-tier talent, companies large and small still churn out products that no one wants. In every such case of “great landing, wrong airport”, the end user is nowhere to be found until after the product’s release. If we want to make great things, we need to get out of the building and talk to our customers.

In this talk you will learn how to involve end users in building your product without missing deadlines. You'll become a detective, searching for the user’s intentions beyond “It needs to work better” by asking the right questions at the right time to the right users. You’ll leave this talk understanding that software isn’t about microservices, TDD or the latest framework - it’s about solving people's problems.

PWA All The Things!

Progressive Web Apps are not replacing native mobile applications any time soon. Don’t disregard them just yet! They can take our web applications that we build or are currently running and make them better. By using support for offline caching, push notifications, home screen icons and more, we can upgrade our app to a PWA to make it more accessible, reliable and engaging! Let's take a look at how to to create or update our Angular applications. Then we will see what this looks like & acts like on multiple platforms so we know what all of our users are experiencing.

NativeScript and CodeSharing

When it comes to sharing code between Angular web projects and NativeScript mobile apps there are several landmines you will want avoid. Even in today’s innovative frontend world, there really is no magic bullet to enable codesharing. Achieving success when marrying the 2 technologies varies a lot depending on several important factors. Nathan Walker has been experimenting and developing in this arena ever since both technologies emerged and has encountered a couple of important take aways. In this session, you’ll learn several important *Major Keys* to maximize code reuse with real world case studies.

Modern Testing Strategies for Reactive Applications

In the world of Angular applications, testing is key to protect against regressions and validating functionality. With apps becoming more reactive with observables, testing how these independent pieces work becomes more important. Learn how these testing patterns and practices will ease the burden of testing your Angular application. From unit testing presentation components, integration testing with smart components, testing observables, state management and end-to-end tests, you can use these strategies to make your testing your reactive application easier and to simplify your testing triangle.

It's Not Dark Magic - Pulling Back the Curtains From Your Stylesheets

Chances are if you're a web developer you're going to have to write some CSS from time to time. When you first looked at CSS it probably seemed like a breeze. You added some border here, changed some colors there. JavaScript was the hard part of front end development! Somewhere during your progression as a front end developer that changed though! What's worse is that many developers in the front end community have simply learned to dismiss CSS as a toy language. The truth however is that when we hit a wall many of us don’t actually understand what our CSS is doing under the hood! We all like to make jokes about it, but how many of us have actually taken the time to try and understand the CSS we're writing. How many of us have actually reasonably debugged an issue to the next lowest abstraction layer when we hit a wall? All too often we settle for the first StackOverflow answer, hacks, or we just let the issue go entirely. In this talk we're going to finally take a step back and stop mindlessly throwing darts at the dart board! We’ll discuss the most common issues developers face such as, z-index, the cascade, and positioning in depth by diving deep into the browser's internal rendering engine structure to see how are styles are actually parsed. Sure, you may still not have an eye for design, but you might just walk away a CSS guru!

Emotional Intelligence for Engineers

Software may be built on machines, but it’s built by and for human beings. To be a highly effective software engineer, you must be able to navigate human interactions successfully. Emotional intelligence is the set of competencies that will allow you to do just that! Whether you’re discussing tradeoffs with your UX designer, convincing your team to adopt a new tool, or just reviewing someone’s code, interpersonal skills are essential. Emotional intelligence not only helps in our interactions with others; it also includes self-awareness, which allows us to motivate ourselves, manage stress, and avoid burnout. This talk will give you a better understanding of your own behavior, and it will also help you to cultivate empathy for the people on your team. You’ll learn a suite of practical tools that will empower you to prevent burnout, improve productivity, and tackle difficult conversations at work. You’ll leave inspired to apply these new skills to unlock your full potential as a developer and a human being!

Breaking Down Reactive Forms

Angular offers two options for building forms in your application: Reactive Forms and Template Driven Forms. In this talk, Bonnie will focus on reactive forms and explain the structure, data model, and setup. You’ll learn about the synchronous flow of data between the UI and server, covering how your component can quickly respond to user input how to update the server once your input is validated. You’ll also see how you can easily validate and test your reactive form. If you’re one of the many people leaning toward reactive style programming, you’re going to love reactive forms!

Beyond the Angular CLI

The cat is out of the bag, people know about the Angular CLI and what it can do for them. But what is coming? What else can it do? What changes and improvements can I expect? Come learn what the Angular CLI can do and will evolve into.

Angular's User Authentication Tool Belt

Your Angular app is nearly done and now you just need to add authentication before it goes out to the real world. Simple, right? Not always. There are a lot of moving parts when it comes to authentication and authorization in general and it gets even worse for single page apps. Fortunately for us, Angular provides some great tools that help to make our lives easier when it comes to implementing auth. In this talk you’ll learn about Angular’s user authentication tool belt and how you can get started with it today. You’ll also come away knowing what JSON Web Tokens are and how they can be used alongside features baked into Angular to help you solve authentication and authorization in your apps.

Angular as strategy for collaboration and scale

We on the Angular team care most about seeing the amazing things you all build with the platform. Because of this, we've always focused on how teams can scale from the smallest prototypes to Google-scale consumer and enterprise applications. Come hear about how we've designed for productive teams and eliminating development roadblocks at Google and throughout the open source world.