Why We Use On-Call Shadowing On-call shadowing is an essential practice at PagerDuty. For a new engineer, a shadowing period serves as a kinder, smoother...by Max Timchenko
March 26, 2019
My name is Sebastian Kolosa, and I’m a co-op student at the University of Waterloo studying Systems Design Engineering. I joined the Mobile team at PagerDuty in January as a software engineering intern, working out of the Toronto office as part of my fourth of six co-op terms. In this post, I’d like to share insights from the uncommon experience of working within a small team to build big products; namely, PagerDuty’s iOS and Android applications.
“Making a big impact.”: This is a phrase that internship seekers and full-time applicants alike have likely heard at least once in the job search process. Being a co-op student that goes through the interview process multiple times a year, I, like many other students, find this statement to be permeating through virtually all software developer job application descriptions in some shape or form. But in reality, it is often an overstatement when compared to the actual experience.
However, I like to think that, for the most part, companies aren’t purposefully trying to bait applicants with the empty promise of making a big difference—a combination of what a company deems important to work on and the fact that Waterloo co-op terms are only four months long can somewhat justify the inevitable situation where what’s promised doesn’t align with reality. Or, so it seemed inevitable: In my experience, after completing my third month as a software engineering intern on PagerDuty’s Mobile team, I can confidently say that an intern can truly “make a big impact” within their term. The secret? A combination of having a smart, eager, and progressive team that’s small in size but giant in their responsibilities: enter the Mobile team at PagerDuty.
Having grown by 900 percent within the last year, PagerDuty’s Mobile team spans across the company’s Toronto and San Francisco offices. Its virtual span, however, extends far beyond that: The team has complete ownership of PagerDuty’s Android and iOS applications, offering the company’s real-time incident management services to over 44,000 weekly active users. Starting with only one developer and one engineering manager, the team that provides functionality for roughly 65 percent of PagerDuty’s weekly user base has grown to include a product owner, an agile coach, four additional full-time developers, a product management intern, and two developer interns (myself included) at the time of writing. Android and iOS app users make up the foundation of the team’s aforementioned responsibility stake, upon which the team builds exceptional user experiences and features.
It didn’t take long for me to start realizing the magnitude of these responsibilities—and it also didn’t take long to see the corresponding opportunities to make a large, positive impact on the experience users have with PagerDuty’s mobile apps. As my last month with the company begins, this responsibility-impact relationship has only been exemplified further. Let me give you some examples.
Like most beginnings for software development interns in tech companies, my first few development tasks were considered “onboarding”: working on something small like a bug fix or tweak that serves more as a means to get one’s feet wet with the codebase than offering any sizable positive impact for users. And while I did indeed get familiar with the iOS application codebase with my first few onboarding tasks, I also quickly found out that, contrary to what I believed, the first bits of code I wrote were also impactful for users.
Instead of getting handed a mundane task, I was given the opportunity to polish the login experience within the iOS application as my first bit of contribution. This involved creating a dynamic reusable component for the text field that users interact with in one of the app’s two login screens. The custom text field component enabled the user’s PagerDuty subdomain to follow the user’s cursor, as opposed to being stuck on the right side of the screen with some unpolished looking UI. More importantly, since all users need to log in at some point, this was a task that virtually every iOS app user could see. In other words, I felt gratification and a sense of importance within the Mobile team after the completion of my very first task.
In similar relevancy to users, the second onboarding task I worked on had to do with the user settings available to iOS app users. When I joined the team, there was a lack of parity between the settings available on the mobile clients and those available on the web app when it came to users’ notification rules—aka, configurations users set for how they should get alerted for incidents that pertain to them. I was tasked with making sure that users could tweak their notification rules to the same degree of detail as they could within the web app; that is, giving users the ability to set notification rules for both high and low urgency notifications, as well as keeping their rules consistent across both clients. The onboarding task felt impactful not only due to it being tied to a common screen and function, but also because it was inspired by actual customer feedback. It was pretty awesome to know that I was making a real difference to customers within my first few weeks at the company.
This trend of being given the responsibility to do impactful, important work has only continued as I’ve gotten more integrated within the team. From contributing to bringing liveness to life in iOS, to leading engineering task–prioritization meetings, the opportunities to ship awesome value to customers and employees have been in symbiosis with gaining a high degree of personal development of both soft and hard skills.
While I think these types of opportunities and experiences exist within all of PagerDuty’s teams, the fact that they’ve been so potent for me is ultimately a function of the anatomy of the Mobile team at PagerDuty. We’re small. In a wild playground of over 400 employees, the Mobile team consists of only 11 people. With such a small size relative to the scale of the apps that the team is building, you’d really have to go out of your way to work on something seemingly irrelevant. The team’s micro size also fosters a genuine sense of family. This isn’t one of those superficial scenarios where you pretend to be interpersonal with your team while at work and ignore them at other times—a true sense of community and compassion has been growing alongside the team via the virtues of transparency and the outward willingness to help peers.
With small size and a large product comes a lot of responsibility, and while it may sound overwhelming—especially from an intern’s standpoint—the Mobile team’s size has enabled the bright, interpersonal personalities within it to extend their help and support without being blocked by the politics and red tape that are often associated with larger teams in general. Whether it’s pairing up with a full-time developer to get exposure to a new platform, gaining mentorship through constructive code review and knowledge-sharing sessions, or bi-weekly team meetings discussing the progress of team goals for the given development iteration, the Mobile team offers the ladders for you to climb in personal development and see the impact you’re making to customers around the globe—all while providing cushioning to soften any falls you may have along the way.
Oh, and did I mention co-working sessions? To top off a week of getting stuff done, the developers on the Mobile team get together for an hour and a half every Friday afternoon via meeting rooms and Google Hangouts to work on things that are tied to their personal growth as developers. These sessions have provided an awesome opportunity for learning something new and creating knowledge transfer as you pass on the information to others and instill proactive discussion. I personally worked through and finished an introductory Udemy course on Model-View-ViewModel (MVVM)—a popular software development paradigm—in iOS during these sessions so far and have recommended it to others on my team for personal development and increasing our team’s development prowess.
All in all, I’ve had a pretty exceptional experience at PagerDuty in the three months I’ve been here. While the company as a whole provides an unprecedented degree of value from a cultural and product perspective, it’s the Mobile team that will stay closest to heart for me as I finish off the term. Having equipped me with not only the technical tools I need to further grow as a software engineer in the making, but also the empathetic, interpersonal, and cultural tools that I will continue to employ and use as a standard for wherever else my development journey takes me, the Mobile team at PagerDuty has convinced me that big impacts do exist for both interns and full-timers. If you’re wondering what it’s like to work with such a team, consider applying for it by visiting PagerDuty’s careers page.