JSFoo 2019

On component architecture, front-end engineering and Developer Experience (DX)

Jira Frontend architecture (r)evolution: a story of mistakes, revelations and human nature

Submitted by Nadia Makarevich (@nadiam) via Zainab Bawa (@zainabbawa) on Sep 9, 2019

Section: Full talk (40 mins) Technical level: Intermediate Status: Confirmed & scheduled

Abstract

When jira-frontend repository was born (less than 3 years ago!) Redux was basically a standard for the frontend state management, everyone used it. Jira even built its own architectural guidelines around it and how to build scalable apps with it. And just two and a half years later: drama! Jira and Redux are breaking up, new state management solution involved in it somehow, and the whole Jira frontend architecture is upside down and completely different. Or is it?…

Learn about current Jira Cloud frontend architecture, what is the recommended way to write scalable code in jira-frontend now, what was the problem with Redux and why we abandoned it, and how our architecture guidelines look like today.

Outline

This talk will cover:

  1. A bit of history of frontend in Jira
  2. How architecture of frontend looked like at the beginning
  3. How it changed in the following years and why
  4. How Jira’s frontend architecture looks like today and why

Speaker bio

Nadia is a senior developer, tech lead and wanna-be architect from Atlassian. She works in Jira Frontend Platform team, the team that is responsible for the overall architecture of Jira’s frontend, CI/CD pipeline, and building tools and processes for scaling Jira’s frontend development. She is passionate about frontend, architecture and scale, and loves challenges and solving problems that involve all three of them.

In her free time she is wandering around Sydney with a digital camera and pretends to be a pro photographer, learns German for fun, and tries to gather some courage to try surfing this year (which is a bit embarrassing after living in Australia for 3.5 years).

Links

Slides

https://drive.google.com/file/d/1gXF3WD28SjlTEZBagvZX828DNbytDp8P/view

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('You need to be a participant to comment.') }}

{{ formTitle }}
{{ gettext('Post a comment...') }}
{{ gettext('New comment') }}

{{ errorMsg }}