Inside Atlassian

Browse How we build

Article in How we build

Using an event-driven architecture to improve Jira Software responsiveness

Imagine a team working remotely or collocated. The team is made up of engineers, architects, designers, and product managers, and they all use Jira Software to collaborate on their day-to-day work. However, every time one of them updates an issue, project, or board, their fellow team members do not see the change instantaneously. Instead they […]

Article in How we build

Java debugging at scale: when rare events become commonplace

As an individual contributor at Atlassian, one aspect of my job is resolving bugs in production. This can be a challenging and enjoyable form of problem solving. I recently helped understand and fix an intermittent problem with Jira Cloud. It was an interesting tale, not just because of the root cause we finally uncovered, but […]

Article in How we build

A look at Trello: adopting GraphQL and Apollo in a legacy application

Trello is currently undergoing a big technological shift on the frontend, and an important part of this shift has been our approach to incrementally adopting GraphQL. We’ve used a client-side GraphQL schema (in a creative way) to quickly unlock the benefits of GraphQL. If you’re considering moving to GraphQL in your product, then this would […]

Article in How we build

How we built our cloud migration strategy for Confluence

Our journey toward a better migration path for customers.

Article in How we build

Our not-so-magic journey scaling low latency, multi-region services on AWS

Engineering stateless, high-availability cloud services comes with juuuuuuust a few challenges. Here’s how we (eventually) slayed the dragon.

Article in How we build

Using spec-first API development for speed and sanity

An implementation-first approach to API development is all well and good… but might spec-first be even better?

Article in How we build

Caching in: performance engineering in Jira Cloud

Go behind the scenes with the Jira team and see how we performance-engineered our way to a zero-affinity cloud architecture that runs at enterprise scale.

Article in How we build

A deep, deep dive into Java debugging

Follow senior architect Robbie Gates all the way down the rabbit hole to the JVM code, and learn a few new debugging tricks to keep up your sleeve.

Article in How we build

I ran a ludicrously complex engineering project (and survived)

Coding? That was the easy bit. Delivering the largest project in Atlassian history was all about staying true to proven engineering principles – plus a few new ones.

Article in How we build

Project Roomba

The underlying storage engine that powers Trello’s data environment was unhealthy and sluggish, so we invested time into fixing it with the hope that our future selves could then focus on the data and the people who need it. So far it’s working (for example, we reduced the overall data size by 62%), but it […]

Article in How we build

Why we chose Kafka for the Trello socket architecture

Trello has been using RabbitMQ for the last three years. Prior to RabbitMQ, we were relying on a Redis Pub-Sub implementation. Recently, due to RabbitMQ’s questionable behavior when network partitions occur, we’ve made the switch over to Kafka. This blog post goes into depth on our RabbitMQ implementation, why we chose Kafka, and the Kafka-based […]

Article in How we build

How to release a buggy app (and live to tell the tale)

Bugs! No matter how many times I decree that my coworkers and I must stop writing bugs, we keep on doing it anyways. Even worse, sometimes those bugs make it into production, where users run into them! The fact of the matter is, you are going to someday release a buggy app. Even with layers of […]

Article in How we build

Think outside the red box

Have you ever returned to work in the morning and found a couple of Trello boards with this lovely cryptic red box? “You have been disconnected from the Trello Server for too long.” – wait, what? Over the Christmas / New Years break we deployed some changes to reduce how frequently this frustrating message appears. […]

Article in How we build

Kotlin at Trello

This post is intended to be a sequel to the Talking Kotlin podcast episode that featured Huyen Tue Dao and me. We recorded it in May 2017. If you haven’t given it a listen, go check it out! A quick recap from the conversation: We started using Kotlin in October of 2016, right around when Kotlin 1.0.4 was announced. […]

Article in How we build

Developing the Unsplash-Trello integration

For the past few months we’ve been working on bringing Unsplash into Trello. Check out Trello’s blog post announcing the launch if you missed it! It was a great experience because Unsplash is really cool and we knew our users would love it (I know WE do ❤️). It was also a great experience because we followed […]