Tired of the usual web technology conference scene? Want a more inclusive experience that lets you get to know your fellow attendees and make connections? Well, CoderCruise was designed to be just this. It's a polyglot developer conference on a cruise ship! This year we will be taking a 5-day, 4-night cruise out of Port Canaveral, FL that includes stops at Princess Cays and Nassau.

Sunday 18th August 2019

19:00
2
Learn to Cruise Like a Pro
Talk by Heather White, Eli White (1 hour)

Join us for a discussion about what to expect on our cruise. We will talk about everything from the port boarding experience, getting around the ship, cost-cutting tips while onboard, to the disembarkation process at the end of the cruise. Bring your questions and our team of expert cruisers will help you answer them.

Monday 19th August 2019

17:00
2
Opening Reception (1 hour)

Join us for the ‘Welcome Aboard CoderCruise 2019’ reception and opening remarks from your hosts Eli and Heather White of One for All Events and our presenting sponsor RingCentral. Adult and non-alcoholic drinks will be provided.

Tuesday 20th August 2019

08:30 Effective E2E Testing Using Cypress
Talk by Gleb Bahmutov (45 minutes)

Unit testing is hard and time-consuming; and worse - the users and the customers do not care! They only want the features working in the production system, everything else is development overhead. If this is the case, how do we improve web application quality? How do we catch the bugs early? How can we test the deployed system effectively? And finally, how do we get rid of Selenium? This presentation tries to answer many of these questions in a web framework agnostic way. Testing JavaScript apps is tough. What if I showed you a better way? Cypress is a free and open source test runner geared towards developers. It runs directly next to your code giving you incredible power. In a short time, you will be testing any app with full confidence and dare I say - pleasure.

1
Call... Text... Video Me Maybe?
Talk by Mike Stowe (45 minutes)

Have you ever wondered how you could add voice, telephone, SMS, MMS, messaging, video, meeting, or fax (yes - I said fax) capabilities to your web app? Learn how easy it is to build in all of these with HTTP based APIs and take your application beyond the browser with RingCentral.

09:30
0
Intro to Progressive Web Apps
Talk by Chris Lorenzo (45 minutes)

What’s a progressive web app (PWA)? Should you turn your site into a PWA? Does it replace the need for a Native Web App? Do PWAs work offline? This session will provide answers to these questions and show you how to create a reliable, fast and engaging PWA. We’ll work through enabling a web app for ‘Add to Home Screen’ support by creating a web app manifest and service worker. Next, we’ll leverage the service worker to optimize loading of images for different devices and network speeds. We’ll wrap up with pushing a web notification to our new PWA.

Advanced RingCentral API Use Cases
Talk by Byrne Reese (45 minutes)

Get a tour of some of RingCentral’s most advanced integrations: What do they do? Who built them? How are they architected and what APIs do they call upon? We answer these questions to inspire developers about the possibilities of a unified communication platform, and to offer insight on how they were built so that customers might begin to understand how they might go about building solutions themselves.

10:30
0
Load Testing the Hard Way with JMeter and DigitalOcean
Talk by Micah Silverman (45 minutes)

Sure, Dockerizing JMeter in server mode for use in Digital Ocean's cloud service would be super easy. But, that's no way to learn a DevOps API! In this talk, I walk through an application written using Spring Boot that executes 99,000,000 requests in about 40 minutes across 100 machines. A friend and colleague runs a very popular API service called ipify.org. At times, it's handled 2.5 million requests per second. It simply returns your IP address as the Internet sees it. This friend is moving his API service from Heroku to Digital Ocean (often referred to as DO). I thought it'd be a fun exercise to load test his new infrastructure and learn the Digital Ocean API in the process. At under $0.01 / hour / small virtual machine, DO itself seemed like the perfect place to do this load testing. How much traffic could I generate across, say, 100 of these small instances? This thought naturally led to JMeter. Not only does JMeter allow you to run complex HTTP interaction scripts, it's built for distributed processing. You fire up a bunch of server machines to do the heavy lifting. A single client machine distributes the same test script to each of the server machines. As each server machine executes the test script, the client gathers up the test results into a single raw results file. Spoiler alert: I was able to run a distributed test with 19,800 concurrent requests in under an hour that generated a total of 99,000,000 requests to ipify.org. I'm a big fan of Zed Shaw's The Hard Way series of courses. The idea is that there's value in deep, slow learning of a given topic. Early on in working with the DO API it became clear that the easiest way to accomplish my goal would be to use Docker containers for my JMeter servers. That would not give me a lot of experience with the DO API, though. Too easy! So, instead, I wrote a program using Spring Boot that interacts directly with the API.

0
The Future of Communications
Talk by Mike Stowe (45 minutes)

The communications space is changing - rapidly with changes from the FCC and carriers including crackdowns on robocalls, automated messages, and more having a huge impact on companies and applications relying on voice, SMS, and other technologies. Join us as we look at how the industry is changing, and how to make sure you're communicating effectively (whether P2P or A2P) and efficiently with your customers.

Wednesday 21st August 2019

15:00
0
Don't Just Be a Developer...
Talk by Mike Stowe (45 minutes)

Being a developer doesn't mean just clocking in 9-5 (ok who are we kidding) and writing code. It means reimagining the way we interact, work, and play every single day. It means you have the power to greatly impact those around you - through community, through innovation, and through collaboration. Join us as we look at how you can be more than just a Developer... You can be a Game Changer.

16:00
0
From Caesar Cipher To Quantum Cryptography
Talk by Joel Lord (45 minutes)

Humans of all times have used codes and ciphers. Some of the greatest wars in history have been won thanks to good encryption, or lost due to great cryptographers. Even if we don’t think about it, encryption and cryptography are a big part of our lives, now that https is the defacto standard for the web. While most modern developers want to ensure that their data is secured, most of them don’t understand how the data is encrypted or how cryptography works. During this talk, the attendees will understand where ciphers come from by going through a journey in the history of cryptography. With examples from the Caesar cipher all the way to quantum cryptography, the speaker will explain in simple terms how cryptography evolved into what it is today and how it should be used to secure user data.

1
Game Changers
Talk by Tanja Hoefler (45 minutes)

Join us for product announcements, launches, games, and awesome prizes including RingCentral swag, electronics, conference passes, software, and more!

17:00
0
Creating Community: Building a Brand Advocacy Program
Talk by Tessa Kriesel (45 minutes)

Often times developers want to find peers like themselves. We see this in our day-to-day by searching stack overflow or google for solutions to our unsolved problems. Instead of stack overflow providing the answers for your users, why not build your own community and provide the resources your users need to be successful. In this session, I will talk about why it’s important to provide your users with a place to ask & answer questions and to develop a sense of community & ownership around your product.

1
Harnessing the Power of Unstructured Data with Applied Machine Learning
Talk by Paco Vu (45 minutes)

There is no doubt that pulling actionable insights from big data and analytics offers huge benefits for businesses. What it takes a company to use AI-based analytics to improve user experiences or to make better business decisions. Join this session to explore your business opportunities with RingCentral.

Thursday 22nd August 2019

08:30 From Building Molecules to Compiling Code: Breaking Into the Software Industry as a Different Type of Nerd.
Talk by Michelle Fernandez Bieber (45 minutes)

What can you do when you finish your Ph.D. in chemistry and the career path ahead of you suddenly no longer appears that exciting? Well, I looked back at what I used to enjoy, and at my actual, core skills. And I changed everything around to become a software developer. I will talk about why and how. My past life was all about science: I participated in international chemistry olympiads, studied chemistry at university, and did a Ph.D. and postdoc in organic synthesis. A significant number of years in, I’ve changed track dramatically and decided to become a software developer. This talk is about the why, and most importantly the how of my exciting journey into software development, and about my personal experience so far with the tech scene while rebooting my career. I will talk about what I learned along the way, and present some methods for successfully driving change in your personal and professional life, no matter how small or big. I will talk about the technologies and methodologies I focused on, and how they helped me to overcome my fears starting out in the new industry and to feel confident about my skills as a software developer.

2
A Modern Architectural Review of Text-Based Adventure Games
Talk by Kevin Griffin (45 minutes)

Let's talk about classic text-adventure games from a modern standpoint? How would you develop a game like Zork with "modern" tools? You will likely be eaten by a grue. Before the days of World of Warcraft, Fortnight, and Minecraft, computer-based entertainment relied solely on the constructs of text. Text-based adventure games such as Adventure, Zork, and The Hitchhikers Guide to the Galaxy defined a genre that allowed players to explore immersive interactive environments. Many of the great games on the market today owe their existence to these marvels of computer engineering. Adventure games, underneath their ASCII facades, were faced with several unique computer science-style problems. Text parsing, managing room states, inventories, events, and more. In this session, you will be taken on a trip in the wayback machine to discuss these classic games. You'll see modern approaches to solving some of these complex problems that definitely would not have scaled on early computers.

09:30
0
OAuth 2.0 and OpenID Connect (In Plain English)
Talk by Micah Silverman (45 minutes)

You've probably at least heard of the OAuth and OpenID Connect standards. It's challenging to find a good overview of how they work. In this talk, Micah digs into these protocols in simple English. If you've ever tried to search for information on OAuth and/or OpenID Connect, you've probably encountered deep dive code examples or references to the specifications. The specifications are great if you're building OAuth from scratch or suffer from insomnia. Many examples focus on just code, rather than concepts. These types of resources are useful for understanding the concepts and historical backdrop for why OAuth and OIDC exist. In this talk, we start with the foundations of federated and delegated authentication and authorization, work our way through concepts and foundations for OAuth and OIDC and end with some practical demonstrations of the standards in action.

The Future of the Web Is Low Tech
Talk by Eric Mann (45 minutes)

This session will cover use cases, user groups, and a few proposed techniques for making both content and publishing tools available to those without high-speed Internet, 3G/4G connectivity, or traditional desktop publishing tools. It will also delve into some of the emerging technologies that make content more accessible to those with limited access (and the controversy surrounding them). Attendees will achieve a deeper understanding of potential, unreached user demographics and the tools/techniques they can use to reach these groups.

10:30 Components - more than a shiny frenzy
Talk by Kenigbolo Meya Stephen (45 minutes)

More often than not developers fall into the trap of wanting to use some shiny trend heard in the IT world and that is no different with web components. Do you really understand the design decisions behind the concept of web components? In this talk, we'll take a deep dive into what it is all about. In the last few years, the term web components have become a mainstay in frontend development and web development at large. This popularity, as usual, tends to come with a huge adoption in the industry albeit without people actually understanding the core concepts behind this new frenzy they've encountered. This isn't limited to juniors alone. The goal of this talk is to give a deep dive into the background behind components, where it came from, how it has evolved and possibly what we might see in the future.

0
Outrun the ?! Performance Optimizations for Progressive Web Apps
Talk by Chris Lorenzo (45 minutes)

Struggling to get your website to load in less than 5 seconds on a mobile phone? Switching pages are a little sluggish? You’re not alone! At Comcast we’ve built many responsive sites and work hard at optimizing for performance. Most web developers can build a responsive site, but fail to meet performance requirements for mobile. Using the latest PRPL pattern and Progressive Web API’s, you can provide a compelling alternative to native apps, as long as performance remains your top feature. This talk will cover the architecture for Xfinity xFi, an enterprise PWA for Comcast, built with Google Polymer. We’ll then dive into the Chrome performance tools to optimize xFi loading time down by more than half. You’ll walk away knowing what it takes to create a successful PWA and how to find slowdowns in your app startup.

12:30
1
“Tech hiring is broken” is broken
Talk by Nicole Tibaldi (45 minutes)

Sure, “tech hiring is broken,” but what’s broken, exactly, and how can we fix it? We’ll examine how to best evaluate technical skills, while also addressing topics we don’t discuss often enough, like how to hire diverse candidates and what we should really explore when looking for “culture fit.” Google the phrase “Tech hiring is broken” and you’ll find roughly 21 million results. You’ll walk away from those articles with more questions than answers. Does whiteboarding really evaluate a candidate’s practical skills? How do you respect a candidate’s time? How do you avoid being exclusionary to minority groups? How do you hire junior candidates? How do you really hire for culture fit? I’ve spent significant time shaping the interview process at the companies I’ve worked for, and I have learned some valuable lessons, You’ll learn about crafting an inclusive hiring process, efficiently evaluating technical skills, patterns in candidate submissions, and how your code is a reflection of culture.

1
Hacking JWTs
Talk by Joel Lord (45 minutes)

So you’ve finally secured your APIs. And it uses JWT because everyone else does. But is it secure? JWTs are the new great thing that everyone is talking about, but you need to use them correctly. During this talk, we will see how we can use various attacks to hack into OAuth systems that use JWTs as a token mechanism. From token validation to brute forcing HS256, by seeing the attackers’ point of view the attendees will learn how to better defend themselves and make more secure servers.

13:30
0
The Future Is Fast - Dynamic Apps, Static Files, Unreal Performance
Talk by Kurtis Kemple (45 minutes)

When we have to deliver a rich app experience AND killer performance, what can we do? Servers are expensive, slow, and hard to scale. Static sites are easy to deploy and maintain, but are they flexible enough? Over 50% of people will abandon a mobile site if it takes more than 3 seconds to load. Unless you’re willing to give up half of your potential customers, performance is no longer optional on the modern web. Fortunately, there are a lot of tools available to help you build screaming fast websites. Unfortunately, there’s a frighteningly large number of performance considerations, and many of them are really easy to get wrong. In this talk, you’ll learn actionable, battle-tested strategies for building high-performance websites without sacrificing any of the functionality or flexibility you need to deliver an excellent experience to your users, including how to: Improve critical performance measures like time-to-first-byte and time-to-interactive Decrease the amount of work the browser needs to do to render your site Implement the PRPL pattern for screaming fast load times Further improve the experience for returning visitors with Progressive Web App techniques And much more In addition to learning about how these techniques work, you’ll also learn how to leverage existing tools to instantly add the collected performance knowledge of the open source community to your apps for free — without needing to become a performance expert yourself.

1
Guide to your own artificial intelligence application in 3 easy steps
Talk by Norah Klintberg Sakal (45 minutes)

What do you think of when you hear “artificial intelligence”? Perhaps self-driving cars, autonomous robots, and Siri, Alexa or Google Home? But it doesn’t have to be that complex. You can build a powerful image classification model within a topic that inspires and interests you - with 3 easy steps. How difficult is it to build your own intelligent application?  First, find a topic that interests you; it can be something that inspires you, excites you or a super simple day-to-day problem you’re facing. Which of your skills are matching your interests and other topics that excite you? Use that skill set to the next step, which is creating your own data. My day-to-day repetitive problem was the daily makeup routine; it takes time and its quite uninspiring but when you finally decide to try something new - you literally get over 30 million results when search for “makeup tutorial” on Youtube and beauty being a $400 billion industry indicates that makeup plays a significant part of people’s lives. How do you even know what makeup style will look as good on you as it does on all the YouTubers? Therefore I built my very first machine learning algorithm which tells you which eye shape you have and suggests makeup styles matching your particular eye shape to enhances your features. You just snap a photo of your eyes in the app, and the algorithm does the rest; telling you which eye shape you have and what makeup style that suits your particular eye shape. I build this app with 3 easy steps, and I’m excited to show how you can build yourself an own powerful image classification model, with your own data, within a topic that inspires and interests you. It might sound difficult, but I can’t wait to show you how few lines of Python you need to build the whole app. What repetitive and categorizing tasks are you regularly facing? Bring your interests, passion and everyday problems, and we’ll explore a more widespread adoption of artificial intelligence solutions.

14:30 Journey from procedural to reactive JavaScript with stops
Talk by Gleb Bahmutov (45 minutes)

Understand the differences between imperative, object-oriented, functional, reactive and other styles of programming JavaScript can mimic. Each style brings more power and elegance to your code, and I will show how to adopt the new paradigm without losing your mind in complexity. JavaScript is an interesting language. It can mimic almost any style you want: procedural, object-oriented, functional, etc. In this presentation, I will take a simple problem and will solve it using different approaches. With each step, we will see the power of each approach to take the complexity away, while still being the JavaScript we all love to hate. The following topics will be shown: procedural (imperative) style object-oriented functional point-free lazy evaluation immutable data async processing using promises async processing using event emitters advanced topics: transducers and streams reactive programming using event streams Any team looking to improve its code should attend this presentation. Making a single leap from an object-oriented approach to reactive programming is too difficult, but you can make it step by step.

0
Open Sourcing Mental Health
Talk by Joe Ferguson (45 minutes)

The first PHP conference I ever went to changed my life. I saw Ed Finkler talking about his struggles with mental health issues. I related so well with everything he said and was shocked to find out not everyone feels this way. Come learn about Open Sourcing Mental Illness, a nonprofit built on a movement of changing how we talk about mental health in the tech community. We’ll talk about survey results from multiple years of OSMI’s Mental Health In Tech surveys showing how employees feel about discussing mental health issues with employers and coworkers. We’ll talk about resources, where and how to find help. The most important thing is to know you’re not alone.

15:30
1
Mentorship Matters
Keynote by Josh Holmes (45 minutes)

In this, ever challenging world, having a strong set of mentors is key to your success. Building on the experiences and knowledge of others is the only way to even catch up, much less get ahead. And you need to think beyond career management and think about technical, personal growth, growing your network and all sorts of dimensions as you are thinking about mentors. Secondly, mentoring someone else can be the most rewarding experience in your life. When should you take on mentees? What are the questions that you need to be asking them? How much of your time should you give up? And so on… In this talk, we’ll dive into why you need mentors, how to select mentors, how to approach them and how to work with them with case studies from real life. Then we’ll dive into the other side of the coin and how you should work with others when approached to be a mentor.