You are viewing content from a past/completed QCon

Track: Developing/Optimizing Clients for Developers

Location: Majestic Complex, 6th fl.

Day of week: Monday

We often think of “client” as the entry point for human users into the digital world. Yet as technology evolves, we are interfacing with many different parts of our systems - and “client” takes on new meaning.

Technologies like GraphQL, Flutter, Electron and WASM are becoming more robust and contributing to an ecosystem that allows us to rapidly build across platforms.

This ecosystem provides more touchpoints for interfacing between the user and software, reframing how we might define “client”.

In this track we will take a deeper dive into some of these technologies and how they can be leveraged to ultimately deliver a more impactful interaction between the user and client.

Track Host: Anna Neyzberg

Developer & Project Lead @CarbonFive
Anna Neyzberg is a a developer and project lead at Carbon Five - a strategic digital products agency. In her time at Carbon Five she has worked with clients across many domains, most recently leading teams working with Coinbase on their institutional trading platform, and with Citibank Venture Studio on their vision for the future of work.
 
She is a San Francisco native who has worked extensively with the ruby community in SF and currently sits on the board of RailsBridge. She has taken this community organizing experience and several years ago founded ElixirBridge- an organization that offers free weekend long workshops, with the goal of creating an inclusive welcoming space for underrepresented populations in tech to learn elixir.
 
Her technical interests lie within distributed systems, cryptography, and functional programming. When not in front of a keyboard, she is trying to get better at climbing rocks.

Trackhost Interview

  • Can you tell me a bit about your background?

  • My background originally was more in science, but I got really involved in the tech community living in San Francisco. I ran the San Francisco Chapter of RailsBridge (that puts on free workshops for underrepresented folks in tech to learn Ruby on Rails). After that, I started doing a similar thing with ElixirBridge. I worked at a non-profit doing software stuff for a while, then at startups, and now I have been at Carbon Five (doing software consulting) for about 3 years.

  • So when we talk about a client, we have typically been talking about web apps running in browsers. What does it mean to be talking about the client today?

  • I think that perspective has really changed. When we think about the client, it is not just the user interfacing with the browser anymore. It's more of an interface between different parts of systems. AI, for example, could be thought of as a type of client feeding data into other parts of a system (maybe a Microservice). Other examples of how clients are evolving could be how Wasm is changing what we think of as a browser workload, or how we’re seeing people build using GraphQL (essentially, letting different teams meet different use cases leveraging a so-called protocol without having to necessarily strictly define those use cases beforehand).

  • What technologies are you hoping to feature during the conference?

  • Definitely Wasm, V8, and that interface between AI and clients. But I’d also like to pull some information about Flutter (an open-source mobile application development framework created by Google) and maybe another surprise or two.

10:35am - 11:25am

Not Sold Yet, GraphQL: A Humble Tale From Skeptic to Enthusiast

GraphQL’s wagon is full of hype, eager adopters, and it’s own band, but what about all the drawbacks? Come listen to a converted skeptic talk about how Netflix is running GraphQL in production. The love story of two: A seasoned developer and a hip shiny graph meet and the REST is history. Talking through how Netflix builds and deploys GraphQL, Garrett will aim to ease some of the concerns teams face when getting started.

Garrett Heinlen, Software Engineer @Netflix

11:50am - 12:40pm

Front End Architecture in a World of AI

Increasingly humans are no longer the only clients interfacing with your data, machine and AI clients are starting to manipulate data in real time and can create suggestions or influence human behaviour. This talk deals with the complexities of dealing with many different clients that are not all human and how to build a single interface that both humans and AI clients can leverage.

Using state container methodologies like redux we can treat a chain of machine/AI data manipulations the same way as a real person interfacing with your app. You can look at it as a headless version of your front end that cuts development time and allows for a testable, predictable, flexible and scalable architecture.

We're going to be dealing with topics like state synchronisation methodology, time traveling, comparing OT (Operational Transforms) vs CRDT (Conflict-free Replicated Data Types), vector clocks and merkle chains in javascript.

Thijs Bernolet, Front End Architect @oqtonai

1:40pm - 2:30pm

Build Cross Platform Apps With Flutter

Historically users building cross platform apps would be able to see and feel a difference between "native" apps and cross platform solutions, but what happens when the clients built by cross platform technologies start to achieve the same look and feel?

Flutter built apps compared alongside their Android/iOS counterparts are nearly identical and the difference is becoming imperceptible with every release. What does this mean for the future of client development when technology is democratized in such a way where you can write once and truly run everywhere, any client, on any platform?

We'll take a deep dive into Flutter, how it achieves an almost identical look and feel to its' Android/iOS counterparts and whats on the roadmap for Flutter (Web & IoT).

Faisal Abid, Co-Founder at dydx.dev & Google Developer Expert

2:55pm - 3:45pm

Remote Customer Facing Clients

In the past year, Rent the Runway has created a nation-wide network of dropoff boxes. By allowing customers to scan in their clothes for return locally, customers get returns immediately processed, allowing them to rent more items. These devices power a direct customer experience via RtR's custom software, involving real-time processing of customer and inventory data. This talk will delve deeper into the device software powered by React Native, configuration and deployment of the device, and remote management through technology and people.

Rohen Peterson, Director of Engineering @RenttheRunway

4:10pm - 5:00pm

Machine-to-Machine Interfaces

We often think of client interfaces as a visual medium, but in our increasingly connected lives, our devices are becoming more and more integrated. In this talk we'll explore the ever-expanding world of machine-to-machine interfaces and present a real-world use-case for all the buzzwords, including the blockchain, micropayments, and api-driven single-purpose services. 

As a use case, imagine parking your electric car in the City in a "smart" space equipped with inductive wireless charging complete with automatic micropayments enabled through the blockchain. Instead of a human-sized car, this session features a demo-version of a possible implementation of the complete stack, from real-life remote-controlled car and a qi wireless charging miniature parking space, a distributed blockchain-enabled payment gateway, and a client-side UI in a webbrowser. We'll dive deep into the technology and attendees will have an opportunity to link and download the code for themselves with the open-source project.

Ari Lerner, Sr. Consultant, AppDev @awscloud

5:25pm - 6:15pm

Rendering Large Models in the Browser in Real Time

Viewing extremely large 2D and 3D models in the browser in real time is a difficult problem because of limited client-side computational resources, limited bandwidth, and the challenges of using JavaScript for high-performance computing. By introducing many heavily optimized techniques and strategies, Autodesk Forge Viewer is able to address these difficulties and render millions of meshes with gigabytes of memory at interactive rates.  

In this session, we will explore in detail some of the most interesting of these techniques, including progressive rendering to reduce time to first pixel, geometry consolidation to reduce draw overhead, the use of flat arrays instead of objects to reduce memory-allocation and copying overhead, data alignment for fast memory access, the use of a cheaper non-photorealistic graphics style for certain effects, and CPU profiling to identify further optimization opportunities.  

Real-time rendering of large models is a complex problem with many interesting facets. We have been developing Forge Viewer for five years and believe that we have found many interesting solutions from which the community can benefit.

Shwetha Nagaraja, Software Engineer @Autodesk
Federico Rocha, Senior Software Engineer @Autodesk

2019 Tracks

Monday, 24 June

Tuesday, 25 June

Wednesday, 26 June