Browse How we build
Filters
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 […]
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 […]
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 […]
How we built our cloud migration strategy for Confluence
Our journey toward a better migration path for customers.
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.
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?
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.
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.
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.
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 […]
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 […]
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 […]
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. […]
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. […]
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 […]
