• Building VoltDB: A High-Performance Distributed Database in Java

    Thursday November, 10, 2016 06:00 PM Constant Contact Reservoir Place 1601 Trapelo Road Waltham MA 021451

    This talk will start with some of the initial research that led to VoltDB, and walk through the past 8-9 years of engineering challenges and decisions. One of the earliest decisions was choosing to build most of the system in Java; I'll explain why and what the pros and cons have been. The first public release of VoltDB was really radical in a number of ways. I’ll cover which ways it’s become more conventional, and what’s still "different" about it. Specific topics covered will include maintaining a low latency profile in the face of garbage collection, leveraging JNI and native code where appropriate, and running user procedure code safely in our process.

  • Fitbit - The Big Picture

    Thursday October, 13, 2016 06:00 PM Constant Contact Reservoir Place 1601 Trapelo Road Waltham MA 021451

    This meeting is made up of five overview talks which work together to share a big-picture sense of the major development processes at Fitbit. First, we'll start with a bit of history, then continue with Mesos and Aurora, deployment, microservices, certificate management, and some Agile team design. Quite a lot of goodness for one evening!


    Fitbit's architecture journey, by Kyle Smith

    Over the last 9 years, Fitbit has grown from a two-person startup into a multi-billion-dollar company with 500+ developers. Along the way our small Java/Spring/MVC web app has grown into a large, monolithic application. As many other growing companies have found, such an application can make it difficult to rapidly innovate. In this presentation, we're going to talk about Fitbit's ongoing journey from monolith to microservices and how we plan to re-energize our developers with modern technologies and practices.


    Mesos, Aurora and their role in the future of application deploymentsby Kory Brown

    In this talk, we’ll go through a brief history of how Operations has traditionally handled application deployments ending with the inclusion of Mesos. After we’ve gotten a feel for the landscape, we’ll go into how Mesos has changed this process, and what the future of datacenter-level computing looks like.


    Deploying Microservices At Fitbit, by Sean Reque

    At Fitbit we want smaller teams of developers to be able to easily deploy, monitor, and take ownership of their Java services without feeling burdened by the need to create and maintain their own operational infrastructure and tooling. In this talk, we discuss the efforts we have taken to make total service ownership as easy as possible.


    Create your own certificate authority for developmentby Kevin Jamieson

    With the increasing calls for “SSL Everywhere!”, creating your own Certificate Authority is a great way to understand both the mechanisms of SSL/TLS and to allow for rapid application development. We’ll be going over basics of SSL/TLS, using OpenSSL to create a CA, creating server and client certificates, and some brief history of this entire burning dumpster of functionality.


    The role of testing specialists on agile teams, by Steve Berczuk

    Automated testing is an essential part of agile software development. While some knowledge of testing is required, testing is also a specialized skill. Most agile teams write good unit tests but integration tests and the build & deployment infrastructure that enable it often require help. This talk will discuss how a Software Test Engineering team can improve the quality of testing practices while still being consistent with the goals of a self-sufficient, cross-functional agile team.

  • What a Character

    Thursday September, 08, 2016 06:00 PM Constant Contact Reservoir Place 1601 Trapelo Road Waltham MA 021451

    This presentation uncovers the hidden power of Java’s Unicode support​ and highlights what programmers need to know about the edge cases of character and string support. Raise your level of understanding this too-often-ignored topic in order to write better code in a “flatter” world and allow your applications to be worldwide hits!

    Slides and sample code can be found at https://github.com/sualeh/What-a-Character

  • Reactive Programming: Creating Highly Responsive Applications

    Thursday August, 18, 2016 06:00 PM Constant Contact Reservoir Place 1601 Trapelo Road Waltham MA 021451

    Reactive Programming in gaining a lot of attention recently, but what is it? It is a culmination of a lot of good ideas developed over the years, but brought together by the forces of recent developments, both in terms of software and hardware (multicores, mobile devices). Developing an application fast is easy, but developing applications that are responsive and resilient is not. In this presentation,​ we will quickly go over what reactive programming is and what a reactive application is, and then dive into code level details of how to actually create them.

  • Geb to Grid : Geb+Spock to a Selenium Grid on Docker: Build it and Use it.

    Thursday June, 09, 2016 06:00 PM Constant Contact Reservoir Place 1601 Trapelo Road Waltham MA 021451

    Test Automation has been getting easier and easier with each technological development.  Thanks to the WebDriver interface, a single test can be built to run against different browsers.  The Selenium project uses the WebDriver interface to allow coding tests in various languages.  However, developing and maintaining Selenium tests end up becoming a whole development effort unto itself.  Wouldn't it be nice to have a programming language that reads more like English?  Where tests all follow the same pattern?  Where the language aligns well with the requirements that are to be verified?
    This talk will focus on bringing together a few technologies that take you to the next higher level of coding using Domain Specific Languages (DSL); Groovy, Geb, and Spock.  Groovy enables the authoring of DSLs.  Geb is a DSL that makes Selenium coding simpler and allows you to do more with less code.  And Spock is a more logical way of writing tests (actually, they are called Specifications) that read like the requirements being verified.

    What does this mean to you, the developer, the test engineer, the stakeholder?  More efficient testing by having less test code to maintain, a coding interface that enables automating the creation of test stubs, and a closer alignment of the tests to the requirements.

    We will also build a Selenium Grid of various Operating Systems and Browsers using Docker.
    Finally, we will run our Geb+Spock tests against our Selenium Grid.

  • Reactive Architecture Patterns

    Thursday May, 12, 2016 05:00 PM Constant Contact Reservoir Place 1601 Trapelo Road Waltham MA 021451

    Reactive architecture is an architecture style utilizing events combined with message processing to react to various aspects of the system. Applications build in the reactive architecture style remain responsive under load, resilient in the face of failure, and elastic under varying load conditions. All of these aspects are achieved through an event-driven architecture style. In this presentation I will leverage both slides and live coding using only core Java and RabbitMQ to describe and demonstrate many of the patterns used to build reactive systems, including monitoring patterns, supervisor patterns, event routing patterns, eventual consistency patterns, and many more.

  • Java 9 Modular Scalable Development

    Thursday April, 28, 2016 12:00 PM Constant Contact Reservoir Place 1601 Trapelo Road Waltham MA 021451

    Ever wonder when Java will be out of class path hell? Java 9 is for application developers, library developers by enablement of a scalable platform, greater platform integrity and improved performance. In this talk we will explore Project Jigsaw, HTTP 2.0, Lightweight JSON API and many other features.

  • Amazon Web Services - An Overview with Selected Deep Dives

    Thursday January, 14, 2016 05:00 PM Constant Contact Reservoir Place 1601 Trapelo Road Waltham MA 021451

    Amazon Web Services (AWS) is the de-facto leader in the cloud services framework and you owe it to yourself to know at least a little bit about it. AWS consists of over over sixty individual services, each of which is powerful separately but together are truly compelling. The flip of this is that there is a lot to learn. In this talk we'll start with an overview of the range of services and then give more details on a few of the individual services. We'll do some slides, but mostly we'll walk through the actual AWS Console... and possibly even do some live coding!

  • Rewriting a Major API: Swapping out the engine while the car is running

    Thursday November, 12, 2015 03:00 PM Constant Contact Reservoir Place 1601 Trapelo Road Waltham MA 021451

    Once an API is released to production and entrenched in the core business, it can be difficult to modernize over time. In this talk, we'll dive into the techniques and supporting software we developed which allowed us to transition seamlessly from a high-traffic legacy python API to a new one written completely in Java. We'll cover how we created tooling and a visual interface for detecting and exploring output differences, segmented traffic to roll out gradually, and introduced canary deployments to ensure safer deployments.


  • Application Performance Management (APM) - Coping with Complexity of Complex and Large Scale Deployments

    Thursday October, 08, 2015 05:00 PM Constant Contact Reservoir Place 1601 Trapelo Road Waltham MA 021451

    Monitoring and Management of application deployments that use modern frameworks and large scale distributed environments. This presentation focusses on using the AppDynamics APM solution in the full product development lifecycle to diagnose performance and behavioral issues in a large scale event driven environments that also use Map/Reduce tool sets. Heavily distributed environments create a unique set of challenges and opportunities for development team, tools like AppDynamics allow teams to learn how their solutions live and breath in this new world of complexity and quickly identify performance issue down to the code level. We also look at the telemetry of an application and approaches for extracting meaningful data from transaction flow of your applications.