Jira App development is … boring 😅

This is what I constantly heard from fellow developers when I told them that I would be joining codefortynine and start working on Jira apps. And honestly, that’s what I thought as well before my first interview with codefortynine. Now after almost one year with the company, I can say that there is way more going on behind the scenes that I didn’t anticipate and I am pleased with my decision to join the team.

So what does it mean to develop Apps for Jira? 

I was working with Jira for almost all of my entire career and I never realized how many apps were involved during that time. Jira apps are really well integrated and usually not very easy to spot, at least if you didn’t install the app yourself. There are multiple ways to integrate an app from providing custom dashboards, adding custom fields, or (deep) cloning Jira stories. 

This means an app developer will have to write frontend code, in our case we choose the Vue.js framework and write code in TypeScript. And for our frontend heavy apps like Quick Filters that’s the main task when developing new features. On the other hand, some apps require a lot of backend code, because it needs for example a lot of parallelisms or runs for a long time and is therefore not suitable to be run in a browser – if the customer closes the browser or loses connection to the Jira instance, all of the progress will be lost and it requires some heavy lifting to make it recoverable and reliable. Examples of that are our flagship app Deep Clone or Version Sync. With Deep Clone, we clone up to 100.000 stories and this can take multiple days to finish. First, this sounds like quite a lot. Still, if you imagine copying this manually from one instance to another and making sure nothing gets lost or messed up, you might conclude that this is a very decent time and you are happy to go into the weekend and come back on Monday, while Deep Clone does its magic. For that to work reliably and to adhere to Jira’s strict API rate limits – which is the reason why it takes days – our backend is written in Java based on Dropwizard wrapped up in docker containers and deployed in AWS. At this point, you already can grasp that writing Jira apps involves a lot of things from integrating into Jira, writing frontend code in TypeScript, and also tackling the backend in Java. 

Deep Clone for Jira

Advanced cloning of single issues, a bulk of issues or projects. Clone into other Jira projects, issue types, or instances.

Learn more in our documentation

But there is still more to come, our stack is deployed to AWS and uses a wide range of services. The docker images are deployed via Fargate to Elastic Container Services (ECS) and automatically scale for each region based on the current usage. As of now, we deploy our stack to the US and EU regions to be as close as possible to our customers and are planning to add more regions. This means the entire stack setup has to be automated and uses the infrastructure-as-code pattern to make sure everything can be set up consistently and reproducible. CloudWatch is also a big part of our daily work because we capture metrics and logs and make sure through alerts that we are always on top of the game when it comes to problems in our app. If you are interested in learning more about our approach of how to collect and group errors in our logs, you can checkout our slides from the software developer conference “Karlsruher Entwicklertag” that we held in June 2024.

This might look like a boring stack… and you are somewhat correct, our dev team is responsible for the entire stack, and every developer should be able to work on all aspects of that. Hence the stack should be consistent and should not have too many different moving parts. This is also reflected in our development tasks because they are not split into frontend and backend stories – or any other arbitrary criteria –  but describe a feature that adds value to our customers. Therefore every developer has to work on every level of our apps, has to be willing to learn a lot of new things, and doesn’t have to be afraid to ask for help. We are very deliberate in choosing new technologies and try to rather focus on real customer problems and continuously provide new relevant features. Our customers have a lot of interesting and challenging problems that involve dealing with big amounts of data in the frontend and the backend and shuffling that around sensitively and efficiently.

So, coming back to the comments of my colleagues mentioned above, do I think working on Jira apps is boring? My answer is clearly no, we might not be using the newest database or the latest fancy programming language, but I can focus on shipping new features daily and make sure that more than 1.000.000 users around the globe can solve their problems with the help of our apps.

Cookie Consent with Real Cookie Banner