เธอช่วยฉันโดยไม่บอก
สิบเอ็ดวันต่อมา
ภูมิ deploy ฟีเจอร์ใหม่ของ Inventory v2 ตอนตี 1 — ช่อง "แก้ไขสินค้า" ใหม่ที่เพิ่มฟิลด์ "ขั้นต่ำการสั่ง" สำหรับร้านอาหาร เป็นฟีเจอร์ที่ทีมรอมาสองอาทิตย์
CI ผ่านทุกเทส regression test ขึ้น production สีเขียวเรียบร้อย
ภูมิเอนหลังพิงเก้าอี้ ยิ้ม
มาม่าห่อที่สองของวัน
01:42 — เปิด Twitter ดู — เลื่อนผ่าน thread เก่าจากเมื่อบ่าย — หลับ
นาฬิกาในห้องเขายังหมุนเสียงตุ๊กๆ เหมือนเดิม แต่เร็วๆ นี้เขาเลิกได้ยินมัน
08:13
โทรศัพท์สั่นแบบที่บอกว่าเป็น Slack ไม่ใช่ไลน์ ภูมิรู้ทันที — เพราะ Slack แบบที่ติ๊ก หรือสั่นแล้วสั่นเลย — เขาจำเสียงนั้นในกระดูก
มือเขาคลำหา ตาเปิดครึ่ง
@channel — พี่หนึ่ง 08:11
"@phum @baitoey production ตอนนี้ user ร้องเรียนเข้ามาเป็นกระบุง เกี่ยวกับช่องใหม่ที่ deploy คืนนี้"
ภูมิเปลี่ยนความหลับเป็นความตื่นในสามวินาที
08:14
"ดูอยู่ครับ"
เขาเปิดแล็ปท็อปจากที่ตั้งข้างเตียง รหัสผ่าน ลืมจริงจัง — พิมพ์ผิด — เข้าได้
Slack #support channel — มีข้อความ 8 ข้อความใน 20 นาที
"ใส่ตัวเลขในช่องนี้ไม่ได้"
"ขั้นต่ำการสั่งคืออะไรครับ มันเป็นตัวเงินหรือจำนวน?"
"ใส่ 5 ก็ขึ้น error ใส่ 100 ก็ขึ้น error"
"พี่ลูกค้าอ่านไม่เข้าใจ"
ภูมิเปิด production — ทดสอบเอง — ใส่ "5" ในช่อง ขึ้น "ขั้นต่ำการสั่งต้องเป็นจำนวนเงิน" — แต่จริงๆ ฟีเจอร์ออกแบบไว้ให้เป็นจำนวนสินค้า ไม่ใช่จำนวนเงิน
ภูมิอ่าน UI text ที่เขาเขียนเอง
ช่อง: "ขั้นต่ำการสั่ง"
Placeholder: "ใส่จำนวน"
Error: "ขั้นต่ำการสั่งต้องเป็นจำนวนเงิน"
เขาเห็นปัญหาทันที — placeholder บอกว่า "จำนวน" ไม่บอกว่าเป็นอะไร — error บอกว่าจำนวนเงิน — กล่อง backend รับเป็นจำนวนสินค้า — ทุกอย่างผิดทาง
เป็นบัก UX ทั้งล็อต ไม่ใช่บัก code
เริ่มต้นทาง — เริ่มเขียนแก้ — แล้วสะดุดกับ notification
GitHub: New Pull Request — baitoey:fix-inventory-min-order-copy
ภูมิเปิดดู
PR เปิดเมื่อ 08:09 — ก่อน slack message ของพี่หนึ่งสองนาที
ใบเตยเห็นปัญหาก่อนใคร
ใน PR — เปลี่ยน text แค่ 3 ที่:
- "ขั้นต่ำการสั่ง" → "จำนวนขั้นต่ำที่ลูกค้าต้องสั่ง (เช่น 5 ชิ้น)"
- Placeholder "ใส่จำนวน" → "เช่น 5"
- Error "ขั้นต่ำการสั่งต้องเป็นจำนวนเงิน" → "ใส่จำนวนเป็นตัวเลขเท่านั้น (ไม่ต้องใส่บาท)"
PR description (เป็นภาษาอังกฤษ):
"users in #support reporting confusion that "ขั้นต่ำการสั่ง" reads as a price field. Updated copy + placeholder example to disambiguate. No backend change."
สะอาด ตรง อธิบายสั้น
ภูมิเปิดอ่านโค้ดเปลี่ยน 3 บรรทัด — มีลายเซ็น clean ทุกบรรทัด — ไม่มี whitespace แปลก ไม่มี comment ที่ไม่จำเป็น — แค่เปลี่ยนข้อความ
approval CI สีเขียวเรียบ
ภูมิรู้สึกสองอย่างพร้อมกัน
หนึ่ง คือความโล่ง — มีคนแก้ให้แล้ว เขาไม่ต้องเขียนเอง ตื่นเช้าขนาดนี้
สอง คือความรู้สึกที่ไม่ค่อยกล้าชี้ชัด — ใบเตย ที่เข้ามาทำงานได้ 11 วัน เห็นบัก UX ของเขาก่อนเขาเห็น แล้วแก้ให้แล้ว
ภูมิคลิก approve
merge
deploy
09:17 — production สี เขียว — text ใหม่ขึ้น
#support เริ่มเงียบ — มีคนตอบกลับ "อ๋อ เข้าใจแล้ว ครับ"
ภูมินั่งบนเตียง รู้สึกหลังเปียก — เขาตื่นมาทำงานในเสื้อยืดที่ใส่นอน
ภูมิคิดในใจที่ว่าอยากบอก "ขอบคุณ" — แต่จะพูดยังไงไม่ให้เก้อ ส่งไลน์? Slack DM? แท็ก @baitoey ใน #engineering ว่า "thx for the catch"?
เขาเลือกอย่างหลัง
09:24 — #engineering channel
"@baitoey thx for the UX catch on inventory min order — merged"
ใบเตยตอบใน 2 นาที
"👍"
แค่นั้น
ภูมินั่งเงียบ 30 วินาที
09:26
มือถือเข้าไลน์ — เป้
"ตื่นรึยังพี่ ฉิบหายล่ะ inventory ของพี่ปลาย stupid"
"ตื่นแล้ว แก้แล้ว"
"แก้ยังไง — ฉันยังไม่มา"
"ใบเตยส่ง PR ตอนแปดโมง"
เป้เงียบ 10 วินาที — ภูมิเห็นจุดสามจุดกระพริบในช่องพิมพ์ — ตำแหน่ง 3 รอบ จนเป้ส่ง
"เนียนนะคนนี้"
"กินข้าวเที่ยงกันมั้ย"
"พี่ออกไปได้ไง พี่ยังไม่ได้อาบน้ำเลยอ่ะ"
"…"
10:30
ภูมิอาบน้ำ — เป็นครั้งแรกในรอบสองสัปดาห์ที่อาบน้ำตอนเช้าก่อนออกบ้าน
เขามาถึงออฟฟิศ 11:47
ใบเตยอยู่ที่โต๊ะ — หูฟัง MacBook สูง 8 ระดับ — ไม่หันมา
ภูมิเดินผ่านโต๊ะของเธอเพื่อไปโต๊ะตัวเอง ใจตอนนั้นมีคำที่จะพูด
"ใบเตย" — เธอเงยหน้า ดึงหูฟังข้างหนึ่ง
"ครับ?"
"ขอบคุณนะ — ที่ catch เรื่องเมื่อเช้า"
"ค่ะ"
"…ผมน่าจะ test copy ก่อน deploy"
"พี่ภูมิดูเหนื่อย คะ ทุกคนพลาดได้"
เธอใส่หูฟังกลับ — ก้มดูจอ
ภูมิเดินกลับโต๊ะ — หัวสมองในประโยค "พี่ภูมิดูเหนื่อยค่ะ" หมุนสามรอบ
เหนื่อย
คำสุภาพของเธอ
เขาเปิดแล็ปท็อป กดเปิด terminal — ก่อนเริ่มงานเขาเปิด GitHub PR ของใบเตยอีกครั้ง — อ่าน description ของเธอช้า
"users in #support reporting confusion that 'ขั้นต่ำการสั่ง' reads as a price field. Updated copy + placeholder example to disambiguate."
สำนวนเหมือนคนเขียนเรียงความที่ฝึกมานานพอ ที่จะคำนวณว่าจะใช้คำกี่คำให้พอดี
ภูมิคิดในใจ — *ผู้หญิงคนนี้ work เร็ว*
แต่จริงๆ ในใจที่ไม่กล้าพูดออกมา — *ผู้หญิงคนนี้ work เร็ว และเก่งกว่าผมในเรื่องนี้*
13:00 — meeting Inventory v2 sync
ใบเตยพูด 7 นาที — slide เรื่อง flow ของหน้า inventory ทั้งหมด — มี user journey 3 personas — มี edge cases ที่ภูมิไม่ได้คิด
ทีม engineering ฟังเงียบๆ
หลัง meeting พี่หนึ่งบอกกับภูมิ "พี่ใบเตยทำการบ้านมาเยอะมาก"
"ครับ"
"ภูมิ — ถ้าจะดี ภูมิควร spec review กับใบเตยก่อน implement"
ภูมิรู้ว่าเป็นคำเตือน
"ครับ"
14:30
ภูมิ pair กับใบเตยที่โต๊ะของเขา 1 ชั่วโมงตามที่นัดไว้
เธอเปิด Figma — แสดงการออกแบบของหน้า "เพิ่มสินค้า" ใหม่ — เธอถามเขาเรื่อง constraint ของ backend
ภูมิตอบทั้งหมด — บางคำถามเขาต้องค้น code ก่อนตอบ — บางคำถามใบเตยตอบเอง
มีโมเมนต์หนึ่งที่ใบเตยถามว่า "ถ้า user มีสินค้า 10,000 รายการ list page โหลดต่อหน้าเท่าไหร่ดีคะ?"
ภูมิคิด 4 วินาที "ผมเคยลอง 50 แต่ pagination ของเก่าใช้ offset ทำให้ slow ตอนหน้าเยอะๆ ถ้าจะดี ใช้ cursor"
ใบเตยพยักหน้า "ผมเตรียม design ไว้สำหรับ 25 ต่อหน้าค่ะ คุณจะปรับเป็น 50 ได้มั้ยถ้าใช้ cursor?"
"ได้"
"งั้นใช้ 50 ค่ะ"
เธอ shortcut ลงรายการในสมุดของเธอ
ภูมิสังเกตว่าเธอเขียนเป็น bullet ตัวอักษรไทยปนอังกฤษ มีลูกศรเล็กๆ เชื่อม
15:42 — pair จบ
"ขอบคุณค่ะพี่ภูมิ" ใบเตยบอก
"ครับ"
เธอลุกเดินกลับโต๊ะ
ภูมินั่งต่อ ทำงานต่อ ใน 30 นาทีต่อมา — เขาเสร็จงานหนึ่งที่ผัดมาเดือนหนึ่ง
19:38
เขาเลิกงานก่อนสองทุ่มเป็นครั้งที่สองในเดือนนี้
เดินลงตึก ฝนไม่ตก เห็นรถเมล์สาย 8 จอดที่ป้าย — เขาไม่ได้นั่งรถเมล์มาห้าปี แต่วันนี้เขาขึ้น เพราะเขายังไม่อยากกลับห้องที่ว่างเปล่า
นั่งติดหน้าต่าง
ลมจากกรุงเทพ — ฝุ่น น้ำมัน กับกลิ่นอาหารริมถนน — เข้าผ่านหน้าต่าง
ภูมิเปิดมือถือ ส่งข้อความหาน้องสาวที่ค้างมาตั้งแต่เมื่อวาน
"พี่ภูมิโอเคนะ น้อง ขอบคุณที่ถาม"
น้องตอบใน 1 นาที — "พี่ดูแลตัวเองด้วยนะ"
ภูมิ ตอบ "ครับ"
เขามองหน้าต่างต่อ — แสงไฟตามถนน — สีเหลือง สีแดง สีฟ้าของป้าย 7-11
แล้วคิดในใจสั้นๆ
ผู้หญิงคนนี้ work เร็วและเก่ง
แล้วเขาคิดต่อ — *ผมต้องเก่งกว่านี้*
ครั้งแรกในรอบหลายปี — ที่ความคิดนั้นไม่ทำให้เขาเศร้า แต่ทำให้รู้สึก… อะไรบางอย่างที่เขายังเรียกชื่อไม่ถูก
รถเมล์ผ่านป้าย — เขาลงต่อหนึ่งสถานี — เดินกลับห้องในระยะที่นานกว่าปกติ
She Helped Me Without Saying
Eleven days later.
Phum deployed a new Inventory v2 feature at 1 a.m. — a "Minimum Order" field for restaurants, a feature the team had waited two weeks for.
CI passed. Regression tests passed. Production turned green.
Phum leaned back in his chair, smiled.
Second pack of noodles for the day.
01:42 — opened Twitter — scrolled past an old thread from the afternoon — slept.
The fan in his room still made the same clicking sound. But lately, he had stopped hearing it.
08:13.
His phone buzzed in the way Slack buzzes — not LINE. Phum knew the difference. Slack vibrated and kept vibrating. He knew that sound in his bones.
His hand groped. His eyes half-opened.
@channel — P'Neung 08:11
"@phum @baitoey production right now — support is getting flooded with complaints about the new field deployed last night."
Phum turned sleep into alertness in three seconds.
08:14
"Looking now."
He opened his laptop from beside the bed. Password. Genuinely forgot — typed it wrong — got in.
#support — eight messages in twenty minutes.
"Can't enter a number in this field."
"What does 'minimum order' mean? Is it a baht amount or a quantity?"
"Enter 5, get an error. Enter 100, get an error."
"My customer can't figure it out."
Phum opened production — tested it himself — typed "5" into the field — error message: *Minimum order must be a baht amount.* But the feature was supposed to take a unit count, not a price.
Phum read the UI text he had written himself.
Field label: *Minimum order*
Placeholder: *Enter a number*
Error: *Minimum order must be a baht amount.*
He saw the problem instantly — the placeholder didn't specify what kind of number — the error message said baht — the backend accepted a count. Three pieces, three directions, all wrong.
A UX bug, not a code bug.
He started to fix it — pulled up the file — then a notification interrupted.
GitHub: New Pull Request — baitoey:fix-inventory-min-order-copy
Phum opened it.
PR opened at 08:09 — two minutes before P'Neung's Slack message.
Baitoey had seen the problem before anyone else.
The PR changed text in three places:
- *Minimum order* → *Minimum quantity customer must order (e.g. 5 pieces)*
- Placeholder *Enter a number* → *e.g. 5*
- Error *Minimum order must be a baht amount* → *Enter a number only (no baht symbol needed)*
PR description, in English:
"users in #support reporting confusion that 'ขั้นต่ำการสั่ง' reads as a price field. Updated copy + placeholder example to disambiguate. No backend change."
Clean. Direct. Short.
Phum read the three lines of changed code. Every line had the signature of someone who knew what clean looked like. No weird whitespace. No unnecessary comments. Just the words, fixed.
CI green.
Phum felt two things at once.
One — relief. Someone had fixed it. He didn't have to write it himself in the state he was in.
Two — a feeling he couldn't name yet. Baitoey, eleven days in, had seen his UX bug before he saw it, and fixed it for him.
Phum clicked *approve*.
Merge.
Deploy.
09:17 — production green — new text up.
#support quieted. "Oh, got it. Thanks," a few users replied.
Phum sat on the edge of the bed. His back was damp. He had woken up working in the T-shirt he had slept in.
In his head he wanted to say *thank you* — but how, without it being awkward? LINE? Slack DM? Tag @baitoey in #engineering with "thx for the catch"?
He went with the last.
09:24 — #engineering
"@baitoey thx for the UX catch on inventory min order — merged"
Baitoey replied in two minutes.
"👍"
That was all.
Phum sat in silence for thirty seconds.
09:26.
LINE from Pae.
"P', you up? Your inventory thing was a disaster."
"Up. Fixed."
"How — I'm not even in yet."
"Baitoey sent a PR at eight."
Pae went quiet for ten seconds. Phum watched the three blinking dots in the input field flicker on and off three times before Pae sent.
"Smooth, this one."
"Lunch?"
"P', you can't go out — you haven't even showered."
"…"
10:30.
Phum showered — the first morning shower before leaving the house in two weeks.
He arrived at the office at 11:47.
Baitoey was at her desk — headphones on, MacBook screen tilted, didn't turn.
Phum walked past her desk on his way to his own. Words queued in his throat.
"Baitoey." She looked up, pulled one earbud out.
"Yes?"
"Thank you — for catching that this morning."
"Yes."
"…I should have tested the copy before deploying."
"P'Phum, you look tired. Everyone misses things."
She put her earbud back in. Eyes down to the screen.
Phum walked back to his desk. The phrase *P'Phum, you look tired* rotated three times in his head.
Tired.
Her polite word.
He opened his laptop. Before opening his terminal, he opened Baitoey's PR again. Read her description slowly.
*"users in #support reporting confusion that 'ขั้นต่ำการสั่ง' reads as a price field. Updated copy + placeholder example to disambiguate."*
The voice of someone who had written enough essays to know exactly how many words were needed.
Phum thought: *this woman works fast.*
But the real thought he didn't dare say even to himself: *this woman works fast and is better than me at this.*
13:00 — Inventory v2 sync meeting.
Baitoey spoke for seven minutes — slides about the entire inventory page flow — three personas of user journeys — edge cases Phum hadn't considered.
The engineering team listened quietly.
After the meeting, P'Neung said to Phum, "P'Baitoey did her homework. A lot of it."
"Yeah."
"Phum — if it's not too much, you should spec-review with Baitoey before implementing next time."
Phum knew it was a warning.
"Yes."
14:30.
Phum paired with Baitoey at his desk for an hour, as scheduled.
She opened Figma — walked through the design for the new *Add Product* page — asked him about backend constraints.
Phum answered them all — some questions required him to check the codebase first — some Baitoey answered for him.
At one point Baitoey asked, "If a user has ten thousand products, how many should the list page show per page?"
Phum thought for four seconds. "I tried 50 once. But the old pagination uses offset — it gets slow on later pages. If we can switch to cursor-based pagination, 50 works fine."
Baitoey nodded. "I prepared the design for 25. Can you change it to 50 if we use cursor?"
"Yes."
"Then 50."
She made a quick note in her book.
Phum noticed she wrote in bullets, Thai mixed with English, with small arrows linking ideas.
15:42 — pair ended.
"Thank you, P'Phum," Baitoey said.
"Yes."
She stood and walked back to her desk.
Phum stayed. Kept working. In the next thirty minutes he closed a task he had been putting off for a month.
19:38.
He left the office before eight p.m. — only the second time this month.
Downstairs, no rain. The number 8 bus was at the stop. Phum hadn't taken a bus in five years — but today he got on. Because he didn't want to go back yet to his empty room.
He sat by the window.
The Bangkok wind — dust, oil, street food — came in through the window.
Phum opened his phone, sent the message to his sister that had been waiting from yesterday.
"I'm fine, sis. Thanks for asking."
She replied in one minute. *"Take care of yourself, P'."*
Phum replied. "Yes."
He looked back out the window. Streetlights — yellow, red, the blue of 7-Eleven signs.
Then a short thought.
*This woman works fast and is good.*
Then a longer one. *I should be better.*
For the first time in years, that thought didn't make him sad. It made him feel something he didn't yet have a name for.
The bus passed his stop. He got off one stop later and walked back to the apartment by the longer way.
她默默替我修好了
十一天后。
阿普在凌晨一点deploy了Inventory v2的新功能——一个给餐厅用的"最低订购量"字段。是团队等了两个礼拜的功能。
CI通过。Regression test通过。Production变绿。
阿普向后靠在椅子上,笑了。
今天的第二包方便面。
01:42——打开Twitter——滑过下午的旧thread——睡着了。
房间里的吊扇还在转,咔嗒咔嗒,声音和原来一样。但最近他已经听不到了。
08:13。
手机震动的方式告诉他是Slack,不是LINE。阿普一听就分得清。Slack震一下就停,但是会反复震。他骨子里记得那种声音。
他的手摸索着。眼睛半开。
@channel——阿能哥 08:11
"@phum @baitoey production现在被support的投诉刷爆了,关于昨晚deploy的那个新字段。"
阿普三秒之内从睡眠切换到清醒。
08:14
"在看。"
他从床边拿起笔记本电脑。密码——真的忘了——打错了——进了。
#support频道——20分钟内八条消息。
"这个字段输入数字不了。"
"'最低订购'是什么意思?是金额还是数量?"
"输入5报错,输入100也报错。"
"我的客户看不懂。"
阿普打开production——自己测了一下——输入"5"——报错:*最低订购必须是金额。*但这个功能本来是要接收数量,不是价格。
阿普读着自己写的UI文案。
字段名:*最低订购*
Placeholder:*输入数字*
报错:*最低订购必须是金额。*
他立刻看到了问题——placeholder没说是哪种数字——报错说是金额——后端接受的是数量。三个部分,三个方向,全错。
是UX的bug,不是code的bug。
他开始动手修——打开文件——一个通知打断了他。
GitHub:新的Pull Request——baitoey:fix-inventory-min-order-copy
阿普点开。
PR提交时间08:09——比阿能哥发Slack消息早两分钟。
拜黛比所有人都更早看到了问题。
PR修改了三处文案:
- *最低订购* → *客户每次至少订购的数量(例如5件)*
- Placeholder *输入数字* → *例如 5*
- 报错 *最低订购必须是金额* → *请只输入数字(不需要带"泰铢")*
PR description,英文:
"users in #support reporting confusion that 'ขั้นต่ำการสั่ง' reads as a price field. Updated copy + placeholder example to disambiguate. No backend change."
干净。直接。短。
阿普读了那三行被修改的代码。每一行都有那种知道什么叫"干净"的人留下的签名。没有奇怪的空格。没有不必要的注释。只是把字改了。
CI 绿色。
阿普同时感觉到两件事。
一,松了一口气——有人修好了。他不用在这种状态下自己写。
二,一种他还说不出名字的感觉。拜黛,来了十一天,在他之前发现了他的UX bug,并替他修好了。
阿普点了approve。
Merge。
Deploy。
09:17——production绿色——新文案上线。
#support安静了下来。"哦,懂了,谢谢。"几个用户回复。
阿普坐在床边。后背是潮的。他穿着睡觉的T恤起床工作。
心里他想说"谢谢"——但要怎么说,才不至于尴尬?LINE?Slack私信?在#engineering里@baitoey,说一句"thx for the catch"?
他选了最后一个。
09:24 - #engineering
"@baitoey thx for the UX catch on inventory min order — merged"
拜黛两分钟后回复。
"👍"
就这样。
阿普沉默了三十秒。
09:26。
阿派的LINE。
"阿普哥,起来了没?你那个inventory完蛋了哦。"
"起了。修好了。"
"怎么修——我都还没到呢。"
"拜黛八点提的PR。"
阿派沉默了十秒。阿普看着输入框里那三个跳动的小点闪了三次,才看到阿派发出来。
"她可真稳。"
"中午吃饭?"
"阿普哥,你出不来吧——你澡都还没洗。"
"……"
10:30。
阿普洗了澡——两个礼拜以来第一次出门前的早晨洗澡。
他11:47到办公室。
拜黛在她的位置上——戴着耳机,MacBook屏幕倾斜着,没有回头。
阿普从她的桌边走过,回自己的位置。喉咙里有要说的话。
"拜黛。"她抬起头,拔下一只耳机。
"嗯?"
"谢谢——今早catch住那个问题。"
"嗯。"
"……我应该在deploy之前先测一下文案的。"
"阿普先生,你看起来很累。每个人都会有疏忽。"
她把耳机戴回去。眼睛回到屏幕上。
阿普走回自己的位置。"阿普先生,你看起来很累"这句话在他脑子里转了三遍。
累。
她用的是礼貌的字眼。
他打开笔记本电脑。在打开terminal之前,他再一次打开了拜黛的PR。慢慢读了她的description。
*"users in #support reporting confusion that 'ขั้นต่ำการสั่ง' reads as a price field. Updated copy + placeholder example to disambiguate."*
那种写过很多文章的人的语调,知道精确需要多少个词。
阿普心里想:*这个女人手脚很快。*
但是他不敢对自己承认的真心话是:*这个女人手脚很快,而且在这方面比我强。*
13:00——Inventory v2 sync会议。
拜黛说了七分钟——讲解inventory整页的flow——三种persona的user journey——一些阿普没考虑过的edge case。
工程团队安静地听。
会后,阿能哥对阿普说:"拜黛功课做得很足。"
"嗯。"
"阿普——以后实现之前,最好跟她做spec review。"
阿普知道这是个提醒。
"好的。"
14:30。
阿普按之前约的,在自己的桌边和拜黛pair了一小时。
她打开Figma——讲解新的"添加商品"页面的设计——问他backend的约束。
阿普一一回答——有些问题他得先翻翻代码——有些是拜黛自己回答的。
中间有一次拜黛问:"如果一个用户有一万件商品,list page每页显示几个比较好?"
阿普想了四秒。"我试过50,但是旧的pagination用offset,翻到后面会变慢。如果能换成cursor-based,50没问题。"
拜黛点头。"我design里准备的是25。如果用cursor,你能改成50吗?"
"能。"
"那就50。"
她在本子上做了个简短的标注。
阿普注意到她写bullet list,泰文夹英文,中间用小箭头串起来。
15:42——pair结束。
"谢谢你,阿普先生。"拜黛说。
"嗯。"
她起身回自己的位置。
阿普留下来。继续工作。接下来的三十分钟里,他做完了一个拖了一个月的任务。
19:38。
他在晚上八点之前下了班——这个月第二次。
下楼。不下雨。八路公交车正在站台。阿普已经五年没坐过公交了——但今天他上了。因为他还不想这么快回到那个空房间。
他坐在窗边。
曼谷的风——尘、汽油、街边小吃的味道——从窗外飘进来。
阿普打开手机,把昨天就该回的消息发给了清迈的妹妹。
"我没事,妹妹。谢谢你关心。"
她一分钟后回:"哥要照顾好自己啊。"
阿普回了一个"嗯。"
他继续看着窗外。路灯——黄色、红色,还有7-Eleven招牌的蓝。
然后心里有一个短短的念头。
*这个女人手脚快,也厉害。*
然后是一个长一点的念头。*我应该比这更厉害。*
几年来第一次——那个念头没有让他难过。让他感觉到一种他还说不出名字的东西。
公交车开过了他该下的那站。他在下一站才下,沿着更长的那条路慢慢走回公寓。
ตอนนี้เป็นยังไงบ้าง?