AtlasCamp Sessions

Hundreds of developers team up at AtlasCamp, our developer conference, to enhance their skills, build successful add-ons, and network with the Atlassian developer community.

Watch announcements and replays of sessions from AtlasCamp 2016.

A Tale of Continuous Delivery: From Commit to Production in a Single Click

Once upon a time a developer slaved on his code, tested it locally and fired it off into oblivion (aka the shared disk...) only to forget about it for the next six months until release date!No longer should we be slaves to release dates and schedules, no longer will we need to argue about "But it runs on my machine!" Thanks to automation and continuous delivery we can be free! Free to code on important features, free of having to run tests ourselves, free of keeping all our environments in sync. And best of all: free to improve our products as fast as possible.

Presentation video

From Monolith to Microservices

Ever wonder how Twitter scales to tens of thousands of nodes? Ever wonder how Apple's Siri can process commands with such low-latency? Ever wonder how Companies like Netflix and Yelp efficiently process massive amounts of data? Did you know that Atlassian HipChat is using the same technologies to re-envision how HipChat stores and manages it's message history?

In this talk, you'll learn how to use modern technologies like Docker, Apache Mesos and Cassandra to build a platform to reduce complexity, automate lighting fast deployments and take advantage of load balancing, service discovery, health checks and self-healing apps all while reducing the costs of cloud infrastructure.

We'll share our successes and failures and present a set of "best practices" that anyone can use to not only build a modern, self-sufficient micro-service platform but to also streamline the development process and ease the pain of deploying and managing applications. Whether your building a small-ish connect add-on or a large distributed application, you'll be able to put these learnings to good use immediately.

Presentation video

Finding Bugs Before Writing Code

Testers need to be involved earlier!” is a mantra that keeps coming up over and over when talking about testers on the agile team. But what is their contribution when they get the chance? At Atlassian QA stands for Quality Assistance, which means we assist development deliver quality software at speed.

This presentation is about how I as a QA engineer work with the Bamboo and team product managers, designers, developers and support to avoid creating bugs so that focus can be on creating great software fast instead of fixing bugs. Activities include feature risk workshops, quality-design sparring sessions and story level kickoffs. I am going to talk about timing and opportunities with the different interactions and how we through these avoid rework and create quality software from the start.

Presentation video

Five Release Strategies of Highly Effective Teams

Release early, release often. Highly effective teams are releasing new software all the time, creating a tight feedback loop with how end users are using their software in production. However releasing code is also the riskiest thing teams do on a regular basis.

Presentation video

How to Win with Code Reviews

Some software teams don't integrate code reviews into their software development lifecycle on a regular basis, even though they are an extremely great way to learn, improve code quality and increase the robustness of software. This talk provides guidelines on being better code reviewers and authors so you can make the process less painful and start winning!

Presentation video

How We Built Synchrony, the Engine Behind Collaborative Editing in Confluence

The story from the idea to a highly scalable service deployed straight to a large number of users. I will talk about the technical background and the infrastructure we use to support semi application.

Presentation video

Hybrid Apps with React

We've spent the past year rewriting HipChat's web and desktop apps using React. This talk will run through the current state of the art in building hybrid desktop apps (React, Redux, hot module reloading, ES6, Electron, etc.) and maybe venture into React Native for building mobile apps.

Presentation video

JIRA Seamless Upgrades: Making Devs and Customers Happy in a Single Move

Maintenance windows equally annoy customers and developers. This talk will cover how JIRA cloud moved in six months from an antiquated weekly release maintenance window to a truly agile release cycle in which devs see their commit to release cycle reduced and customers have virtually zero downtime. I will discuss different approaches studied, architectural challenges faced and the achievements made.

Presentation video

Mock Servers - Fake All the Things

It is now common to be working on small independent services that need to talk with numerous other services. This is a problem because when developing your service, you need to have a working environment—but bringing up all your dependencies is often not an option. A solution to this problem is mock servers.

Presentation video

Resilience: Beyond the Chaos

Resilience is vital to the success of any internet service. Nowadays it's more likely that developers will be responsible for the operation of their own services. Like anything new a foundation is a good starting point. Unfortunately many will dive in to implementing technologies without a clear vision. Learning about the qualities of a resilient system can help you focus on making the right decisions at the right time. I will discuss some of the ways we are improving the resilience of our services at Atlassian. Looking at both the human factor and technologies we use. Including some more advanced techniques like Chaos Engineering.

Presentation video

Rise of the Machines

When we talk about automation in software development, we immediately think of automated builds and deployments. We may also be using scripts to help make our daily work easier. But this is really just the beginning of the rise of the machines.

I show you how leading developers in our industry are using open source and commercial tools for automating much more. They've got "robots" for monitoring production servers, updating issues, supporting customers, reviewing code, setting up laptops, doing development reporting, conducting customer feedback -- even automating daily standups. In what instances is it useful to automate? In what cases does it not make sense? Automation prevents us from having to do the same thing twice, helps us to work better together, reduces workflow errors and frees up time to write production code. Plus, as it turns out, spending time on automation is fun! Don't be afraid of robots in software development, embrace them! Even if I save you just half an hour a week, this talk will be a beneficial investment of your time.

Presentation video

Sentient Clusters: Micro-services, Atlassian Products, and the Docker Swarm

Imagine a new kind of cluster. One which takes control of new machines on the fly, deploys all your services in the right order, links related applications together, balances load, restarts and moves containers after failures. A cluster that is – figuratively speaking – becoming self aware.The recent massive improvements in Docker's own orchestration tools bring the feasibility and practicality of setting up a semi-autonomous cluster to a whole new level. Follow us on a practical hands-on tour and learn how you can setup a polyglot group of Micro-services and Atlassian products to run onto a Docker Swarm cluster with ease.

Presentation video

Single Page Apps: Success and the Struggle

If you've been on HackerNews recently, you'll know that single page apps are all the rage and just everybody is doing them... including Confluence, but why? Join us for a deep introduction into the brand new Confluence front-end stack, why we took on this epic quest, how we're doing it and how you can learn from our experiences.

Presentation video

The Golden Rules of Git

Let's face it, everyone can punch some commands into Git and make things go splat. That's the easy part. Understanding *why* and *when* to apply various commands is the hard part of learning to be an effective Git team player. This session will briefly cover the four most important factors that will determine your project's success in working with Git:

Presentation video