Monday, February 7, 2022
Ever thought about building an app store for your own platform? With the evolution of no code automation tools, having an external plugin system might mean endless possibilities and usage with just 1 click directly within the platform you've created yourself.
In this talk, we'll the covering the story of how Rocket.Chat built it's own open source Apps Engine on top of the NodeJS architecture, with the help of the Node.js VM module - a module that can do wonders in creating an isolated space or a virtual machine for external apps to run within your own server, giving you a way to have external plugins interact with your platform.
One of the unique advantages of the open source Rocket.Chat platform is the ability to self-host it in an air-gapped environment. This allows our users to really own their data by keeping it safe inside their own infrastructure. This premise could not be hindered by our framework, though; we wanted all our workspaces to have access to Rocket.Chat Apps without needing to leave the comfort of their intranet. This prompted us to follow the rather "uncommon" path of having those apps running inside a Rocket.Chat server.
In this talk we'll be covering a masterclass on Node.js VM module alongside our experiences, learnings, achievements and failures around it.
Eleventy is a Node-based static site generator that is extremely flexible. In this talk, I'll introduce the project, go over it's major features, and talk about how to use it to build static sites that incorporate dynamic data.
Do you have that one page in your Angular app that loads veeery slow?
Or the one page with the gigantic unusable grid?
Perhaps you'd like to know how to separate your js bundles into smaller chunks?
If this is you come and let's talk about optimizing Angular apps. We'll be using a real-world app (Conduit)[https://demo.realworld.io/#/] and optimize together :)
Tuesday, February 8, 2022
“The smarter an application is, the dumber its code should be.”
Have you ever tried to add a minor feature to your application only to discover that you’ll have to re-write large blocks of code first? Or maybe you’ve spent hours deciphering hundreds, or perhaps thousands, of lines of existing code just to find out a task only required two lines of additional code. If you’re like most developers, you’ve wasted countless, frustrating hours wading through immensely complicated code trying to force it to do things it wasn’t built for.
In this presentation, we’ll discuss 5 principles to help you create stupidly-simple applications that are maintainable, extendable, and bug-resistant. If your code is already suffering from “genius syndrome”, we’ll also be discussing strategies for refactoring existing code to avoid the infamous “grand rewrite.”
Implementing a search experience for a single database of content can be straightforward. However, many companies operate several distinct websites that each feature important content for their customers. For example, your marketing site, product documentation library, developer hub, and community portal may all use separate content management systems, possibly managed by different teams.
If each site has its own isolated search experience, then the information from each is siloed. As a result, your customers may not find what they're looking for when they visit one of your web properties. Or, your users may find a helpful article, but they may not be exposed to some of your other content that's relevant to their query. If you create a combined search experience that incorporates the content from each of your sites, you can address both of these problems.
This talk presents a solution for a federated search experience. The federated search will serve a content library that spans disparate content types and databases. This issue was tackled by Linode during a redevelopment of the Linode Docs website (https://www.linode.com/docs) in 2020. The presented solution is powered by Algolia. The talk will outline the technical architecture for our Algolia search indices, how they are queried, and how they are kept up-to-date with the content present in each of our web properties.
Finally, once you have implemented a federated search experience, the search backend can also be used to power interesting non-search navigation for your sites. For example, the Linode Docs site features a tree navigation that includes all of the content that we offer. The talk will explore how this was accomplished.
Magic is more than just a plug-and-play passwordless auth that enables a delightful onboarding experience for end-users.
Instead of usernames and passwords, Magic uses blockchain-based public and private keys to authenticate users under the hood. A decentralized identifier is signed by the private key to generate a valid authentication token that can be used to verify user identity.
Traditionally, usernames are publicly recognizable identifiers that help pinpoint a user, whereas passwords are secrets that were created by the user and are supposed to be something only they know.
You can think of public and private keys as materially improved versions of usernames and passwords. The public key is the identifier and the private key is the secret. Instead of being created by users and prone to human error (e.g. weak/reused passwords), the key pair is generated via elliptic curve cryptography that has proven itself as the algorithm used to secure immense value sitting on mainstream blockchains like Bitcoin and Ethereum.
Using blockchain key pairs for authentication gives Magic native compatibility with blockchain, supporting over a dozen of blockchains. This enables web3 developers to use Magic SDK to provide user-friendly onboarding experiences to mainstream users and tap into the potential of the rapidly expanding blockchain industry that is growing 56.1% year over year and projected to reach $69.04 billion by 2027.
The key pairs are also privacy-preserving (no personally identifiable information) and exportable. This allows user identity to be portable and owned by users themselves (self-sovereignty). The world is already moving towards this direction with novel solutions from companies like Workday and Microsoft.
As a first step, we are committed to enabling a passwordless future, by providing developers with the easiest way to integrate passwordless login methods into their apps, but having blockchain key-pairs actually connects us to other future-proof infrastructure such as IPFS for decentralized user identity data storage, which will pave the way towards worldwide adoption of decentralized identity.
If you want to see just how seamless both the developer and user experiences are with Magic, or you want to learn how Magic plans to onboard the next billion users into web3, do not sleep on this talk.
As web performance and user experience across both mobile and desktop devices continue to increase in importance, so do progressive web apps (PWAs). PWAs are becoming more popular because they have lots of enhancements that help your application perform better and they make apps accessible even to users with limited internet connection. In this talk, you are going to learn the advantages of using PWAs and how to turn your web application into a PWA.
Wednesday, February 9, 2022
Good user experience requires a well performing frontend application. Code observability on a frontend application—to understand errors and their relevancy, performance of transactions, and Web Vitals to quantify website quality—is complex. By attending this session, you'll learn more about the tools that are available to aggregate and organize relevant frontend data to provide necessary visibility on errors and performance to keep users engaged.
Scaling design is not about throwing more designers at the problem. Scaling design effectively is about operationalizing design, aligning closer with the principals of DevOps. How do we enable product teams to successfully deliver useful and useable products to their customers. This is an evolution that they call DesignOps2.0
Nearly everything a product team deals with impacts UX. Traditional development issues like availability and latency have a significant impact the user’s experience. When viewing the problem through this lens; the entire product team is responsible for the user experience and needs to be accountable for it, not just the UX team.
Erica will discuss the philosophy and end to end methods her team has developed around DesignOps2.0 and where they are heading from here.
• Establishing tools and an environment that empowers product teams to deliver useful and useable products
• Gaining a common understanding with product teams around what impacts the user experience and who is responsible.
• Holding engineering and product teams accountable for delivering a good user experience.