Profile picture

Debugging Q&A and Videos

About Debugging

In computer programming and software development, debugging is the process of finding and resolving bugs (defects or problems that prevent correct operation) within computer programs, software, or systems. Debugging tactics can involve interactive debugging, control flow analysis, unit testing, integration testing, log file analysis, monitoring at the application or system level, memory dumps, and profiling.

Seeking input on Forming a Healthy On-Call Rotation

Tech Lead at Taro Community profile pic
Tech Lead at Taro Community

My new manager, my old manager, and the broader team have been managing the on-call rotation for the platform of my company's flagship product, which we launched two years ago. Initially, the rotation included just 3 engineers, but after discussions with my directors and acknowledgment from the rest of the organization, we increased it to 8 engineers to form a healthier on-call rotation.

Despite having 8 engineers, I've noticed that many team members, including our principal and staff engineers, are still not familiar with the on-call procedures. I have compiled a support run-book log documenting the steps for handling each issue/alert, so the on-call team understands the severity and business impact of different issues. The issues can range from low priority to business-critical.

However, the support run-book documentation is not entirely reliable as the ultimate source of truth because our production system support behaves more like triage than a debug system.

Additionally, the nature of the on-call rotation can vary from simply acknowledging alerts and following documented steps to collaborating with business owners. Sometimes, issues are caused by other teams or third-party vendors, making them unsolvable by the on-call engineer alone. I noticed that Production Issue happened almost daily, and the on-call issues have impacts to company's revenues and customer facing experience..

I am interested in learning more about how others view a healthy on-call rotation.

What are the key factors to consider when forming a healthy on-call rotation?

Show more
Posted 3 months ago
41 Views
2 Comments

What do you do when you're faced with a problem that you can't solve?

Software Engineer at Taro Community profile pic
Software Engineer at Taro Community

So, I'm the only frontend developer on a mobile application. My boss is BE and so if I ask for help he just tells me, "im sorry but I have my own things, you need to figure this out". I've expressed concerns when I wasn't happy with that answer; but, he doubled down that I knew more about him than my problem and so couldn't help me.

The issue is, the things I have problems with are exactly specific to frontend, maybe I'm trying to do some data flow stuff and just want to bounce off a coworker. Or, I have to integrate some FE piece to the BE and since we're a 3 person (engineer-wise) startup, we don't have documentation or really anything besides slack messages to explain stuff.

This has led to me being forced to just white knuckle my way through problems. For the past year and a half I've been able to do this; however, I'm now facing more difficult problems, live-streaming, bridging native modules ( I work with RN ).

More recently, I got stuck on a problem where, I seriously contemplated quitting the company because I couldn't figure it out. There is a ton of pressure because we have daily stand up and I can only say, "I'm still working on X due to Y" for so long. And so I thought, what happens when breaking it down, trying to solve a simpler problem, posting online, talking to teammates, reading docs, just doesn't work? I seriously thought everything was spiraling out of control.

I honestly don't know if there is an answer to this problem. But I was truly feeling hopeless just blindly trying to solve an issue by googling, chatgpt, and hoping for the best each time I hit compile.

Show more
Posted 8 months ago
77 Views
3 Comments

Unable to reproduce a production bug, what will be the repercussions?

Senior Software Engineer at Taro Community profile pic
Senior Software Engineer at Taro Community

Since a week I have been investigating a production bug that last occurred on 20th Sept 2023, and earlier in 2021, but unable to reproduce it in test environment. At times there's a transaction that erroneously overrides some database values, and I need to reproduce a similar transaction to see where in the code the database value is getting overridden. I followed the following steps:

  1. Got the request URL from logs for the buggy transaction, to see which UI page is responsible for it.
  2. Spoke to the user who performed that transaction if he remembers what he changed on that UI page. It was a POST request and only the URL is logged, not the body. He faintly remembers what he changed. The database history tells me what columns were updated exactly for that transaction, but those columns are not visible on the UI. Those were updated indirectly as part of the page save. But I have not figured out still in what scenario those columns will get updated in the database from the given UI page.
  3. Tried performing the same steps in test environment, but unable to reproduce. Tried for different scenarios by changing different fields on the UI, since the user doesn't remember what he changed exactly.
  4. Will next be debugging the code on my local system to get an understanding of the flow.

I'm worried - what if I'm not able to reproduce it? I often think that others will doubt my capabilities. Can I be put on PIP for this?

Show more
Posted a year ago
135 Views
2 Comments

How can I be more confident being in Big Tech?

Mid-Level Software Engineer at Taro Community profile pic
Mid-Level Software Engineer at Taro Community

A year back I joined a Big Tech company as a mid-level software engineer. I had 5 years of work experience mostly in not-so-famous startups and I joined a large tech company after doing my masters.

It's been a year since I joined but I regularly feel like I don't belong here. I go through alternating waves of confidence and self-doubt. When I am not able to debug simple issues in a new microservice, I feel dumb. I feel like the senior devs on my team are just able to solve everything and I am still struggling after a year. I have been through a round of layoffs and re-org and am not sure about the kind of work I will be doing in the future.

I want to be promoted to senior engineer level but constantly get feedback that I am not assertive, opinionated, and take more time than usual to complete ambiguous tasks. I see everyone getting promoted around me and I don't understand why I can't seem to be improving. I am very motivated and willing to slog hard, but it seems like I simply don't get it or am not smart enough. Everyone around me just feels smarter and more experienced.

I feel like moving to a smaller company with not-so-high coding standards and ditching big tech because it will be more up my forte. I am aware that I won't grow there. It just feels frustrating to be stuck at a junior-mid level, 7 years after my bachelor's. But I also know I am not at that level yet.

Any advice on how to go through this problem to the other side will be lovely.

Show more
Posted a year ago
228 Views
3 Comments