Skip to content

Commit 51af28c

Browse files
committed
feat: edit & publish article.
1 parent dcf44e0 commit 51af28c

File tree

3 files changed

+67
-58
lines changed

3 files changed

+67
-58
lines changed
Lines changed: 47 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
---
22
title: 'A Most Intense Debugging Experience'
33
date: '2025-06-26'
4-
updated: '2025-06-26'
5-
draft: true
4+
updated: '2025-08-03'
5+
draft: false
66
tags: ['Career']
77
featuredImage: blog/career-debugging-nightmare.jpeg
8+
featured: true
89
summary: >
910
I'd been contracting with the company for 3 weeks. Production had an issue, and I was asked to
1011
help.
@@ -35,8 +36,8 @@ the lead engineer.
3536
## The Call
3637

3738
One day, I was plugging along, exploring the codebase and learning about the product. I received a
38-
Zoom call from the Product Manager. He mentioned that they were having some issues with the app, and
39-
was wondering if I could help to debug it. He mentioned that the Lead Engineer was out of the
39+
Zoom call from the product manager. He mentioned that they were having some issues with the app, and
40+
was wondering if I could help to debug it. He mentioned that the lead engineer was out of the
4041
office, so they're checking in with me to see if I could help.
4142

4243
"Sure!" I said. I like to help out, and this seemed like a good opportunity to get to know the
@@ -45,66 +46,83 @@ product better.
4546
At first, I thought it might be a simple issue, nothing too serious. I thought perhaps they were
4647
giving me a chance to learn more as well as to understand how I approach problems.
4748

48-
I quickly realized that this was not the case.
49+
I quickly realized that **this was not the case.**
4950

5051
Soon, the Chief Technology Officer joined the call. Then the Chief Operating Officer. Then others...
5152
people I hadn't really met yet.
5253

53-
I learned that the issue was that users were unable to login.
54+
I learned more about the issue: **users were unable to sign in.**
5455

5556
At that point in time, I wasn't too familiar with the company's user base. I didn't know how many
5657
users were struggling to sign in, and I didn't know how many companies or businesses that the issue
57-
impacted. I honestly didn't want to know.
58+
impacted... and honestly, I _didn't want_ to know.
5859

59-
A big part of staying calm and collected in these situations is to not let the situation get to you.
60-
Whether the bug or issue is affecting one customer, one thousand, or one million, the root cause is
61-
the same.
60+
An useful strategy to remain calm and collected during these situations is this: **do not let the
61+
situation get to you.** Whether the bug or issue is affecting _one_ customer, _one thousand_, or
62+
_one million_, **the root cause is the same.** The potential complexity of the solution **does not
63+
increase** with the number of users affected! This should be good news.
6264

63-
I was able to help them debug the issue, and we were able to get the users back up and running...
64-
but wow, what an experience!
65+
Spoiler: I was able to help them debug the issue, and we were able to get the users back up and
66+
running... but wow, what an experience!
6567

66-
## The Debugging
68+
## The Debugging Process
6769

68-
To debug, I was told where the login page was located in the repository, so I could start there. I
69-
was guided to a line in the mid-500s where the Product Manager thought the issue might be ocurring.
70+
To debug, I was told where the login page was located in the repository, so I could start there.
71+
72+
I was guided to a line in the **mid-500s** where the product manager thought the issue might be
73+
ocurring.
7074

7175
I began by adding some server-side logs to see if I could get any more information. I checked out a
72-
hotfix branch, committed the log statements and pushed, and the Product Manager was able to deploy
73-
this branch to a specific environment for testing. Thank goodness he was able to do that, because I
74-
was so fresh in the system that there was no way I'd be deploying anything!
76+
hotfix branch, committed the log statements and pushed, and the PM was able to deploy this branch to
77+
a specific environment for testing. Thank goodness he was able to do that, because I was so fresh in
78+
the system that there was no way I'd be deploying anything!
79+
80+
> **Learning Opportunity #1: Awareness.** When onboarding engineers, review the app from top to
81+
> bottom. Keep it to a high level if necessary, but always cover all the points _from local setup
82+
> through deployment and hosting._ There's no need to hide facets of an application from your team!
83+
> Sharing abundantly could save you in the future. If I understood how this application was normally
84+
> deployed, I could have more quickly understood the fastest path to debugging it.
7585
7686
After deploying, the CTO was able to see the logs on production (which I didn't have access to yet),
7787
and would paste the log results into our Zoom chat.
7888

89+
> **Learning Opportunity #2: Transparency.** Every engineer on your team should have immediate
90+
> access to the logging system. This should not be difficult to find.
91+
7992
I realized we weren't seeing anything meaningful, and most of the logs weren't even showing up, so
8093
the problem must be higher up in the file.
8194

8295
I added more logs starting at the very beginning of the file, and we deployed again.
8396

8497
There! Data. We started to see some details.
8598

86-
The login page itself was lacking in error handling, and there were some linear queries that were
87-
being made to the database when the page loads and users attempt to log in.
99+
The login page itself was lacking in error handling, and there were some linear SQL queries that
100+
were being made to the database when the page initially loads and then when users attempt to log in.
88101

89102
One of the log results after a query showed us that the query was returning an empty result set for
90103
a specific field... this empty set wasn't accounted for via error handling, and an empty value broke
91-
everything down the line!
104+
everything _else_ down the line!
92105

93106
The COO was able to pinpoint the specific data issue in the database, and we were able to fix it.
94107

95-
Voila!
108+
**Voila!**
109+
110+
> **Learning Opportunity #3: Test, test, test... automatically.** Proper error handling and
111+
> automated tests would have caught this error long before it became a production issue. Defensive
112+
> programming is a must... always expect the worst-case scenario, and account for it in code. Then,
113+
> automate some tests to replicate those scenarios and ensure they pass regularly.
96114
97-
Overall, this process took about an hour. It was intense, there was about a dozen people on the call
98-
at one point... but my blinders were on. I was focused on the code, getting answers, and finding a
99-
fix.
115+
Overall, this debugging process took about an hour. **It was intense,** there was about a dozen
116+
people on the call at one point... but my blinders were on. I was focused on the _code, getting
117+
answers, and finding a fix._
100118

101119
## The Aftermath
102120

103121
After the fix, I was able to get a better understanding of the codebase, and I learned more about
104-
the actual impact of the outage that I helped troubleshoot. Apparently, this issue was a major one,
105-
and the company was grateful for my help.
122+
the actual impact of the outage that I helped troubleshoot. Apparently, this issue was a _major
123+
problem_, and the fix was met with relief. The company was grateful for my help.
106124

107-
I found out the next day that the reason the Lead Engineer was out of the office was because he quit
108-
without notice after over a decade with the company.
125+
I found out the next day that the reason the lead engineer was out of the office was because he
126+
quit, without notice.
109127

110128
The next chapter is to be written...
Lines changed: 15 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: 'New Venture, Old Code'
33
date: '2025-06-09'
4-
updated: '2025-06-26'
4+
updated: '2025-08-03'
55
draft: false
66
tags: ['Career']
77
featuredImage: blog/career-house-of-cards.jpeg
@@ -10,32 +10,23 @@ summary: >
1010
first tech role... Serving customer needs. Driving revenue.
1111
---
1212

13-
I've been working in some old software lately.
13+
I've been working in some old software lately. Software that's been _running well since before I
14+
landed my first tech role_... Serving customer needs. Driving revenue.
1415

15-
Software that's been running well since before I landed my first tech role... Serving customer
16-
needs. Driving revenue.
16+
Vanilla JavaScript and jQuery abound. There's no package manager or 3rd-party dependencies bundled
17+
up. There's very little automation. Formatting is inconsistent, there's no linting.
1718

18-
Vanilla JavaScript and jQuery abound.
19+
I feel the compulsive desire to just jump in, and... change things. Format code, remove dead code,
20+
apply consistency and rules to keep things tidy moving forward.
1921

20-
Little automation.
22+
Do you know what would happen if I do this, though?
2123

22-
Inconsistent formatting.
24+
Collapse. Breakage. Errors. Implosion. Stress. Broken trust. Failed deployments.
2325

24-
No linting.
26+
It's brittle, fragile.
2527

26-
I want to jump in and just... change things... format code, remove dead code, apply consistency and
27-
rules to keep things tidy moving forward.
28-
29-
Do you know what would happen if I do this though?
30-
31-
Collapse. Breakage. Errors. Implosion. Stress. Broken trust.
32-
33-
It's fragile.
34-
35-
Also, smart people built it.
36-
37-
People with business objectives, who had deadlines, plans... people who love to code, who love their
38-
craft.
28+
Yet also: **smart people built it.** People with business objectives, who had deadlines, plans...
29+
people who love to code, who love their craft.
3930

4031
How would you feel if you welcomed someone into your shop, and the first thing they did was try to
4132
rearrange the furniture and reorganize the tools?? It wouldn't be well-received.
@@ -47,15 +38,10 @@ I'm there... deciphering decisions. Analyzing structure. Trying to gain understa
4738
It's been an exercise in practicing restraint. I'm being observant, asking tons of questions,
4839
learning the history. Learning the "why."
4940

50-
Before I can help drive impactful change... first comes understanding.
51-
52-
Then planning.
41+
Before I can help drive impactful change... first comes understanding. Then planning. Then pitching
42+
solutions, and perhaps getting some adoption.
5343

54-
Then pitching solutions, and maybe some adoption.
55-
56-
Then execution. As a team. Everyone leveling up together.
44+
Then finally: execution. As a team. Everyone leveling up together.
5745

5846
It's been a refreshing change from working on greenfield tech! I feel like I'm learning and growing,
5947
and it's been fun... and even a little nostalgic to encounter legacy code.
60-
61-
Onward!

src/styles/global.scss

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,3 +248,8 @@ section {
248248
position: relative;
249249
aspect-ratio: 9 / 16;
250250
}
251+
252+
blockquote {
253+
border-left: 4px solid var(--color-accent);
254+
padding: 1rem 1rem 0.3rem 1rem;
255+
}

0 commit comments

Comments
 (0)