Browse How we build
Filters
Caching JQL search in Jira Cloud
Jira Cloud poses some unique database scaling challenges, due to high query complexity causing high database load and slow queries. Queries run against the database are often highly repetitive and on the surface very cachable, but are not currently being cached. Horizontal scaling is the main technique being applied to services within Jira Cloud to […]
Performance in Jira front-end: solving bundle duplicates with Webpack and yarn
This is the third and final blog in our series on our recent work reducing the amount of JavaScript downloaded from the Jira cloud front-end (Read part 1 and part 2). This blog describes the work that was done to create a Webpack plugin to de-duplicate transitive dependencies. We found that this plugin delivers about […]
Performance in Jira front-end: using modern bundles to improve load time
This is the second blog in our three-part series covering some recent work in Jira cloud front-end to reduce the amount of JavaScript that’s downloaded when loading pages. Part 1 focused on the process of discovering and implementing a relatively small performance fix with a significant impact. In this blog, we will discuss the results […]
Performance in Jira front-end: the story of a single line of code
At Atlassian, we are continuously working to improve the performance of Jira Cloud. This is something we’ve mentioned a number of times in the past: backend improvements found through profiling, changing serialization formats, introducing server-side rendering, and improving our React architecture. This is the first in a series of three blogs focusing on the front-end […]
Scaling, rearchitecting, and decomposing Confluence Cloud
This blog covers the journey of Confluence Cloud – the team workspace for collaboration and knowledge sharing used by thousands of companies – and how we aim to take it to the next level, with scale, performance, and resilience as the key motivators. Moving Confluence to a stateless multi-tenant architecture In 2015, Atlassian started a […]
Scaling Bitbucket’s Database
Bitbucket’s usage is growing Two services at the core of Bitbucket are gu-bb and gu-api, responsible for serving the Bitbucket website and our public REST API. These services are built on the Django web framework, serving millions of requests every hour. On average, each of these requests represents over 10 database queries, putting significant load […]
Migrating the Atlassian Identity Platform to AWS
Getting features out the door and cleaning up significant architectural tech debt are not mutually exclusive
Improving performance through better architecture
A deep dive into React Resource Router and its impact on the Jira Cloud experience.
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 […]
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 […]
Best practices for change management in the age of DevOps
Insights and advice from Atlassian software engineering leaders.
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 […]
How to export Kubernetes events for observability and alerting
A hidden gem in Kubernetes might be holding a lot of information.
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 […]
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 […]
