A Look Inside "The Cloud" Team at Appian
Hi everyone! I’m Tom, a Lead Cloud Engineer at Appian. I’ve been at Appian for a little over 6 years, and on the Cloud team for the last 3. Just about everyone has heard about “The Cloud” (even including my technically-challenged parents!), but one question I hear a lot is: “What does the Cloud team actually do?” So I wanted to share a little bit about what life on the Appian Cloud team is like, and why there’s no place I’d rather be.
So what does the Appian Cloud team actually do?
At Appian, the Cloud team is responsible for building and maintaining the cloud infrastructure for our Appian Platform as a Service offering. If your eyes started to glaze over there with the buzz-words, let me break it down. The Appian software platform allows our customers to rapidly build and run their own applications. For customers in Appian Cloud, we provide that platform as a service. This means the customer can just log in to the platform and start building their applications. We handle everything on the backend — from provisioning servers to providing features such as VPN connections from a customer’s environments in Appian Cloud to their self-managed networks. Because we have hundreds of customers and thousands of servers running in Appian Cloud, everything required to manage the cloud infrastructure must be automated with software (and besides, we are software engineers after all!).
While some software development roles have a narrow focus, the role of a Cloud engineer is broad. Depending on the project you’re working on, work on our team might range from creating customer-facing systems to allowing them to configure and monitor their environments, to enhancing the automated processes that start and stop servers, to optimizing how we use resources to make our operation more cost effective, to gathering data and analyzing the performance overhead of different protocols for encrypting network traffic between internal servers, and everything in between. This means our Cloud engineers gain a wide breadth of knowledge right from the start of their careers.
In-depth learning to solve real problems
For me, this is one of the best things about Appian Cloud: the opportunity to learn about and use a wide range of technologies. And not just a high-level understanding of different technologies either — we go for breadth and depth! In my very first project with the Cloud team, I was tasked with creating a script to monitor the heap usage metrics of a Java process that runs on our servers. This heap usage monitor needed to detect if the process had become unresponsive due to being stuck in a garbage collection loop. If an issue was detected, the monitor should automatically recover the process. In order to do this, I was supported to research JVM internals and garbage collection behaviors in depth to really understand the root cause of the problem, and then design and implement the solution.
Before we had this heap usage monitor, if a customer environment got stuck in a garbage collection loop, then the customer would need to create a ticket with our Support team, and an engineer would need to manually restart the Java process. After the heap usage monitor went live, it felt pretty cool not just to remove the need for our engineers to do manual work, but in some cases the monitor was able to resolve the issue before the customer noticed a problem!
Project ownership and making an impact
This brings me to the next great thing about the Cloud team: ownership of your projects and the opportunity to make an impact right from the start. This is not your average software engineering role where junior engineers will be assigned tickets and write code to match some existing specifications. Instead, engineers on the Cloud team own their projects end-to-end, either individually or sometimes with one or two colleagues. Less experienced engineers are often supported by a more senior engineer who acts as a mentor, but even from the start, junior engineers have the same opportunity to take ownership of their projects. Taking ownership of a project includes everything from meeting with stakeholders and gathering requirements, agreeing on the scope, researching and designing the solution, implementing and testing the solution, and deploying to production. This means we are not just focused purely on implementation details, but we need to be aware of the big picture of the problem we are solving.
In the Java heap usage monitoring project I mentioned above, it was very rewarding as a new engineer on the team to be able to deliver a feature that made a tangible impact for our customers. A lot of engineering roles say “engineers on our team make a real impact”, but we don’t just say it — we encourage everyone on the team to use data to measure the impact of their projects! A few weeks after releasing the feature, we gathered data on the script performance and we were able to see that the heap usage monitor reduced downtime due to this issue by 80%. How’s that for making an impact?
My personal journey on the Cloud Team
Over the last 3 years on the Cloud team, in addition to the Java heap usage monitoring feature, I’ve been able to work on projects including allowing our customers’ data to be securely backed up to a secondary geographical region, the ability to patch a system running a highly available database without downtime, an automated system to allow our product engineering team to test new releases on copies of real customer workloads, and an overhaul of the processes managing some of our core infrastructure to allow us to more easily create production-like environments for testing, just to name a few.
Working on the Appian Cloud team has given me the opportunity to tackle a wide range of interesting projects. I have found it very rewarding to own those projects end-to-end and be able to see the real impact I could make, and I’m looking forward to the new and exciting challenges we will work on in the future. If these sound like the kind of challenges you’d be interested to tackle as well, you’ll be happy to hear that we are hiring!