AppDynamics the World Leader in APM and DevOps

AppDynamics Blog

Subscribe to AppDynamics Blog: eMailAlertsEmail Alerts
Get AppDynamics Blog via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn

Related Topics: Careers and Employment Journal

Blog Feed Post

Students to Engineers: A Peak Into Their Summer (Part 2)

The purpose of our internship program at AppDynamics is to facilitate student learning opportunities outside of the classroom, allowing students to apply classroom theories to “real world” situations. Our mentors not only teach our interns, they also provide career guidance for their professional futures, enhancing academic and career goals. Every internship is structured differently, depending on the Engineering team, as we want to provide our interns with the curriculum they wish to experience. Supplementary work is also assigned based on what is deemed the most beneficial in expanding our interns’ knowledge in their respective fields–whether it’s reading assignments, coffee chats, or smaller side projects. Mentors choose our interns’ main project, based on their interests, in which they focus on for the entire summer. Weekly check-ins with our interns help them identify for themselves their obstacles, milestones and accomplishments. At the end of their internship, we showcase and celebrate their months of hard work. Let’s now take a sneak peak into what our interns have been working on!

Check out Part 1 of our Intern series!

Alana Anderson

Now that you’re half-way through the internship, what progress have you made in your project?

I’m approaching the exciting milestone of shipping my first product! The inbound work of scoping, design, and engineering for the sample application are just about done. I’m now entering the realm of outbound product management. I’ve organized a user testing event with 20 AppDynamos from DevOps, Product, and Marketing to get feedback on the sample application before it goes live. I also get to work with our incredible Sales and Marketing teams to manage promotions and to drive conversions.

What other projects are you working on?

I’ve been extremely lucky to have mentors outside of my team who have trusted me with their products. The PM for AppDynamics’ End-User Monitoring product, Ian Withrow, has tasked me with scoping a new feature for Browser RUM. I’ve love the challenge of working with an extremely technical part of the product and speaking with customers to help shape my requirements. I’ve also dove into a few projects on my own – stay tuned for that in the next blog post!

What struggles or problems have you encountered with your project?

In the first month of my internship, my work was pretty engineering heavy. I was working a lot with languages and frameworks I hadn’t been exposed to before. Learning new technologies for leisure is a ton of fun, but when you’re time-pressed with delivering a fully functioning product on a deadline, it can be stressful. I am lucky that I’ve built a strong network of mentors here who encourage and support me through my frustrations.

What’s the coolest technology you’ve worked with so far?

We Dockerized the sample application so that the entire thing can be spun up in a virtual container in just a few minutes! Docker is an amazing emerging technology that I think will be very important in the years to come.

What do you enjoy the most about your team?

The Product Management team is incredible. What I respect most is the team’s ability to envision and discover new products and features while simultaneously driving progress on executing and improving current projects. I can’t imagine a more creative, committed, or candid group of people to #ship-it with!

Haojun Li

Now that you’re half-way through the internship, what progress have you made in your project?

My project is mostly done. I’ve enabled users to gain more insight to their applications on runtime and laid the foundation for future implementations. I am adding tests and making sure everything runs smoothly.

What other projects are you working on?

I’m also working on refactoring and reducing tech debts. Since byte code injection is really hard to test, I’m figuring out a way to dynamically transform and load classes in test environments. This framework would lay the foundation for all future byte code injection testing.

What struggles or problems have you encountered with your project?

I have encountered both technical and design problems. One of which is the vast range of knowledge required for the project. I’ve not only learned byte code and JVM structure from scratch, but also learned how the company code is structured so I can build on top of that. Sometimes there are trade offs that I have to make between memory/storage and runtime. My team is really helpful during these processes, and will even call in team meetings to discuss these design choices. With the help of my team, I was quickly unblocked and fast tracked to solve issues.

What’s the coolest technology you’ve worked with so far at AppDynamics?

I worked with the ASM library, which is a java byte code injection library. They provide APIs for byte code transformation and generation, and is fairly simple to use and extremely powerful.

What do you enjoy the most about your team?

What I enjoy the most about my team at AppDynamics is the team dynamics (pun!) we have. When I ask any of my team members a question, they would stop whatever they were working on to help me figure it out. I truly feel like I am a valued member and I’m so proud to have a supportive team.

Nicholas Turley

Now that you’re half-way through the internship, what progress have you made in your project?

My work on mobile crash processing is finished for now. I successfully improved the way our mobile crash processor in the cloud handles certain new types of crashes for Android and iOS.

What other projects are you working on?

Since finishing the work on the crash processor, I have split my time between an investigative research-type task and other miscellaneous tasks. My research-type task is to investigate the effort and technologies involved with supporting Xamarin for mobile End User Monitoring. Xamarin is a way of developing apps on Android and iOS using a single language (C#). My other tasks have included various improvements related to opening tickets in our issue tracking system.

What struggles or problems have you encountered with your project, and how did you solve these problems?

One challenge that I encountered — both with my earlier work on crash processing, and with my recent research tasks — was to accumulate in-depth knowledge about the technologies we are supporting. To produce a product like mobile End User Monitoring, it is not enough to merely know how to write an app on the Android, iOS or Xamarin platform. You need a deep understanding of how these technologies work on the inside. While I still have a lot to learn, I came a long way by doing extensive research and asking various people on my team pointed questions.

What’s the coolest technology you’ve worked with so far at AppDynamics?

I’ve gotten to work with so many cool technologies, but I’d say the concept of bytecode injection was particularly intriguing. The technology is so powerful and I have never come across it in school.

What do you enjoy the most about your team?

I enjoy getting to know my team members. Everyone is fun to be around, and we have had some great conversations. In fact, my team and other AppDynamos I’ve talked with have offered me valuable advice about both technical topics and life after college.

Stay tuned for our next Intern Series blog piece to say goodbye to our interns!

The post Students to Engineers: A Peak Into Their Summer (Part 2) appeared first on Application Performance Monitoring Blog | AppDynamics.

Read the original blog entry...

More Stories By AppDynamics Blog

In high-production environments where release cycles are measured in hours or minutes — not days or weeks — there's little room for mistakes and no room for confusion. Everyone has to understand what's happening, in real time, and have the means to do whatever is necessary to keep applications up and running optimally.

DevOps is a high-stakes world, but done well, it delivers the agility and performance to significantly impact business competitiveness.