Inside Atlassian

Browse How We Build

Article in How We Build

Migrating the Atlassian Identity Platform to AWS

Getting features out the door and cleaning up significant architectural tech debt are not mutually exclusive

Article in How We Build

Improving performance through better architecture

A deep dive into React Resource Router and its impact on the Jira Cloud experience.

Article in How We Build

Solving distributed consistency with Git: how we built Bitbucket Smart Mirror Farms

Many Bitbucket Server customers have development teams spread across the globe. Over the years, we’ve heard from many of them, asking us if we could speed up Git operations for their remote teams. In 2015, we gave customers this capability with Bitbucket Smart Mirrors. Smart Mirrors are a read-only replica of a primary or upstream […]

Article in How We Build

What does a Product Growth engineer work on?

Atlassian has many different software development teams within our Engineering organization. Some teams focus on products such as Jira, Confluence, or Bitbucket. Many others work on platform-focused capabilities or infrastructure shared between products. In this blog post, we’re going to focus on the Growth team at Atlassian. We’ll explain how the Growth team operates using […]

Article in How We Build

Best practices for change management in the age of DevOps

Insights and advice from Atlassian software engineering leaders.

Article in How We Build

Using Protobuf to make Jira Cloud faster

Atlassian’s mission is to help unleash the potential of every team, and a critical part of that is to create a world-class cloud platform that can support the needs of our largest customers. For Jira, this means supporting massive numbers of Issues in a single Jira site. A significant part of Jira functionality is implemented […]

Article in How We Build

How to export Kubernetes events for observability and alerting

A hidden gem in Kubernetes might be holding a lot of information.

Article in How We Build

Scaling React server-side rendering in Jira Cloud

For the past 18 months, we’ve been iterating on and improving a React server-side rendering service to support the frontend in our cloud-hosted Jira offering. During this time, the service has grown fairly organically from a side-project spiking a proof-of-concept, to a performance-critical service with 24/7 on-call support. This isn’t the story of an ideal […]

Article in How We Build

Automated testing: 5 lessons from Atlassian’s Kubernetes team on testing infrastructure as code

Today, the infrastructure world is moving much faster than ever before. It’s easy to provision hundreds of servers in seconds and have them online and usable within minutes. With all of that power comes the ability to iterate faster – and the potential for more bugs, more incidents, and more stress. You’ve felt the pain […]

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?