• Scalable and Resilient Microservices

    OpenTable

    This Meetup will be focused on backend development, especially with regards to building scalable and resilient microservices. Schedule: 6:30pm Doors Open 7:00pm Talk by Dmitry Chornyi 7:45pm Talk by Rick Hightower 8:30pm Networking Talks: Dmitry Chornyi: Reliability and Resilience Patterns Explore patterns that will help you make your systems withstand many challenges that a production environment throws at them: latency, timeouts, queuing, resource contention, load spikes, and dependency failures. Learn how we use bulkheads, circuit breakers, load shedding, fallbacks, failure injection testing, and other tools to build reliable and scalable microservices. Dmitry Chornyi is a Principal Software Engineer at OpenTable where he leads a team that is responsible for over 20 production microservices. Rick Hightower: High-Speed Reactive Microservices This session endeavors to explain high-speed reactive microservice architecture, a set of patterns for building services that can readily back mobile and web applications at scale. It uses a scale-up and -out versus a scale-out model to do more with less hardware. A scale-up model uses in-memory operational data, efficient queue handoff, and microbatch streaming, plus async calls to handle more calls on a single node. High-speed microservice architecture endeavors to get back to OOP roots, where data and logic live together in a cohesive, understandable representation of the problem domain, and away from separation of data and logic, because data lives with the service logic that operates on it. Rick Hightower serves as chief technology officer for Mammatus Inc. mainly focusing on working with media companies, startups, and high-volume microservices. Recently Rick wrote a 100 million-userin-memory content preference engine service with custom NoSQL service store (2014) as part of this effort he wrote high speed JSON REST/WebSocket framework for reactive computing model based on Boon and Vert.x (and a disk batcher capable of writing 720 MB per second). Rick also wrote the fastest JSON parser for the JVM circa 2014 and in-memory query engine for indexed collections (2013, 2014). Rick is one of the primary author of QBit a Java microservice lib and Reakt. Rick works a lot with Akka, Kafka, Cassandra and Vert.x.

    11
  • Learning about OpenComponents at OpenTable

    OpenTable

    OpenComponents (OC) is an open-source framework that allows fast-moving teams to easily build and deploy front-end components. It abstracts away complicated infrastructure and leaves developers with very simple, but powerful building blocks that handle scale transparently. OC is a technology created by OpenTable and will be the primary focus of this event. Schedule: 6:30pm Doors Open 7:00pm Nick Balestra: Build it, ship it 7:30pm Charles Chu: Growing with OC by building OT Widgets 7:45pm Kevin Andrews: Code Ownership 8:00pm Michele Bertoli: Painless Testing 8:30pm Networking Talks: Nick Balestra: Build it, ship it Building and serving components across teams and web applications is a challenging task, especially at scale. We’ll see how at OpenTable we enable fast-moving teams to easily build and deploy front-end components using OpenComponents: an open-source, battle tested, framework for painless component delivery. Nick is a Software Engineer. He currently works at OpenTable, writing Node and JavaScript applications at scale. Charles Chu: Growing with OC by building OT Widgets Would you like to make reservations from your favorite restaurant website? Turns out you can! OC empowers us to build and ship independent widgets easier and faster to our customers. In this talk we will share how we build our widgets with OC, including good features and growing pains based on our experiences. Charles is a Software Engineer at OpenTable. He is passionate about Node and JavaScript. Kevin Andrews: Code Ownership We all want to own the code that we work on, but that often poses technical challenges. We'll follow the journey of the OpenTable Photos team as they used OpenComponents to control their own destiny and iterate more quickly. Kevin is a full-stack Software Engineer. He currently works at OpenTable with Clojure, Node, and React to bring gorgeous photos to the restaurant world. Michele Bertoli: Painless Testing Testing UIs has always been a hard job. In the components era, there are new tools available that transform completely the way we approach testing. One of the hottest is Jest, and we'll see how it provides an all-in-one testing solution that saves us time and headache. Michele is a Front End Engineer with a passion for beautiful UIs. He works at Facebook and authored the book React Design Patterns and Best Practices. Learn more about OpenComponents on GitHub (https://github.com/opentable/oc).

    4
  • Current Web Development at OpenTable

    OpenTable

    It's been a while since we've had a meetup and it's time for that to change. We have lined up 4 of our engineers to go through a variety of topics centered around our usage of JavaScript, ES6, Node.js, Docker and UI component libraries. Each talk will be about 15 minutes in length, details are below. Hope you can join us! Agenda: 6:00 PM - Doors open 6:30 PM - Presentations (see details below) 7:30 PM - Q&A 8:00 PM - Doors close Details: The JavaScript Event Loop Thomas Hunter II, Senior Software Engineer I have found that even developers that have used JavaScript for several years do not completely comprehend how the Event Loop works. In this 15 minute session we'll take an in-depth look at the Event Loop and understand where it's great and where it's cumbersome. Hopefully it helps you improve your JavaScript as a result. Using ES6 in Your Code Today Matt Blair, Principal Software Engineer At OpenTable we look for opportunities to use new languages and technologies to improve our products and the user experience. In this 15 minute session we'll cover how OpenTable is using ES6, how to get the latest version of JS into your codebase, and what you get with different approaches. Node.js with Docker - MicroService Architecture Doron Segal, Senior Software Engineer At OpenTable we strive to build small, decoupled services that are rapidly built and deployed. We have been using docker extensively and it's changing how we think about our micro-service architecture. In this 15 minute session we'll demonstrate how to build a Node.js micro-service, dockerize it and link it to a database. Distributing UI Libraries in a Post-Web-Component World Rachael Moore, Senior Software Engineer UI Component libraries are different from CSS Frameworks--and modern libraries, especially those influenced by Web Components, typically rely on some form of package management. In this 15 minute session we'll cover the right package contents for a UI component as well as some tools and tactics OpenTable uses to distribute private packages and smooth application deployments.

    16
  • Open Components & Reactive Chat

    OpenTable

    Hey everybody! Come join us at OpenTable and meet some talented engineers. We'll be sharing our technological solutions utilizing Node.js, Javascript, React.js, Highland.js. We'll start with Max Gurewitz, who will walkthrough writing a chat application using reactive streams. Afterwards we'll hear from Matteo Figus about Open Components, a framework for distributing and developing solutions for the web. Food and drinks will be served :) More Details: Max: Managing state in an event driven client side app can quickly become overwhelmingly complex. Learn to simplify your designs with functional reactive programming. During this talk I’ll walk you through building a chat application with socket.io, highland.js, and react.js. This exercise will provide an introduction to using streams for asynchronous control flow. https://github.com/maxgurewitz/ Matteo: Writing front-end code today is very challenging when you have to be resilient and robust in a big corporation. Working on a website that involves dozens of engineers based in three different continents, I learned that the complexity lies not only within the code itself. Allowing people to develop new features and deploy the code multiple times a day, keeping it up and running, is hard to achieve: we want small teams to be independent and not to interfere each other, in order to be quick and happy, but we also want to optimise cooperation when it is needed. During this talk I’m going to speak about how we tried to approach to components at OpenTable. After breaking our monolithic back-end into smaller parts, we tried to break the front-end into smaller parts too, called micro-sites. Then, following the SOA principles, we tried to elevate components as services, in order to make engineers able to create and consume them via clear and well-defined contracts and interfaces. This allowed us to put in place the infrastructure to optimise testing and to have hundreds of changes live every day without conflicts. The result is OpenComponents, a framework that we recently open-sourced. https://github.com/matteofigus David: David 'DC' Collier is founder of Rikai.co, a startup making educational chat games. He previously lived in japan for 10 years making mobile games. Today I'll demo ComicEnglish which is a chat game for learning languages. Players talk to in-game "bots". We've developed a GUI layer on top of text chat so interactive widgets like choice dialogs, quizzes and other mini-games all appear in the chat stream, showing what a next-gen rich chat UI can be. I'll also show how the chat parser, basic NLP and fallback to human operator for 1:n chats data flow works together (time permitting).

    18