"Reducing Operational Noise by Diving into a Legacy System"
Below is an article originally written by Elizabeth Giles at PowerToFly Partner PagerDuty, and published on January 8, 2020. Go to PagerDuty's page on PowerToFly to see their open positions and learn more.
In a story that will sound all too familiar to many developers, in early 2019, I picked up a Kanban ticket to update a legacy system's documentation—a microservice so old that no one on my team really knew much about it. In this blog, I'll share the lessons I learned from familiarizing myself with a legacy system and the positive outcomes of doing so. Additionally, I'll share some steps you can take to look at some of your own legacy systems—if you dare.
When I picked up the ticket, my team was preparing to pass on ownership of the service—one of our oldest and most neglected—to a team that had plans to give it some attention. There were just two things standing between us and changing the PagerDuty escalation policy associated with that service: ensuring that its documentation was up-to-date and having a knowledge transfer session with the new owners.
These were actually bigger hurdles than they sound due to the general lack of knowledge about the legacy service. Nevertheless, I was the developer who ended up with the Kanban ticket to update the service's documentation.
How Did We Get Here?
But how did our team even get to this point to begin with? The service in question was roughly 15,000 lines of Scala code built around 2015 by a completely different team. Over time, the developers who had originally built the service moved on from PagerDuty to new opportunities. Once my team inherited it, we rarely had to touch it for tasks larger than updating some of our tooling.
You see, my team owned a fairly long list of services, many of which we were doing active development on as part of building new features and scaling existing ones. It wasn't a priority for us to devote attention to a service that wasn't involved in any of our new features, rarely caused us operational pain, and wasn't anywhere near the top of our list of scaling bottlenecks.
And then, those from my team who had been around for the original ownership transfer and had done any feature development on the service also moved on. Eventually, we were left with developers who had touched the service a handful of times at best and weren't particularly comfortable with Scala since PagerDuty uses mostly Elixir now. We knew the basics of the service, sure, and we were more familiar with it than folks on other teams, but no one was particularly confident in their knowledge of the details.
(If you're worried after this post that we never go back and improve our legacy systems here at PagerDuty, check out our posts about centralizing scattered business logic in our Elixir webhook service and revisiting our Android architecture.)
Steps to Dive Into an Unfamiliar System
In order to make sure that the documentation was up-to-date and accurate, I did a deep dive to try to resolve some of the gaps in my knowledge.
There are many tips for understanding large, unfamiliar codebases out there (I find Michael Feathers' book, Working Effectively with Legacy Code, particularly helpful), and everyone develops their own techniques, but the steps below are the ones I took to tackle this challenge and could be applied if you're in a similar situation.
Step 1: Reading the Feature Documentation
As developers at PagerDuty, we're fortunate to be in a position to use our own product on a regular basis; however, that doesn't always mean that I'm an expert in all of our feature sets. Because of this, I started by reading the public documentation available for the features this service was powering. This pre-work reading helped me understand the intent and possible edge cases that led to the creation of the code I would end up reading.
Step 2: Tracing Requests
When I was ready to start diving into the codebase, I began by giving myself logical paths to follow by identifying where HTTP requests and other inputs entered the system and tracing through what happened with them from there. I then created a flow diagram so that I didn't have to rely on memory to keep track of everything.
Step 3: Examining the Data Lifecycles
Many services accept multiple types of requests that all interact in different ways with data that the service is storing. In these cases, it can be difficult to get a good view of how the entire system works when tracing one type of request at a time. To address that, after tracing individual requests, I took a step back and focused on the pieces of data being stored to understand their lifecycles—how they were created, updated, accessed, and deleted.
Step 4: Refactoring
Once I gained a better understanding of the system, I checked those assumptions by trying to make changes to the code, usually some refactoring, to try to make it more comprehensible. If the changes seemed to work, and didn't cause compiler errors, break tests, or cause the system to behave in a way that didn't match its feature documentation, I could be fairly confident that my assumptions were valid.
Often throughout this process, I was making changes purely for learning purposes with the full intention of reverting them afterwards. This meant that I could move faster and focus on understanding the service rather than following all conventions or what level of risk I was willing to take with the new changes.
Step 5: Explaining the Service
Once I felt fairly confident in my understanding, the last thing I did was to try and explain how the service worked—sometimes to another person and sometimes to a rubber duck. Either way, questions or gaps would come up that made me realize there were still parts of the service I needed to investigate further.
When You Learn More Than You Expect
By the end of the above process, I had a much better understanding of how the service actually worked as well as a good start on the documentation that I needed to write.
The service in question was used to enable some of PagerDuty's many integrations. Essentially, it stored information about different actions to be taken for each integration and provided interfaces for accessing and updating those actions.
This simplifies the real service quite a bit, but as an illustration, I ended up with some notes like this to describe how it handled requests:
- Fetch the metadata for the current version of the integration from the database.
- Insert a new entry into the database with metadata for the new version, with an incremental version number.
- Store the full set of actions for the new version of the integration in the object store system under the path included in the database entry.
- Mark the new database entry as "active."
- Mark the database entry for the previous version as "not active."
- Fetch the metadata for the current version of the given integration from the database.
- Use the path included in the metadata to fetch the full set of actions for the integration from the object store system.
And thus, I ended up with notes like this to describe the lifecycle of a row of the integration metadata table being stored in the database:
- INSERT: Row 55 is inserted into the database as a result of a request to update integration #3.
- UPDATE: The
activecolumn of row 55 is updated to
true, after the full actions set from the request has been stored in the object store system.
GET /3/actions (any number of times)
- SELECT: The data in row 55 is returned as a result of a query to the database for the most recently created entry with
- SELECT: Row 55 is returned as the current integration version as a result of a query to the database to find an entry with
- UPDATE: After the new version of the integration is completely deployed, the
activecolumn of row 55 is updated to
This wasn't a substitute for having built the service or done substantial work on it myself, but it was a fairly quick process that enabled me to come to a stronger understanding of the service and opened my eyes to a few unexpected realizations.
A Bug Appears!
Let's go back to the lifecycle of a database row for a minute.
You may have noticed, as I did, that the service had two different ways of fetching the "current" version of an integration from the database, based on two similar sounding columns,
active. This came as a result of gradual additions of features to the service and gradual evolutions of the data model to support them. I promise that it's much easier to see in the simplified version of the service that I've described here than it was in reality.
When I did notice this, I realized that I had inadvertently identified the source of a long-running annoyance for my team.
We had been aware for some time that this service would briefly return error responses to
GET requests for a specific integration while a new version of that integration was being created. If we were ever notified about an incident on the service during an integration deploy, we knew that it would most likely be transient and nothing to worry about.
However, it had never been worth our time to investigate the issue due to our lack of familiarity with the service, the fact that errors were retried so there was no customer impact, and the general rarity of new integration deploys that only ever happened during business hours anyway. So we just treated it like one of the unavoidable quirks that you tend to find in legacy systems.
In my dive into the service, I discovered that those errors were occuring because of its multi-step process for responding to
POST requests, where a new row containing integration metadata was first inserted into the database and then the full set of actions corresponding to the new integration version was persisted in our object store system. When
GET requests were received by the service between the database insertion and the persistence of the actions, the service wouldn't be able to find actions in the object store system under the
path specified in the database for the "current" version of the integration.
This meant that the operational noise we had been seeing was actually very easily avoidable and wasn't some complex issue inherent in the design of the service. We were already setting the
active column for a row in the database to
true only when the actions associated with that row were fully persisted, and were using that column elsewhere as our method for identifying the "current" integration version. So if we adjusted GET requests to also query the database only for rows with
active=true, the errors during deploys would be eliminated.
I took a couple of hours to do just that during our next Hackday, and we haven't had problems since!
What Learning a Legacy System Can Do for You
The experience of diving deeper into this particular legacy system has helped me recondition how I think about legacy systems in general.
I'm certainly not going to argue that it's vital for developers to always be equally familiar with all of the services that they own, including legacy ones, to the point of getting into a cycle of rewrites every couple of years. But I feel more strongly now about a middle ground, where if a team has a general lack of confidence in their understanding of a system, it could be valuable to take a day or two to try to fix that.
When learning about your legacy systems:
- You can often identify quick improvement wins when you're looking at a system with fresh eyes from a holistic perspective (like I did in this example). Even if you can't make the improvements right away, it can be nice to have a shortlist of them sitting around to work on when you have gaps between larger projects.
- You can gain a better understanding of which parts of the system are most likely to break and how soon those failures might happen, which can be useful when planning for the future. Even if you have no immediate plans to make changes, no system fulfills its purpose and scales forever without some form of attention.
- If you've decided that you're going to be completely replacing your legacy system, you can get a head start on figuring out the challenges of the problem space and identifying edge cases in behavior that you will want to take into account in your replacement system.
Understanding how a legacy system works isn't likely to be the biggest challenge involved in owning it. But making a small investment in that area will help you with any of the other challenges that you end up facing.
Do you have opinions and/or horror stories about dealing with legacy systems? Or perhaps a favorite process for understanding how an unfamiliar system works? We'd love to hear from you in our Community forums.
January is National Mentorship Month— the perfect time to focus on growing and building important relationships with mentors that will positively affect your professional career.
Research shows that mentorship greatly improves career outcomes by providing professional guidance, skill development, and support through major work and life transitions.
We asked some of our partner companies to tell us about the mentorship opportunities they offer. If you’re ready to unleash your full potential by joining an impactful mentoring program, keep reading to hear what they said. (Plus, they’re all hiring—check out their open jobs under each entry!)
“Clarus Commerce has been running a mentorship program for the last 9 years. Here is how it works:
- Senior leaders nominate mentors within their department.
- The program lasts for about 6 months.
- Those who are interested in being mentored provide 6 topics that they’d like to discuss in mentoring meetings, which help us pair people up. Mentoring topics should focus on topics such as: leadership, how to manage up, presentation skills, communication, work life balance, etc.
- We leverage our Insights and Discovery profiles that each employee has to help better understand each other’s communication styles and help facilitate great discussions.”
Learn more about Clarus Commerce here.
“PwC professionals are provided learning opportunities, supportive career growth and unique mentoring opportunities to help them to fulfill their potential. The firm has several programs that include intentional mentorship and focus on building representation, inclusion and development of their people. For example, the firm launched Enrich, an experience designed to support the development and leadership skills of high-potential female and racially and ethnically diverse senior managers and directors. There is also Thrive, an innovative two-year experience for Black and Latinx entry-level new joiners that helps lay the foundation for a successful career through culture workshops, networking, connectivity and leadership engagement.”
Learn more about PwC here.
“At CallRail we have a program called Connection Point where individual contributors are paired with members of the Senior Leadership Team. Each pair is together for a full quarter and are given topics for their meetings, topics range from; career stories, situational advice and feedback, etc. At the conclusion of the quarter the individual contributors that have been in the program have a round table lunch with the CEO. This has been a great way to foster deeper connections within the organization, demystify senior leadership and help individuals see a path forward.”
Learn more about CallRail here.
“Automattic’s Design Mentoring program is a mutually beneficial partnership providing development opportunities for all. Mentees pick up new skills or get guidance with a project. Mentors practice communication, leadership, and knowledge sharing. The organization benefits from more engaged, productive employees, who have increased job satisfaction because mentorship encourages meaningful work that aligns personal and professional goals. In our distributed work environment, mentoring provides a human connection and a trusted space to grow. Tapping into all of the design experience and skill that our organization has is a powerful way to grow individually … and collectively."
Learn more about Automattic here.
“Relativity Women of the Workplace (RelWoW) Mentorship Circles is a group mentoring program that brings together women at varying stages in their careers and from every department at Relativity. The program sessions are curated by our team and include materials, talking points and action items to help create open dialogue, build connections and develop skills for personal and professional development. The program runs around six months, and includes a kickoff, mid-point event exclusive to program members, and a closing celebration. Relativity also plans to pilot a new mentoring program with broader reach across the company in 2022.”
—Yvonne Frazier – Executive Assistant
Learn more about Relativity here.
“CDW Business Resource Groups are a key source for networking and mentoring opportunities. In 2019, our BeU BRG launched a formal mentoring program through their Project IMPACT initiative aimed at recruiting, retaining and promoting Black coworkers. It has been a successful program that has brought coworkers together across departments and roles, sharing new experiences and perspectives for both mentors and mentees.”
Learn more about CDW here.
“BRIDGE is Kinesso's reverse mentoring program bringing together senior leaders and future leaders globally. Our program pairs employees with Kinesso's Senior Leadership Team, but rather than leadership mentoring employees, our employees mentor our senior leaders!
Through mentorship programs like Bridge, Kinesso's brings together employees across generations, cultures, territories, and job levels. Giving our future leaders the opportunity to share fresh perspectives and innovative ideas allows our current leaders to look at inclusion, capabilities, collaboration, and connectivity from a completely different lens.
"(Bridge) is immensely important for many reasons, but most of all, it shows that no matter where you are in your career, you should never stop learning and growing."
—Arun Kumar, CEO at Kinesso and Global Chief Data & Marketing Technology Officer at IPG”
For more information on Kinesso, please visit Kinesso.com/careers.
Learn more about Kinesso here.
"At SoundCloud, one of our core behaviors is to embrace the challenge- but that doesn’t mean that you go at it alone. We encourage SoundClouders to ask for help and to give help to those who it need along the way. Over the past few years we have offered a mentorship program that connects rising SoundClouders with under-represented identities (gender/race/ethnicity) with more senior level employees around topics of professional branding and career growth, influencing and emotional intelligence, and strategic thinking. In 2022, we aim to launch 2 cohorts of mentorship/coaching targeting different ranks of women of color."
Learn more about SoundCloud here.
“BlackRock has nine employee networks and four professional networks – all of which offer mentorship programs or opportunities.
Our employee networks: Mosaic; Ability & Allies Network; Asian, Middle Eastern & Allies Professional Network; Black Professionals & Allies Network; Families & Allies Network; Out & Allies Network; SOMOS Latinx & Allies Network; and Women's Initiative & Allies Network.
Our professional networks: Analyst Alley, Associates Arena, Global Administrative Initiative Network, and VP Village.”
Learn more about BlackRock here.
“Having both formal and informal mentors is crucial to elevate any career. At Lockheed Martin, mentoring is the development of meaningful relationships to transfer valuable knowledge and understanding from one person to another. It is a personal enhancement strategy through which one person willingly facilitates the development of another by sharing known resources, expertise, values, skills, perspectives, attitudes, and proficiencies. Our mentoring program is tailored to the individual employee to give them the right tools, the right resources, at the right time.”
Learn more about Lockheed Martin here.
“Autodesk is a place where you can shape your future and help others do the same. The Autodesk Mentorship Program empowers employees to take ownership of their careers and build on a mindset of learning from each other by offering mentorship opportunities for professional and personal development, peer-to-peer learning, and focused networking. The program helps you identify your goals and recommends matches for a mentor or mentee to help you accomplish them. Through the Autodesk Mentorship Program, employees can make connections, grow their skills, explore opportunities and build their career paths.”
Learn more about Autodesk here.
“Cummins Women’s Empowerment Network (WEN) focuses on a mission to create the right environment by advocating for equal representation, empowering women, and fostering inclusion for every employee in all work assignments at all levels.
As part of the work to achieve such a mission, WEN focuses on mentoring and development initiatives designed to foster mentoring relationships, broaden employee networks, and provide opportunities for personal and professional growth. Initiatives include Speed Mentoring Sessions, Personal Development & Networking Events and WEN Mentoring Circles Program. This annual Mentoring Circles Program provides a monthly opportunity for exempt employees to participate in a forum for open discussion, explore new perspectives and learn from peers and leaders.
Within the Europe region we also have the Cummins Business Services mentoring program which is open to all employees at all levels.”
Learn more about Cummins here.
“Meet a pairing in Millennium’s Mentorship Program: Cari Smalley, Co-Head HR Business Partners, Americas, and Jasmin Zirino, Operations Specialist. They say, "The mentorship program is a fantastic experience for anyone who wishes to join. It allows you to meet someone you do not directly work with and grow your network. It is invaluable to have the ability to work through solutions to problems, use one another as sounding boards, and occasionally just blow off steam in a supportive space."”
Learn more about Millennium Management here.
“Mentorship is about stepping out of our comfort zone, taking charge and acting upon our ambitions, opening doors for others and learning more about the skills that make our own success.
Expedia Group has a volunteer-led program allowing every employee to have an equal chance to grow and succeed. The program has brought together a group of 1,700 Expedians from all over the world who believe in skills development and the power to elevate others while creating Inclusion at Expedia Group. Through a self-service marketplace platform and organized meetup sessions, EG’s Mentoring Program enables all employees to ask for help and embrace their own identity while belonging to a community that thrives through diversity.”
Learn more about Expedia Group here.
“At Equinix, our employee connection networks (EECNs) play an important role in bringing together communities for learning and growth opportunities, including mentoring. While mentees gain much from mentors, we often find that mentors also discover growth opportunities.
By asking these questions, we instill best practices for a successful mentorship:
What does each party want from this experience? How often to meet? Confidentiality: What’s shareable and what isn’t?
Feedback: What are the expectations around giving and receiving feedback?
And remember, a mentoring relationship is like any other relationship—it takes time to develop. Build trust by getting to know one another.”
Learn more about Equinix here.
"At Unstoppable, it is our commitment to having a crypto forward culture. Every new team member is matched with a Crypto Buddy who acts as their first point of contact outside of their direct team, guides them down the crypto rabbit hole, and welcomes them into Unstoppable’s culture. As a fully remote company, making cross-team collaboration a key part of onboarding strengthens our community. This is also an opportunity for the buddy to hone their mentoring and teaching skills. When the new hire has been with the company for six months, they will then become a mentor themselves, driving a continuous cycle of mentorship."
Learn more about Unstoppable Domains here.
“Mentoring@Uber connects employees who are passionate about helping and up-skilling others with those who are seeking guidance and development. It is a way of connecting and sharing challenges on a mutual and reliable relationship —and trying to get another perspective from an unbiased source. It’s also an opportunity to learn from the experiences of others, or collaborate together to come up with a solution to professional problems that arise. People with mentors perform better, advance in their careers faster, and even maintain more work-life balance. And mentors benefit, too.”
Learn more about Uber here.
“MongoDB has offered two pilot mentorship programs to support underrepresented groups. One program focused on promising first-line managers and ICs from underrepresented groups and the other focused on providing executive mentorship to women & nonbinary leaders at the director level and up. In both programs, participants were matched with a mentor with who they regularly met to discuss career planning and personal development. Feedback from both pilots was hugely positive with participants indicating that they received helpful support from their mentors. Members from our ERGs have also served as mentors to our summer class of interns.”
Learn more about MongoDB here.
“Our Black and Latinx ERG, Array, offers a mentorship program pairing individual contributors within Array to C-Suite and VP level mentors, including PagerDuty CEO Jennifer Tejada. Dedicated to leveling the playing field for Black and Latinx employees, the program is structured so everyone can learn from each other. Mentees are paired with mentors from within or outside their department for a nine-month term, which includes check-ins, themed discussions, and monthly one-on-ones. Bri Solorzano, an Array mentee, explained that this mentorship program allows her to build bonds with higher level executives, and share her personal experiences as a Latinx employee and individual contributor at PagerDuty.”
Learn more about PagerDuty here.
T. Rowe Price
“Due to the highly collaborative culture at T. Rowe Price, the firm understands the value of relationships and the opportunities strong mentorship can provide. It is committed to not only developing talent within its walls but developing the next generation of talent within communities.
The firm will launch a new global mentorship program in 2022, which will offer associates the opportunity to connect with colleagues, agnostic of location or business unit. T. Rowe Price also provides leadership development to youth in the community through strategic partnerships such as the Baltimore Ravens Leadership Institute, a program aimed at high school students.”
Learn more about T. Rowe Price here.
“At Pluralsight, we take growth seriously. Which is why we offer a six-month long mentorship program for all of our employees. Our mentorship program is facilitated bi-annually by Women@Pluralsight, one of our Employee Resource Groups (ERGs) and aims to empower participants to recognize their full potential. We intentionally pair mentors and mentees to create connections that encourage the development of skills crucial to success, and foster personal and professional growth. In our most recent cycle we paired nearly 200 participants and have plans to continue growing that number. Because at Pluralsight, your growth is our growth, and vice versa.”
Learn more about Pluralsight here.
“At Yelp, we value and actively foster an environment focused on learning and development. There are a variety of mentorship opportunities available, such as:
- New Hire Mentors — new employees are paired with a team mentor to help them onboard and get settled in.
- Engineering Mentorship Program — any IC engineer can sign up to become or get a mentor within Yelp Engineering.
- Manager Mentorship Program — new engineering managers or proto-managers can get support from experienced managers at Yelp.
- Awesome Women in Engineering — This employee resource group’s mentorship program helps AWE members find mentors or mentee within the group.”
Learn more about Yelp here.
“At Turo, we help each other. We collaborate. We challenge each other. And we create the tools to succeed independently and as a team.
When you join Turo engineering, you’re assigned a mentor, a reliable, single point-of-contact to help you set up your environment, navigate the codebase, and acclimate to Turo’s culture and workplace. Mentors have a great responsibility to ensure new Turists feel welcome, offer encouragement, and provide advice and guidance on complex matters of systems and architecture. Engineers who demonstrate our core values of efficiency, pioneering, and being down-to-earth and supportive have an opportunity to mentor new engineers. Mentoring engineers is a great way to build the skills necessary to further your career at Turo.”
“Mentoring has allowed me to deepen my technical understanding and team connections.”
– Lauren Kroner, Senior Software Engineer
Learn more about Turo here.
“In the US, Moody’s has an intergenerational mentoring program, our Pride BRG members coach youth in the Queer Coders program. Our Women’s, Veterans, and Multicultural BRGs have a variety of mentoring programs, including summer intern mentorship, our Asian Leadership Initiative and our ConectaMos Hispanic/Latinx 1:1 mentoring program. Our Women’s Group Mentoring Program just celebrated its 10th anniversary with over 800 mentor-mentee participants over 10 years. In EMEA, Moody’s offers Power to Act reverse mentoring, mentoring through the Women’s and Pride BRGs, and a parental leave mentoring scheme. In APAC, Moody’s has various cross-BRG and cross-department mentoring programs.”
Learn more about Moody’s here.
“At Condé Nast, we are focused on providing positive career development opportunities. We recently launched a Global Mentorship Program as an option for employees to connect and learn from one another. For six months, employees participate as a mentor and/or mentee to develop their careers, grow their skills and guide one another. The structured framework creates and sustains an inclusive experience that empowers everyone’s growth.
The MentorcliQ platform we use lets us create mentoring pairs based on their interests, experiences and personality compatibility. To date we have had 473 active mentorship pairs.”
Learn more about Condé Nast here.
“Thornburg Small Group Mentor Program was created to bring employees of various tenures and experience levels together in order to cultivate organic relationships and opportunities for influence in a low-pressure environment.
The program consists of six small groups comprised of one mentor and three to six mentees. These groups meet for one hour every month for six months. The series concludes with a virtual event where all participants from every group can meet and share takeaways from their experiences.
- Small group format (not one-on-one)
- Low cost, low maintenance, light structure
- Flexibility for mentors to lead through individual style"
Learn more about Thornburg here.
“Women@Okta’s upcoming mentorship program:
W@Okta’s vision for the year is to empower, develop and support women-identified employees in order to ultimately improve gender diversity at Okta. One of our key methods is to empower the next generation of female leadership by providing a platform for women to connect and learn from one another through group and 1:1 mentorship opportunities. Our Professional Development branch is launching a pilot mentorship program with an initial cohort of 32 mentors and mentees.
Goals: Career, personal and organizational
Share your needs, desires, goals, and challenges; career choice and mobility.
Explore people, resources, information, expertise you need – but don’t have – to speed up, enhance, and ensure your results.”
—Professional Development Lead Christina Ghallagher (Senior Sales Development Representative) & Partnerships Co-Lead Sarah Schiff (Senior Manager, Customer First Recruiting)
Learn more about Okta here.
💎 Looking for some tips and tricks to prepare for your job interview with CallRail? You’ve come to the right place! Make sure to watch the video until the end for some valuable insights.
📼 Watch this video to get some tips that will help you prepare for your interview with CallRail. In this video, you’ll meet Kristin Marsicano, Director of Engineering, and Jon Cyprian, Talent Acquisition Manager at CallRail, who will tell you about the application process and give you some tips and tricks to crush the interview!
📼 Tip #1 for your interview with CallRail: Based on Jon's personal experience as a recruiter, he shares there isn't a "moment" when he knows the candidate is perfect for the job. That said, some vivid indicators naturally give recruiters a better feeling about a candidate, including the research they've done and just their genuine honesty! Transparency about skillsets and what you are looking for in your career journey matters!
📼 Tip #2 for your interview with CallRail: Kristin reveals, “One of the most common hiring misconceptions is that you have to meet all of the criteria in order to even consider applying." That is not true! Being on the other side of engineering hiring for the past seven years, Kristin has seen so many scenarios where the company extended an offer to somebody, even if they didn't meet every single one of the criteria. She recommends that you directly call out how your existing experience matches the job requirements when you apply. Then, if and when you get through to the interview, be prepared to note specific examples that match your experience to the role's needs. Kristin is looking to hire people who can adapt, who have the self-awareness to know what it takes to learn on the job.
Resume Tips for your Interview with CallRail
Jon says there are really only two things to keep in mind when it comes to resume tips. First, a resume over two pages can be too much. But if you still want to present that extra information, Jon recommends doing two submission formats: a short-form and a long-form. The second thing Jon suggests is to submit your resume in a simple form, using either PDF or Microsoft Word. That's because many applicant tracking systems that recruiters use do not accept additional formats.
🧑💼 Are you interested in joining CallRail? They have open positions! To learn more, click here.
Get To Know Kristin and Jon
Kristin is an experienced technical leader, people manager, educator, and mentor with 20 years in the software development industry, including authoring Android Programming: The Big Nerd Ranch Guide. She excels at project and team leadership, and is effective at communicating with technical team members across disciplines and skill levels, as well as non-technical team members and stakeholders. She has experience seeing projects through from inception to implementation. Kristin builds buy-in with internal team members and stakeholders through transparency, collaborative ownership, and consistent practices.
Jon has been with CallRail for more than three years now, first as an Internal Recruiter and currently as a Talent Acquisition Manager. If you are interested in a career at CallRail, you can connect with Kristin and Jon on LinkedIn!
More About CallRail
CallRail is here to bring complete visibility to the marketers who rely on quality inbound leads to measure success. Their customers live in a results-driven world, and giving them a clear view of their digital marketing efforts is the first priority for CallRail. They see the opportunities in surfacing and connecting data from calls, forms, and beyond—helping their customers get better outcomes. CallRail has appeared on best places to work lists and are ranked #1 on G2, but they’re not done. They need savvy, innovative people like you to help their customers scale and grow. Are you game?
💎 Get some top tips before your technical interview with Uber! Don’t miss the valuable advice from a company recruiter. And get to the end of the video for the most important tip!
📼 Play this video to get three top tips that will help you ace your technical interview with Uber. You'll hear from Kelly Hay, Senior Technical Recruiter at Uber, who shares everything you need to know if you’re aiming for a technical role with the company.
📼 Tip #1: Communication Is Key. The first tip to nail your technical interview with Uber: You must articulate your approach to the various problems the interviewer will put in front of you. Also, you should demonstrate that you have the knowledge and the skills necessary to thrive in the role. So, think out loud and explain your thought process as you code! This helps fully communicate your solution and allows your interviewer to correct any misconceptions and offer high-level guidance.
📼 Tip #2: Share Your Experience. The second tip for a technical interview with Uber: Clearly illustrate your current role and projects to convey your efforts and accomplishments. Be able to describe how you've been managing various aspects of a project, from planning to completion, and how you've used your problem-solving skills to guarantee project success! Make sure that you focus on projects that had the biggest impact on the organization, where you’ve had a pretty large scope. Share all the details, including the budget timeline and why certain decisions were made. It's all about building and telling the story from the beginning of the project to the end: Why and how you got specific requirements, how you translated those requirements into engineering terms, what types of challenges you faced, and how you solved those challenges.
Tips for a Technical Interview with Uber: Be Prepared!
Take the time to read the interview prep that the recruiter provides. Also, focus on revisiting fundamentals. While it's great to impress the team at Uber with your in-depth knowledge, it's just as important to nail the basics! It may sound obvious, but Kelly highlights that recalling things you haven't revisited for a while can be incredibly tricky.
📨 Are you interested in joining Uber? They have open positions! To learn more, click here.
More About Uber
We are Uber. The go-getters. The kind of people who are relentless about our mission to help people go anywhere and get anything. Movement is what we do. It’s our lifeblood. It runs through our veins. It’s what gets us out of bed each morning. It pushes us to constantly reimagine how we can move better. For you. For all the places you want to go. For all the things you want to get. For all the ways you want to earn. Across the entire world. In real-time. At the incredible speed of now. We welcome people from all backgrounds who seek the opportunity to help build a future where everyone and everything can move independently. If you have the curiosity, passion, and collaborative spirit, work with us, and let’s move the world forward together.
Cehrin Elyas spends a few hours each week with the imaginary characters she’s dreamed up. One of them is Donald, a 55-year-old man with dementia. Another is Mia, a support worker who cares for people like Donald and regularly takes him to get coffee or lunch.
Cehrin works in pre-sales at scheduling platform Skedulo, and Donald and Mia are two of the personas she’s built to help her understand her prospective clients. “I think of them like movie characters,” she says. “I put in lots of data relevant to the industries I’m pitching.”
If you’re unfamiliar with what someone who works in pre-sales needs to be like—aside from a burgeoning screenwriter—Cehrin’s got a 30-second elevator pitch that sums it up:
“You just need to be an out-of-the-box thinker, a problem solver, and a good storyteller. You need to be confident and curious and have the thirst to learn more. The other things will follow,” she says. “You don’t have to be technical. You can always learn that.”
The India-born, Australia-based Solutions Consultant sat down with us to unpack more about the field and what she loves about it.
The Art and the Science
Cehrin studied chemistry in college, earning both a bachelor’s and a master’s in the field. “I was interested in knowing what happened in the world around me,” she explains.
But she stopped short of getting a PhD because she realized she needed more interpersonal engagement.
“I had a light bulb moment where I felt I’m not meant to be confined within four walls, talking to chemicals,” she says, smiling. “I’m not that person. I needed to be around people. So I shifted my career path and I started again from scratch.”
Cehrin had been a leader in AIESEC, an international student organization, while in college, and had experience building a team. She applied for a role at a call center as a team lead, where that experience translated quite well, and later took a job at a SaaS company where she was in charge of communicating with clients after they’d purchased the product.
“It was post-sales, but it wasn’t advertised like that,” she says. In that role, she ran workshops, taking just-onboarded clients through the product’s capabilities.
When she came across a posting for a pre-sales role at Skedulo on LinkedIn, she was intrigued by the opportunity—and Skedulo’s work to support billions of deskless workers, including care workers and other healthcare professionals. Cehrin is especially passionate about work that impacts the disability sector.
“I enjoy working in that space; I understand the lingo, and I understand what goes on in real life, because I have friends and family who have encountered disabilities, or who work as carers,” says Cehrin.
“Solving problems for [care workers], making their life easier, is great work,” she says.
She applied and went through an interview process that included a role-play pre-sales presentation, which Cehrin enjoyed, and she got an offer.
Now, with some experience under her belt in an official pre-sales role, Cehrin can look back and see the connections between her original field of study and her day-to-day work.
“I come from a science background,” she says. “I know how to research my work. If you don’t know something in pre-sales, you go and look for it. That’s one thing I take from my degree that helps me every day: the research mentality.”
That being said, she’s certainly learning the importance of staying adaptable. “Sometimes you write a protocol to run an experiment. You know that if you follow it, these are the results you’re going to get. In pre-sales, you can apply the same methodology, but you need to tweak it a little bit. You need to add in your own flavor, otherwise it doesn't work.”
A Week in the Life—and the Skills That Support It
In any given week, Cehrin’s activities include:
- Doing 3-4 demos for prospects
- Meeting with the 4 salespeople she supports to better understand their expectations and needs
- Researching and updating her personas
- Staying up-to-date on Skedulo’s products via release logs, newsletters, and other updates
Across the board, she relies on her ability to be a good storyteller.
“You need to be able to make decisions on the spot. You need to have the presence of mind and the independence to work, because no one’s going to tell you what to do,” she says. “And you need to be able to tell a story. Understanding your client’s challenges and requirements is great. Knowing the product you’re selling is great. But the key thing is how you’re going to marry them together. It’s the art of telling the story in a way they’ll remember and that has an impact on them.”
That storytelling focus is why she thinks you can build technical expertise on the job in pre-sales. “If you’re worried about having a degree or a diploma or a certificate, don’t be,” she says. “I’m not technical at all, but I’m still in this space and flourishing. Experience is more valuable.”
For those brand-new to pre-sales, Cehrin suggests getting some baseline familiarity by listening to the podcasts produced by The Pre-Sales Collective.
“It’s very experienced pre-sales people coming and talking about how they went about handling a prospect, what were the challenges, and tips and tricks for pre-sales people in that space to implement in their work,” she says. “If you have the attitude to learn and be curious, you can be in this space.”
At the end of the day, what Cehrin most enjoys about her work is her ability to lean on all of her skills to bring people together. “I get to be the advisor, which I love,” she says. “The clients come to you, your salespersons are counting on you, and you’re driving the solution that’s best for them and for the client, making sure everyone’s happy. You just get all the attention!”