Nilopus

นิยายโดยนิลโอปุส · Novels by Nilopus
ตอนที่ 1 / 25

3 ทุ่ม. 3 ตี.

13 พ.ค. 2569

ภูมิตื่นขึ้นพร้อมรสขมในปาก ไม่ใช่กลิ่นกาแฟค้าง ไม่ใช่ยาสีฟันที่ลืมแปรง — เป็นรสที่บอกเขาว่าวันนี้ก็จะเหมือนเมื่อวาน และเมื่อวานก็เหมือนเมื่อวานก่อน เป็นห่วงโซ่ของวันที่เริ่มแยกไม่ออกแล้วว่าผ่านมาแล้วกี่วัน

นาฬิกาบนโทรศัพท์ขึ้น 10:47

เขาจ้องเพดานสามวินาที ฟังเสียงพัดลมเก่าหมุนช้าๆ มีเสียงตุ๊กๆ แทรกในจังหวะ คล้ายข้อต่อของคนแก่ที่เริ่มสึก ผ้าห่มที่ไม่ได้ซักมาเดือนหนึ่งกองอยู่ที่หน้าอก กลิ่นเปรี้ยวจางๆ ลอยมาตามอากาศ ภูมิดมแบบไม่ตั้งใจ — แล้วก็ชินกับมัน เหมือนกับชินกับทุกอย่างในห้องนี้

เขายังนอนต่ออีกหน่อย ไม่ใช่เพราะง่วง แต่เพราะลุกขึ้นไปก็เท่านั้น

มือถือสั่น

"พี่ภูมิ ไหน standup"

ข้อความจากเป้ 11:02

ภูมิพิมพ์ตอบโดยไม่ลุก "มีของส่ง รอรับอยู่ ลงไปแล้วเดี๋ยวกลับมา"

ไม่มีของส่งใดๆ ทั้งสิ้น

เขาวางมือถือคว่ำหน้า แล้วยังนอนต่ออีกห้านาที — เพื่ออะไรไม่ทราบ บางทีก็เพื่อให้รู้สึกว่ายังควบคุมอะไรบางอย่างได้บ้าง อย่างน้อยก็เลือกได้ว่าจะลุกตอนไหน

11:15 เขาลุกขึ้นนั่ง ขอบเตียงเย็นใต้ฝ่าเท้า กระจกบานเล็กข้างเตียงสะท้อนภาพคนที่เขาไม่ค่อยจะอยากมอง ผมยุ่ง ขอบดำใต้ตาที่ติดทนเหมือนรอยสัก เครายังไม่โกนสามวัน เสื้อยืดสีดำเก่าตัวเดิมที่ใส่มาสองคืน

เขาคิดในใจว่าวันหนึ่งเขาจะต้องเริ่มออกกำลังกาย ความคิดนี้ผ่านมาในหัวทุกเช้าตอนตื่น และจางไปก่อนเดินถึงห้องน้ำทุกครั้ง

ห้องน้ำมีคราบยาสีฟันที่กระจก จานสบู่ที่ก้อนสบู่สุดท้ายเหลือบางเป็นแผ่น เขาไม่แปรงฟัน แค่ล้างหน้าด้วยน้ำเปล่า

เปิดตู้เย็น

ในนั้นมีกาแฟกระป๋อง Boncafé จากร้านเซเว่นสามขวด มาม่ารสต้มยำสี่ห่อ ซอสมะเขือเทศ Heinz ใบใหญ่ ขวดน้ำเปล่ารัดอยู่หลังสุดเหมือนถูกลืม

ภูมิหยิบกาแฟ ดื่มหมดในสี่อึก รสเย็นเข็มเหมือนน้ำเชื่อมผสมยา ความรู้สึกผิดเล็กๆ ที่แล่นมาเหมือนเคย — แต่จางลงทุกครั้งที่ทำ จนตอนนี้แทบไม่รู้สึก

จานในซิงค์มีสิบสองใบ ใบล่างสุดมีคราบแห้งที่อาจเป็นซอสมะเขือเทศ หรืออาจเป็นเลือดมะเขือเทศที่ปนกับน้ำลายของเขาเอง เขาเดินผ่านไป เหมือนทุกครั้ง

11:23

ภูมิเปิด MacBook ไฟสีน้ำเงินจ้าเข้าตา Slack มีจุดสีแดง 47 ข้อความ Pull request 6 อันรออ่าน comment จากทีมที่ส่งมาเมื่อ 9 โมง

เขาเลื่อนผ่าน เปิด Discord คุยเล่นกับเพื่อนสมัยจุฬาฯ ขำคลิป meme หนึ่งคลิป สามสิบวินาที แล้วค่อยกลับมา Slack

"@phum could you take a look at the staging bug" — พี่หนึ่ง 09:14

ภูมิพิมพ์ "looking now" ทั้งที่ยังเปิด Twitter อยู่อีกแท็บ

หน้าจอแบ่งเป็นสี่ส่วน VSCode Terminal Twitter Hacker News — ภูมิเคยอ่านบทความที่บอกว่าโปรแกรมเมอร์ที่ทำหลายอย่างพร้อมกันคือตำนาน ความจริงคือสมองสลับเร็ว ไม่ใช่ทำหลายอย่าง วันรุ่งขึ้นเขากลับมาทำเหมือนเดิม

bug ที่พี่หนึ่งบอกไม่ยาก เพียงแต่ไม่อยากดู เขาเปิด stacktrace มอง 8 วินาที แล้วเลื่อนไปแท็บอื่น

เดี๋ยวค่อยทำ

ในชีวิตของเขา "เดี๋ยวค่อยทำ" คือคำที่พูดบ่อยที่สุด มากกว่า "สวัสดี" มากกว่า "ขอบคุณ"

เที่ยงครึ่ง

มาม่าใส่หม้อร้อนน้ำเดือด ไข่ดาวขอบไหม้ ไม่ได้พลิก ภูมิยืนกินที่ซิงค์ ดู YouTube บนมือถือ คลิปยาวสี่นาทีเกี่ยวกับเทคโนโลยี React อะไรบางอย่างที่เขาไม่จำเป็นต้องรู้ แต่รู้สึกเหมือนทำงานเมื่อได้ดู

มาม่าหมด เขาเทน้ำซุปลงในหม้อ ตั้งไว้ในซิงค์เพิ่ม

13:45

แสงแดดบ่ายเข้ามาผ่านหน้าต่างที่ไม่ได้เปิดผ้าม่านมาเดือนหนึ่ง ฝุ่นลอยให้เห็น เป็นพื้นที่บางๆ ในอากาศที่เขาไม่เคยสังเกตเห็นมาก่อน ภูมิหรี่ตา หันหน้าไปจอ ปิดผ้าม่านอีกข้าง

เริ่ม VSCode จริงจัง อ่าน code เริ่มพิมพ์ ห้านาทีผ่าน Twitter notify มีคน reply tweet ที่เขาเขียนเมื่อคืนเรื่อง React Server Components

เขาเปิดดู เป็น thread ดราม่าเล็กๆ คนต่อว่ากัน เรื่อง Tailwind อยู่ในระดับศาสนา ภูมิอ่านครึ่งชั่วโมง ตอบ tweet สามอัน ได้ like ห้า อันหนึ่งโดน quote-tweet คนต่อสู้กลับ ภูมิอ่านต่ออีกยี่สิบนาที

15:00

ขวดที่สอง

ภูมิรู้ว่าตัวเองดื่มเยอะเกินไป แต่ไม่ใช่ทุกวัน — มันแค่วันนี้เพิ่มเอง เป็นข้ออ้างที่เขาให้ตัวเองมาสามปี

16:30

พี่หนึ่งทักใน DM "บั๊กล่ะ"

ภูมิตอบ "กำลังทำๆ จะ push ใน 30 นาที"

เขายังไม่ได้เริ่ม

อีกสามสิบห้านาทีต่อมาเขา push อะไรบางอย่างที่ดูเหมือน "ฉันแก้แล้วนะ" แต่ก็ยังไม่ใช่ พี่หนึ่งดู PR สามนาทีแล้วเขียน "this changes some behavior outside the scope of the bug fix. revert and try again"

ภูมิรู้สึก stomach drop เล็กๆ พิมพ์ "got it" แล้วปิดแล็ปท็อปสิบนาที ลุกเดินไปเปิดประตูออกระเบียง

ลมเย็น ฟ้าเริ่มมืด นกที่ไหนสักที่ร้องเสียงดัง คอนโดข้างๆ มีแสงเหลืองในห้องของใครคนหนึ่งที่กำลังนั่งกินข้าวเย็น เห็นเงาสองคน เห็นมือจับช้อน ภูมิยืนมองสิบวินาที

เขาคิดในใจว่าเขายังไม่ได้กินข้าวเย็น แต่ก็ยังไม่หิว ดูดูแล้ว เขาน่าจะไม่หิวอะไรเลยทั้งวัน นอกจากกาแฟ — ตอนนี้ขวดที่สาม

18:00

มือถือสั่น "แม่"

ภูมิยกหู "ฮัลโหลแม่"

"ลูก กินข้าวเย็นยัง"

"เพิ่งกินครับแม่ ขนมจีนน้ำยา"

"จริงเหรอ"

เสียงแม่เบาลง "ลูกเสียงไม่ดี"

"ไม่หรอก ผมแค่เพิ่งตื่นจากนอนกลางวัน"

"ลูกไม่นอนกลางคืนอีกแล้ว"

"พรุ่งนี้ผมพยายามแม่ ผมต้องวางก่อนนะ มีประชุม"

"จ้าลูก"

"เดี๋ยวเสาร์ผมโทรหานะแม่"

"จ้าลูก"

เขาวางสาย แม่ยังอยู่อีกฝั่งสาย ไม่วาง เขารู้ — เขาวางก่อน

ในห้องเงียบกว่าเดิม เขายืนนิ่งสามวินาที แล้วก็เปิดแล็ปท็อปอีกครั้ง เพราะถ้าไม่เปิด เขาจะต้องอยู่กับความเงียบของห้อง

19:30

ภูมิเปิดแล็ปท็อปจริงจัง revert change ของตัวเอง อ่าน stacktrace ที่หลีกเลี่ยงมาทั้งวัน บั๊กไม่ยาก เพียงแค่ race condition เล็กๆ ในการ fetch user session ตอน rerender เขาแก้ได้ใน 40 นาที test pass push PR

ในขณะที่ทำงาน ภูมิรู้สึกอะไรบางอย่าง — ไม่ใช่ความสุข ไม่ใช่ flow แท้ๆ ที่บางคนพูดถึง — แต่เป็นความรู้สึกว่าตัวเองยังทำได้ ยังเก่งอยู่ ยังไม่ใช่ของเสียทั้งตัว แค่เลื่อนเวลาทำเอง

22:15

พี่หนึ่งกด approve แล้วเขียน "thanks. ship it ตอนคืนนี้ทันได้มั้ย ลูกค้าใหม่จะใช้ตอนเช้าพรุ่งนี้"

ภูมิตอบ "ทันครับ"

เขารู้ว่าทันจริงๆ เพียงต้องค้างถึงตี 3

ขณะ run integration test ภูมิเปิด Netflix เล่นซีรีส์ที่ดูมาแล้วครึ่งเรื่อง "Suits" รอบที่สี่ ไม่ใช่เพราะดี — เพราะมันคุ้นเคย

ภูมิดูซีรีส์เก่าซ้ำเพราะเขาไม่อยากเสี่ยงผิดหวังกับอะไรใหม่ๆ ดูซ้ำคือการรู้แล้วว่าจบยังไง ใช้สมองน้อยที่สุด เหมาะกับการทำพร้อม Pull request

23:50

มาม่ารสต้มยำห่อที่สองของวัน คราวนี้ใส่ไข่สองฟอง เพราะเขารู้สึกว่าตัวเองสมควรได้สิ่งที่ดีกว่าหลังจากทำงานมาทั้งคืน

00:30

deploy script ทำงาน วินาทีที่ 28 ผ่านไป green check mark ขึ้น production

ภูมิเอนหลังพิงเก้าอี้ ยิ้มแอบ ความรู้สึกถูกใจที่ ship ได้สำเร็จ มันก็มีบ้าง โมเมนต์เล็กๆ ของวันนี้

แต่ความรู้สึกนั้นจางในเก้าสิบวินาที

01:00

ภูมินอนลง เปิด Twitter อีกครั้ง "ดูอีกสักหน่อย" รู้สึก guilty pleasure ของการเลื่อนแม้ตัวเองรู้ว่าควรนอน เลื่อนผ่าน thread ที่คนต่อว่ากัน เรื่องอะไรไม่จำ — สมองรับเข้าไป ทิ้งออกมา รับเข้าไป ทิ้งออกมา

02:17

ภูมิหันมาดูเพดานอีกครั้ง พัดลมยังหมุน ตุ๊กๆ เหมือนเดิม

ในใจมีคำพูดที่ไม่ใช่คำพูด เป็นความรู้สึกที่ตกตะกอนทุกคืนตอนหลับ ว่าวันนี้ก็เหมือนเมื่อวาน แต่ก็ไม่เป็นไรหรอก พรุ่งนี้ก็เหมือนเดิม

อยู่กับมัน เป็นคนกลางคืน เป็น programmer ที่เก่งแบบนี้แหละ — เขาเคยอ่านใน Reddit ว่าพวก senior engineer ที่เก่งสุดส่วนใหญ่นอนไม่เป็นเวลา กินไม่เป็นเวลา และเขาเชื่อมันมาก เพราะมันสบาย — ไม่ต้องเปลี่ยน

03:04

มือถือสั่น

"พี่ภูมิ พรุ่งนี้มีพนักงานใหม่เข้านะ UX designer ชื่อใบเตย เห็นว่าเก่งมาก พี่หนึ่งบอก welcome session 10 โมง อย่าสายล่ะ"

จากเป้

ภูมิอ่าน เลื่อนผ่าน

ในชั่วขณะเขาคิดว่าจะตอบอะไรเฉพาะตัวสักหน่อย แต่นิ้วโป้งของเขาเล่นทำเป็นปฏิกิริยาแล้ว — กดผ่าน

ภูมิหยิบมาม่ารสต้มยำห่อที่สามของวันออกจากตู้เย็น — ไม่ เปลี่ยนใจ ปิดตู้เย็นเฉยๆ

03:48

ปิดตา

ลมหายใจสุดท้ายก่อนหลับ เขาได้กลิ่นเปรี้ยวจางๆ ของผ้าห่ม ตามด้วยกลิ่นเหงื่อของตัวเอง ไม่หอม ไม่เหม็น — แค่ไม่ใช่กลิ่นของคนที่ตื่น 7 โมง

นอกหน้าต่าง กรุงเทพยังไม่หลับ มีรถสองสามคันวิ่งผ่าน เสียงสุนัขที่ไหนสักที่เห่ายาว แล้วก็เงียบ

04:02

ภูมิหลับ

โทรศัพท์เขายังเปิดอยู่ แสงสีฟ้าสะท้อนบนเพดาน เหมือนดาว แต่ไม่ใช่ดาว

3 PM. 3 AM.

Phum woke with a bitter taste in his mouth. Not stale coffee. Not forgotten toothpaste. A taste that told him today would be like yesterday — and yesterday had been like the day before, and somewhere along that chain the days had stopped separating themselves.

The clock on his phone read 10:47.

He stared at the ceiling for three seconds, listening to the old fan turn slowly. A clicking sound caught in the rhythm, like the joints of an old man beginning to wear out. The unwashed blanket — a month, maybe more — sat on his chest. A faint sour smell drifted in the air. He inhaled it without meaning to, and the smell, like everything else in this room, was familiar.

He stayed in bed a little longer. Not because he was tired. Because getting up wouldn't lead anywhere.

His phone vibrated.

"P'Phum, where you at, standup?"

A message from Pae. 11:02.

Phum typed without sitting up: "Delivery coming. Be back in a sec."

There was no delivery.

He set the phone face-down and stayed another five minutes — for what, he didn't know. Maybe just to feel that he was still in control of something. At least he could choose when to stand up.

At 11:15 he sat up. The edge of the bed was cold under his feet. The small mirror beside the bed showed a face he didn't really want to look at: hair tangled, dark circles tattooed under his eyes, three days of unshaved stubble, the same black T-shirt he'd worn for two nights running.

He thought, as he did every morning: one day I'll start exercising. The thought always passed through his head when he woke, and faded before he reached the bathroom.

The bathroom mirror had toothpaste stains. The soap dish held a thin sliver of what used to be soap. He didn't brush his teeth. Just splashed water on his face.

He opened the refrigerator.

Inside: three cans of Boncafé cold brew from 7-Eleven, four packs of tom yum instant noodles, a giant bottle of Heinz ketchup, a single bottle of plain water hidden in the back like it had been forgotten.

Phum took a coffee. Drank it in four pulls. The taste was sharp and chemical, like syrup mixed with medicine. The small flicker of guilt that always came when he drank that early was barely there anymore. He had worn it down.

There were twelve plates in the sink. The bottom one had a dried streak that might have been ketchup, or might have been the dried blood of ketchup mixed with his own saliva. He walked past it. Like every day.

11:23.

Phum opened his MacBook. The blue glow hit his eyes. Slack had forty-seven unread messages and a red dot. Six pull requests waiting. Comments from the team sent at nine in the morning.

He scrolled past. Opened Discord first, chatted with university friends, laughed at a meme video for thirty seconds, then switched back to Slack.

"@phum could you take a look at the staging bug" — P'Neung, 09:14.

Phum typed "looking now" with Twitter still open in another tab.

His screen was divided into four: VSCode, Terminal, Twitter, Hacker News. He'd once read an article saying programmers who multitasked were a myth — that the brain was simply switching fast, not doing multiple things. He'd agreed with it. The next day he went back to doing exactly what he was doing now.

The bug P'Neung mentioned wasn't hard. He just didn't want to look at it. He opened the stacktrace, stared at it for eight seconds, and switched to another tab.

I'll do it in a bit.

In his life "I'll do it in a bit" was the phrase he said most. More than "hello." More than "thank you."

Twelve-thirty.

Instant noodles into boiling water. A fried egg with burnt edges, never flipped. He ate standing at the sink, watching a YouTube video on his phone — four minutes of someone explaining a React feature he didn't need to know but felt productive watching.

When the noodles were gone he poured the broth into the pot and left it there. Added it to the pile in the sink.

13:45.

The afternoon sun came through the window — the curtain hadn't been opened in a month. Dust floated in thin layers in the air, layers he had never noticed before. He squinted, turned his face to the screen, closed the curtain on the other side too.

He opened VSCode for real. Started reading the code. Started typing. Five minutes passed. Twitter notified him — someone had replied to a tweet he'd written the night before about React Server Components.

He opened it. A small drama-thread, people arguing. Tailwind worship at religious levels. Phum read for half an hour. Replied to three tweets. Got five likes. One was quote-tweeted. The other person fought back. He read for another twenty minutes.

15:00.

Second can.

Phum knew he was drinking too much, but it wasn't every day — just today, a little more. It was the excuse he'd been giving himself for three years.

16:30.

P'Neung in DM: "the bug?"

Phum typed back: "on it, push in 30 mins."

He hadn't started.

Thirty-five minutes later he pushed something that looked like *I fixed this, see?* — but wasn't. P'Neung looked at the PR for three minutes and wrote: "this changes some behavior outside the scope of the bug fix. revert and try again."

Phum felt his stomach drop slightly. He typed "got it" and closed the laptop for ten minutes. Got up and opened the balcony door.

The wind was cool. The sky had started to darken. A bird was calling loudly somewhere. In the condo next door, a yellow light glowed in someone's room — somebody sitting down to dinner. He could see two silhouettes, hands holding spoons. He stood watching for ten seconds.

He thought he hadn't eaten dinner yet. He wasn't hungry. Now that he thought about it, he hadn't really been hungry all day, except for coffee — now the third can.

18:00.

His phone vibrated. *Mom.*

He picked up. "Hello, Mae."

"Have you eaten dinner, son?"

"Just did, Mae. Khanom jeen, the red curry kind."

"Really?"

Her voice softened. "Your voice doesn't sound good."

"No, I just woke up from a nap."

"You're not sleeping at night again."

"I'll try, Mae. I have to go — got a meeting."

"All right, son."

"I'll call Saturday, Mae."

"All right, son."

He hung up. She was still on the line, not hanging up. He knew that. He hung up first.

The room was quieter than before. He stood still for three seconds. Then opened the laptop, because if he didn't open it he would have to sit with the silence of the room.

19:30.

Phum opened the laptop for real this time. Reverted his own change. Read the stacktrace he'd been avoiding all day. The bug wasn't hard — a small race condition fetching user sessions on rerender. He fixed it in forty minutes. Tests passed. Pushed the PR.

While he worked he felt something — not happiness, not the flow that some people talk about — but a feeling that he could still do this. That he was still good at something. Not damaged goods. Just delayed.

22:15.

P'Neung hit approve and wrote: "thanks. ship tonight if you can — new client uses it tomorrow morning."

Phum typed: "got it."

He knew he could ship it. He just had to stay up till three.

While the integration tests ran he opened Netflix. *Suits.* Fourth time through. Not because it was good. Because it was familiar.

He watched old shows on repeat because he didn't want to risk being disappointed by something new. Rewatching meant already knowing the ending. The minimum brain. Perfect for running alongside a pull request.

23:50.

Second tom yum of the day. This time with two eggs, because he felt he deserved something better after working all night.

00:30.

The deploy script ran. Twenty-eight seconds. A green check mark hit production.

Phum leaned back in his chair, smiled a little. The small satisfaction of a successful ship — it was something. A small moment of the day.

The feeling faded in ninety seconds.

01:00.

He lay down. Opened Twitter again. *Just a little more.* The guilty pleasure of scrolling when he knew he should sleep. He scrolled past a thread of people arguing. About what, he couldn't remember. The brain receiving, dumping, receiving, dumping.

02:17.

He looked at the ceiling again. The fan was still turning. The same clicking sound.

In his head there were words that weren't quite words — the feeling that settled into him every night just before sleep — that today had been like yesterday, but it was okay. Tomorrow would be the same.

Live with it. Be a night person. Be a programmer good in this way — he'd read on Reddit that the best senior engineers mostly slept irregular hours and ate irregular meals. And he believed it. Hard. Because it was comfortable. Because it meant he didn't have to change.

03:04.

His phone vibrated.

"P'Phum, new hire coming in tomorrow — UX designer, her name's Baitoey, supposedly very good. P'Neung says welcome session at 10 am. Don't be late."

From Pae.

Phum read it. Scrolled past.

For a second he thought about replying with something specific. But his thumb had already swiped past on reflex.

He took a third pack of tom yum out of the fridge. Then changed his mind. Closed the fridge.

03:48.

Eyes closed.

The last breath before sleep: the faint sour smell of the blanket, followed by his own sweat. Not perfumed. Not foul. Just not the smell of someone who wakes at seven in the morning.

Outside the window, Bangkok was still awake. A car or two passed. A dog barked somewhere, long, then silence.

04:02.

Phum was asleep.

His phone was still on. The blue light reflecting on the ceiling — like stars, but not stars.

晚上九点。凌晨三点。

阿普醒来时,嘴里有股苦味。不是隔夜的咖啡,也不是忘了刷的牙膏——那是一种味道,告诉他今天会和昨天一样。而昨天又和前天一样。在那条链子的某处,日子已经分不开了。

手机上的时间是10:47。

他盯着天花板看了三秒,听着旧吊扇缓缓转动,夹杂着咔嗒咔嗒的声音,像一个开始磨损的老人的关节。一个月没洗的被子堆在胸口,空气中飘着淡淡的酸味。他无意识地嗅着,然后就习惯了——就像他习惯了这房间里的一切。

他又躺了一会儿。不是因为困,而是因为起来也没有用。

手机震动了。

"阿普哥,你跑哪去了,standup呢?"

阿派发来的,11:02。

阿普没坐起来就回了:"有快递到了,我下去取一下就回来。"

根本没有快递。

他把手机扣在床头,又躺了五分钟——为了什么,他自己也不知道。也许只是为了让自己感觉还能控制点什么。至少他能选择什么时候起床。

11:15,他坐了起来。床沿冰凉。床边那面小镜子映出一张他不太想看的脸:头发凌乱,眼下的黑圈像刺青一样固定不退,三天没刮的胡渣,连着两晚没换的同一件黑T恤。

他想着,像每天早上想的一样:总有一天我要开始锻炼。这个念头每天醒来时都会浮现,然后在走到浴室之前消散。

浴室的镜子上有牙膏的印迹。肥皂盒里只剩薄薄的一片肥皂的残余。他没刷牙。只用清水冲了一下脸。

打开冰箱。

里面有三罐7-11买的Boncafé冷萃咖啡,四包冬阴功味的方便面,一大瓶亨氏番茄酱,还有一瓶白水被挤在最后面,像是被遗忘了。

阿普拿了罐咖啡。四口就喝光了。味道又冷又冲,像糖浆混着药水。每次这么早喝时心里都会闪过的那点愧疚,如今已经几乎感觉不到。他把它磨平了。

水槽里有十二个盘子。最下面那个盘子上有一道干涸的痕迹,可能是番茄酱,也可能是干掉的番茄酱混着他自己的唾液。他走过去——和每天一样。

11:23。

阿普打开MacBook。蓝光照在眼睛上。Slack上有四十七条未读消息,红点亮着。六个待审的pull request。早上九点队友发来的评论。

他滑过去。先打开Discord,和大学时的朋友聊几句,看一个表情包视频笑了三十秒,然后才回到Slack。

"@phum could you take a look at the staging bug"——阿能哥,09:14。

阿普打字回复:"looking now"——同时Twitter还开着另一个标签。

他的屏幕分成四块:VSCode、Terminal、Twitter、Hacker News。他曾经读过一篇文章说,会一心多用的程序员是个传说——大脑只是切换得快,而不是同时做多件事。他当时认同。第二天他又回到了和现在一模一样的做法。

阿能哥说的bug其实不难。他只是不想看。他打开stacktrace,看了八秒,切到了另一个标签。

待会儿再做。

在他的人生里,"待会儿再做"是他说得最多的话。比"你好"多。比"谢谢"多。

十二点半。

方便面下进沸水。一个边缘焦黑、没翻过面的煎蛋。他站在水槽边吃,边吃边在手机上看YouTube——一段四分钟的视频,某人解释一个React功能。他不需要知道,但看着觉得自己在工作。

面吃完了,他把汤倒回锅里,留在水槽里,堆到那一摞的最上面。

13:45。

下午的阳光透过窗户照进来——那扇窗户的窗帘已经一个月没拉开过。灰尘在空气中悬浮成薄薄的层,他以前从没注意过。他眯起眼,转过脸朝向屏幕,又把另一边的窗帘也拉上。

正经地打开了VSCode。开始读代码。开始打字。五分钟过去了。Twitter提示——有人回复了他昨晚写的那条关于React Server Components的推。

他点开看。一个小的争论串,人们在互相挑衅。Tailwind信仰已经到了宗教级别。阿普读了半个小时。回了三条推。得了五个赞。其中一条被quote-tweet了。对方反击。他又读了二十分钟。

15:00。

第二罐。

阿普知道自己喝得太多了,但不是每天——只是今天多了一点而已。这是他给自己讲了三年的借口。

16:30。

阿能哥私信:"那个bug呢?"

阿普打字:"正在做,30分钟后push。"

他还没开始。

三十五分钟后,他push了一些看起来像是"我修好了哦"但其实并不是的东西。阿能哥看了那个PR三分钟,然后写道:"this changes some behavior outside the scope of the bug fix. revert and try again."

阿普胃里一沉。他回了一句"got it",合上笔记本电脑十分钟。起身走到阳台,推开门。

风是凉的。天开始暗下来。哪里有只鸟在大声叫。隔壁那栋公寓的某个房间亮着黄灯,有人正坐下来吃晚饭。他能看到两个剪影,看到拿着勺子的手。他站着看了十秒。

他想他还没吃晚饭。但他不饿。仔细想想,他一整天都没真正觉得饿,除了咖啡——现在第三罐。

18:00。

手机震动。妈妈。

他接起电话。"喂,妈。"

"儿子,吃晚饭了吗?"

"刚吃了,妈。咖喱米粉。"

"真的?"

她的声音变轻了。"你声音不对啊。"

"没有啦,我刚午睡起来。"

"你又熬夜了。"

"明天我尽量,妈。我得先挂了,有个会。"

"好,儿子。"

"星期六我打给您,妈。"

"好,儿子。"

他挂了电话。她还在另一端,没挂。他知道。他先挂的。

房间比刚才更安静了。他站着不动了三秒。然后又打开笔记本电脑——因为如果不打开,他就得和这个房间的安静坐在一起。

19:30。

阿普这次真正地打开了笔记本电脑。把自己的改动revert掉。读完一整天都在回避的stacktrace。那个bug不难——只是一个小的race condition,在rerender时获取用户session。他四十分钟就修好了。测试通过。Push了PR。

工作的时候阿普感到某种东西——不是快乐,不是某些人讲的真正的flow——而是一种他还能做到这件事的感觉。他还是擅长这个的。他不是完全废掉。他只是把自己推迟了。

22:15。

阿能哥点了approve,写道:"thanks. ship tonight if you can——新客户明早就要用。"

阿普回:"got it。"

他知道自己能赶上。只是得熬到凌晨三点。

跑integration test的时候,阿普打开了Netflix。《金装律师》(Suits)。第四遍。不是因为它好看——因为它熟悉。

阿普反复看老剧,因为他不想冒险被新东西失望。重看意味着已经知道结局。脑子用得最少。最适合和pull request并行。

23:50。

今天的第二包冬阴功面。这次加了两个蛋,因为他觉得自己整晚工作之后,值得吃得好一点。

00:30。

Deploy脚本运行。二十八秒。绿色的勾出现在production上。

阿普向后靠在椅子上,偷偷笑了。成功ship的那点小满足——总算是有的。今天的一个小时刻。

那种感觉在九十秒里就淡了。

01:00。

他躺下。又打开了Twitter。"再看一会儿。"明知该睡却还在滑动的那种愧疚的快感。他滑过一串人们互相争论的thread。在争什么,他记不得了。脑子在接收、丢弃、接收、丢弃。

02:17。

他又看向天花板。吊扇还在转。咔嗒咔嗒,和之前一样的声音。

脑子里有些不是真正的话语——是每晚临睡前沉淀下来的那种感觉——今天和昨天一样,但没关系。明天也会一样。

接受它吧。做个夜猫子。做这种擅长的程序员吧——他在Reddit上看过,最厉害的senior engineer大多都睡得不规律、吃得不规律。他对此深信不疑。因为这样很舒服——他不用改变。

03:04。

手机震动。

"阿普哥,明天有个新人来——UX设计师,叫拜黛,听说很厉害。阿能哥说10点欢迎会,别迟到啊。"

阿派发的。

阿普读完。滑过去。

有一瞬间他想回点什么有针对性的话。但他的拇指已经反射性地滑过去了。

他从冰箱里拿出今天的第三包冬阴功面——然后改了主意。把冰箱关上。

03:48。

闭上眼。

睡前的最后一口气:被子上淡淡的酸味,然后是他自己身上的汗味。不香。不臭。只是不像一个早上七点醒来的人会有的味道。

窗外,曼谷还没睡。一两辆车驶过。一只狗在某处长长地叫了一声,然后是沉默。

04:02。

阿普睡着了。

他的手机还开着。蓝色的光反射在天花板上——像星星,但不是星星。

ตอนนี้เป็นยังไงบ้าง?

← กลับไปหน้าเรื่อง