Seven days.
It sounded easy enough.
Han Luyi felt as if he had returned to his days at Dingsheng, sleeping less than five hours a day.
He wrote code at breakneck speed while using Sight to sniff out and fix every missed bug.
Su Niannian's launch plan had gone from v0.1 to v0.4, with the rollout process mapped out down to the minute.
Ma Xiaofei had finished filming the second video. After watching it, Han Luyi told him to change the title from "The Strongest AI Code Review Tool on the Internet" to "Possibly the Best AI Code Review Tool."
Ma Xiaofei was unconvinced. "Is there a difference?"
Han Luyi said, "Yes. The amount we pay when we get sued."
May 6.
At three in the morning, Su Niannian was still revising the wording of the promotional copy. At four, Han Luyi fixed the last edge case. He slept for three hours at six, then got up at nine and splashed some water on his face.
At ten o'clock, BugKiller v1.0 was announced on the official website and released under the name NullPointer. It went live simultaneously on the forum, V2EX, and Juejin. A notification was sent to the closed beta group. Seed users received emails. Ma Xiaofei's second video went up at the same time.
It was live.
Han Luyi sat at the desk in his room, staring at the numbers on the registration dashboard.
The first thirty minutes were quiet.
3.
7.
12.
A message from Su Niannian came in. "Only twelve?"
"Only half an hour."
"When I was at Beaver Technology working on the CodeReview product line—the kind sold externally—we had a team of twenty. Marketing coordinated a full promotional push, and we spent eight months on it. On the first day of the public launch, we got just over five hundred registrations."
"And?"
"And I want five hundred daily active users on day one too! Aaaah!"
The first code repository was connected. It was a Python Flask project with more than six thousand lines. BugKiller took fourteen seconds to run and reported seven bugs. The backend logs showed that the user opened the first detection result and stayed on the impact assessment section for forty-three seconds.
Eleven o'clock. 47.
Noon. 89.
Su Niannian stopped talking. She just kept sending screenshots of the updated numbers.
One in the afternoon. They broke one hundred and fifty. The growth curve was accelerating, with each hourly increase larger than the last. The classic slope of word-of-mouth spread. Closed beta users had begun sharing it in their own tech groups.
Han Luyi took a sip of water. His hands trembled a little. Not from nerves—three hours of sleep were starting to collect their debt.
Ma Xiaofei said, "The video's been up for three hours. The backend says more than a thousand people clicked from my video to BugKiller's registration page. Everyone, I, Ma Xiaofei, am the number one product-pushing king of the tech category."
Zhang Haoran said, "The top comment under your video says, 'The analysis of the second bug was insanely accurate.' You sure that isn't a planted comment?"
Ma Xiaofei said, "You're the planted one. That's a real fan of mine, okay?"
Zhang Haoran said, "Fine. Luyi, if this organic growth rate holds for three days, you can take the weekly active user numbers to meet investors."
Han Luyi said, "I haven't thought that far ahead."
Zhang Haoran said, "It's not far. Trust me."
At three in the afternoon, the post reached third place on the forum's trending list. Ma Xiaofei's video hit eighty thousand views.
A long comment beneath the post was rapidly rising.
"We've been using CodeSafe for two months since the closed beta. Today, we registered BugKiller and ran both on the same project. BugKiller found three bugs that CodeSafe had never reported. One of them was the same category as the issue that blew up in production last month—a race condition in connection reuse. That incident affected sixty thousand users, and it took us two days to track down and fix. This one was still hiding there, and CodeSafe never reported it at all.
"BugKiller's report said: 'Estimated trigger probability under high concurrency: approximately 12%. Estimated monthly affected users: 50,000–60,000. Fix path: modify the connection reuse logic on line 1247. Estimated change: 3 lines of code.'
"Three lines of code. Last time, it took us two days to investigate the exact same issue.
"Let me give an objective take: CodeSafe? Dogs wouldn't even use it."
Six hundred likes. A string of similar firsthand accounts followed beneath it.
At 4:12 in the afternoon, the backend went completely red.
API response times shot straight past the timeout threshold. Han Luyi opened the server panel. Request volume had surged fortyfold, and the source IPs were highly concentrated, all targeting the /api/scan endpoint.
It was a DDoS attack.
He activated Sight.
Server traffic spread out across his field of vision. Requests from normal users appeared as thin lines, moving in a steady rhythm. The attack traffic was completely different. Three dark-red torrents surged in from three IP ranges at once, dense enough to drown out the normal traffic.
A diagnosis surfaced above the attack sources:
Three steps.
Block the IP ranges. Add rate limiting. Enable CDN protection.
Seven minutes later, the monitoring dashboard turned from red to green.
He sent a message to the closed beta group. "We were down for a few minutes just now. Got hit by a DDoS attack. It's handled."
"Getting attacked on the first day of public beta?"
"Who's in such a hurry?"
"You handled it alone? In seven minutes???"
Han Luyi did not respond. He opened the official website and wrote an incident postmortem. The attack time, duration, source IP ranges, and targeted endpoint were all listed.
Half an hour later, a new post appeared on the forum, titled: "Guess Who Would Launch a DDoS Attack on BugKiller's Public Beta Day."
The top-liked comment said, "Let me lay out the timeline for everyone. The comparison post hit six hundred likes at 4:00 p.m. The DDoS attack came at 4:12. Twelve minutes. Seriously?"
The second said, "Last time it was fake-account posts. This time they went straight to DDoS. Next time, are they going to show up and smash his computer?"
The third was a technical discussion, and many people replied: "I work in security operations at a certain company, so let me give you some numbers. Our SOC has twelve people rotating shifts, with a full suite of automated monitoring. Our DDoS response SLA is thirty minutes—and that's after countless drills, with the scripts all prepared. He was alone. Seven minutes from detection to recovery. That's absurd!"
"The person above is talking about large companies with contingency plans. For a small team getting attacked for the first time, the normal process is: holy crap, why is it down → did the code blow up → spend ages checking logs before realizing it's DDoS → panic → submit a ticket to the cloud provider → wait for customer service → one or two hours would already be considered fast. Seven minutes? I wouldn't even have submitted my ticket yet."
"So is NullPointer one person or a team? One person built the product, one person fixed production, one person tanked a DDoS attack—does he have three heads and six arms?"
"They couldn't even beat one person with a DDoS. Seven minutes from attack to defense—instant noodles wouldn't even be ready yet."
Six in the afternoon.
Registered users: 476.
Connected code repositories: 527.
Total bugs detected: 3,847.
476. Su Niannian was still twenty-four short of her target of five hundred.
Nine at night.
Han Luyi took a bottle of water from the fridge and opened the backend.
Su Niannian called, buzzing with excitement.
"Luyi! Six hundred and twelve!!!"
"Do you know what that means?!"
"A team of twenty, resources from a major company, eight months of investment."
"On the first day of their public release, they got just over five hundred registrations."
"A product you made by yourself."
"Six hundred and twelve registrations on day one."
"One person beat an entire major-company team!"
Han Luyi said, "It was the two of us."
Su Niannian fell silent for a moment.
"Seriously, Luyi. You did it. We did it!"
After hanging up, Han Luyi looked at the drawing taped beside his monitor. Three black spots dotted the large ladybug's red shell.
He reached out and folded down the curled corner of the paper.
His phone vibrated again. Gu Siyue.
"Congratulations. The numbers look good."
"Lawyer Gu follows tech products too?"
"I follow my clients."
He replied, "Thanks."
Ma Xiaofei's second video had passed one hundred and fifty thousand views. The highest-upvoted comment read: "NullPointer, please make your public debut."
Han Luyi looked through the comments for a while, scrolled a bit more, then exited.
He opened his chat with Ma Xiaofei.
"For the next video, how about an interview? The BugKiller founder appearing on camera."
Ma Xiaofei replied instantly. "??? You're going public with your identity??"
"The product has reached this stage. Staying anonymous is pointless. Enterprise clients need to sign contracts. We can't exactly sign them as NullPointer."
"!!!"
"You can film it. Make an episode called 'Who Is NullPointer?' It'll get you some more followers too."
There was no reply for quite a while, and Han Luyi thought Ma Xiaofei might be hesitating.
Then a voice message arrived. When he tapped it open, Ma Xiaofei's barely contained excitement practically burst from the speaker.
"Old Han, do you know how long I've been waiting for this day?! I've already written three versions of the script, you know that? Three versions! Tomorrow! No, we can shoot tonight! I'll set up all the lights—"
Han Luyi did not know whether to laugh or cry. "Don't get ahead of yourself."
He put down his phone.
Then he activated Sight.
His experience had already reached 42%.
It had still been at 37% this morning.
The total bug detection count on the backend had stopped at 4,215. Behind every record was a developer who had connected a repository, and BugKiller had found a problem for them.
The experience bar jumped again.
He opened the Lark document Su Niannian had just updated, BugKiller Public Beta Day One Review. It was seven pages long. He scrolled to the final line, highlighted red and bold.
"Recommendation: Publicly reveal the founder's identity as soon as possible, converting NullPointer's community trust into brand equity."
"It's already being arranged."
Before you continue
Explore the wiki