Showing results for 
Show  only  | Search instead for 
Did you mean: 
AppDynamics Team (Retired)

Welcome to our second installment of the AppDynamics Community Member Spotlight series.

Both with Jobvite, Joshua Jackson, Director of Engineering, and Bhavik Bhagat, Senior Engineering Manager, have answered our questions about technology, their career paths, and what fuels them.

— Claudia


In this article...


Joshua Jackson and Bhavik BhagatJoshua Jackson and Bhavik Bhagat


A day in the life: Joshua Johnson and Bhavik Bhagat at work

Can you give us a picture of what your days tend to be like? 

Joshua —

Each day is unique: some days are focused on planning and scheduling business needs and the speed at which we can deliver new solutions for our internal engineering teams. Others will be actively debugging issues with the teams, mentoring members across the organization, reviewing pull requests, or working on reviews of architecture designs for new solutions products. 

Bhavik —

My day starts with a standup with the team, which are distributed across three different time zones. Post-standup, the first half of the day is mostly spent on planning activities, cross-team coordination, feature grooming sessions, etc. The second half of the day is spent with the team on various activities such as 1:1s, debugging problems with them, reviewing code, discussing functional requirements or technical designs, and more.


How did you get involved with this work?

Joshua —

Well, going far enough back, Open Source was the cause of my getting into engineering as a profession. I started leveraging it for my own growth and learning, then eventually submitted fixes to projects. This led to becoming a developer for Gentoo Linux, which snowballed into the career that I’ve been fortunate to be in for the past nearly 20 years.


Bhavik —

The passion for computers started early with computer games and animations in the movies. As a curious teenager, I wanted to know how these animations or graphics were made and how I could make them. One of the first things I learned was a graphic design tool called Corel Draw 8, which allowed me to create 2D graphics. 

Though my initial interest in graphics and animations faded, it led to my interest in programming. I started my programming journey by learning C, Visual FoxPro, and eventually Java, which helped me land my first job as a backend developer. Most recently, I’ve worked on Objective-C and Swift. 


What feeds your interest in your work?

Joshua — 

There are a few things that drive my interest and passion for work. Having a variety of daily challenges and needs keeps each day unique and interesting. Mentorship—both received from my leadership and that I provide to others in the organization—certainly informs the joy I find in my work.

I’ve also been fortunate to work for companies that impact people’s lives. In the case of Jobvite, what we do enables folks to find the next opportunity to grow in their profession. It also allows companies to find that perfect candidate to help them grow and enhance their local communities. Those both drive a desire to continue to make that process better for everyone.


Bhavik — 

There are a few things that keep me interested and motivated in the work that I do. First: being able to build things that help our customers (small or large) succeed. 

The second is solving the unique problems and challenges the team faces day in and day out. Both result in learning and growing as an individual, as a team, and as a company. 

The last thing is company culture and values. I have been fortunate to work for companies with great cultures, with values that align with what I believe in.


Using AppDynamics in your work

Joshua — 
AppDynamics is a key component in our ability to ensure the Jobvite solution’s reliability for our customers. It’s the first spot we’ll look to when there’s a customer report of slow performance. We can look at the application tiers as a whole, or get deep down into the customer session-level to see if the issue is specific to them, their location, or other potential causes. 

One of the most interesting use cases was during our migration from MSSQL to Amazon Aurora. We did a huge amount of testing and partnered with AppDynamics to drive a decision-based understanding of the performance. This allowed us to identify particular functions and use cases where things were underperforming. The rollout would have been impacted if we had not had the data to prove where our issues were occurring. 

The other more recent one has been leveraging Rookout, which allows us to create breakpoints within the app that capture object contents in the live running system without interrupting customer workloads. It’s been a huge driver in resolving issues quicker.


Bhavik — 
AppD is the first place we start investigating when our customers report a performance issue. We use AppDynamics as a key tool for continuous monitoring of all our microservices. We have extensive health rules and policies set up to alert our engineering teams whenever any health rule is violated, or when an anomaly is detected, using Anomaly Detection provided by AppD.  

Apart from using it for continuous monitoring and debugging, we use AppD Dashboards very heavily to look for improvement areas. 

For example, a couple of our critical microservices had a 1.5% errors-per-minute ratio during peak hours. We had never noticed this until we created a dashboard to look at the health of our tiers. After actively working on this, we brought the ratio down to be less than 0.1%. Now we have dashboards created for each team, which are projected on TV screens throughout our offices. 


What are your top 2 AppDynamics hot tips?

Joshua —

  1. Leverage automatic heap dump/thread dumping capability triggers when performance reaches a level that shows signs of problems. Those traces are critical for success in identifying intermittent issues.

  2. Create deployment events within AppDynamics to allow you to review behavior changes over time. It’s not always obvious when performance changes. Being able to work through it backwards via data to a specific release, where you can subsequently use VCS tools to identify the root cause, goes a long way to quickly getting to the root cause.


Bhavik —

  1. Create custom dashboards to drive visible improvements in the critical areas of your application
  2. Enable Anomaly Detection. It works well and catches the issues that you are not actively monitoring