Show original
Enjoyed this article?
Use "Request tipping" to ask the author to set up tip receiving.

AI translation
Around 2 AM, I sometimes find myself picking up my smartphone. Sometimes it's because I can't sleep, and other nights it's just that something bothers me and I end up checking it. When I open the screen, there are messages from users, or I find myself worrying about error logs from my own service. I wonder if it would have been better not to open it...
Enjoyed this article?
Use "Request tipping" to ask the author to set up tip receiving.
Around 2 a.m., I sometimes pick up my smartphone. Sometimes it's because I can't sleep, and other times it's just a nagging feeling that makes me check. When I open the screen, there might be messages from users, or I find myself worrying about error logs from my own service. I think I shouldn't have opened it, yet I open it anyway. If you're someone who builds and runs a service individually, you might understand this feeling a little. Someone might be struggling with something. The service might be down. No one is going to wake me up, and there's no team to notice. I made it alone, and I'm protecting it alone. That loneliness and a kind of clear sense of fulfillment are mixed together in front of the screen in the middle of the night. This essay is about the night I fixed a bug in the middle of the night and quietly pushed an update during the hours when no one was awake. It might have gone unnoticed. Yet in that silence, there was definitely something there. I want to write honestly about nameless responsibility and small pride.
It's been a while since I released my individually developed service. What Lily creates and operates is a type of automation tool that takes user input, processes it, and returns results. I developed it between work, tinkered with it on weekends, and gradually nurtured it. It's small, but it works. That's the greatest sense of accomplishment I have right now.
While operating that service, I noticed something. The service keeps running even while Lily is sleeping.
It seems obvious, but it took me a while to really feel this in practice. Requests are coming in during the night. When I check in the morning, processing is happening. Users are using it at their own times in their own time zones. Maybe it's been incorporated into someone's workflow. When I thought about that, my perspective on what I created changed slightly. I could say that a sense of "there's something I need to protect" was born.
Before release, I only thought about "whether it works or not." I wrote tests, confirmed them, and if there were no errors, I released it. But once people actually start using it, unexpected things happen one after another. Different ways of using it, differences in data formats, timing issues. It's no longer about "whether it works or not," but "whether it functions properly within someone's context."
There's much more work after release. I thought I understood that, but experiencing it firsthand was much deeper than I imagined.
One night, a message arrived. It said, "The processing seems to have stopped midway."
When I checked, it had indeed stopped. Lily hadn't noticed for days. Looking back at the logs, it had been happening for three days. During that time, several requests hadn't completed normally.
What I felt first wasn't panic, but something closer to embarrassment. I hadn't grasped what was happening in my own service. That realization weighed heavily on me.
To be specific, the problem was in the part where I was calling an external API—the timeout threshold was too short. During normal times, there was no problem, but during times when the API response was slow, the processing would simply be interrupted. The errors were being logged, but I hadn't set it up to send me notifications. I should have noticed the problem if I'd looked at the logs, but I hadn't.
In numbers, out of the requests that came in during those three days, about 18% ended without being processed. From the user's perspective, nearly one in five requests resulted in "nothing happened."
This hit me hard. More than the bug itself, it was the fact that "I didn't know."
Once I understood the cause, the work went relatively quickly. I changed the timeout value from 30 seconds to 120 seconds, and at the same time increased the number of retries from 1 to 3. Additionally, I added an alert setting so that I would be notified when processing failed. It was just changing two places in the configuration file and adding one line.
Looking at that change, I thought, "That's all?" Just a few lines could have prevented the failure. But noticing those few lines required time to fail, receive a report, dig through logs, and identify the cause. The problem wasn't just in the code—it was also in Lily's habit of "not checking." I think that's where the real issue lay.
The fix was completed after 1 a.m. I ran tests, checked the logs, confirmed there were no problems, and then executed the deploy.
There was no notification sound. I wasn't announcing the release to anyone or posting about it on social media. A deploy completion message appeared at the edge of the screen, and that was it. I sat alone in the quiet room, looking at those characters.
The next day, I checked the completion rate. The error rate that had been 18% was now 0%. As a number, that's a significant change, but for now, only Lily knows about it.
At first, I felt a little lonely that the release went unnoticed by anyone. If I'm being honest, there was a part of me that thought, "I worked hard for this."
But after a while, I thought about something else. The reason users aren't saying anything is often because "it's working normally." If there's dissatisfaction, word gets out. Silence is also a sign that there's no problem. If that fix hadn't happened, someone's work might still be stuck. Maybe functioning without being noticed is the right way for a service to be, I thought.
Saying "I'm protecting someone's app" might be a bit of an exaggeration. What Lily creates isn't a large product. Not many people are using it yet.
Still, I think the word "protect" fits that middle-of-the-night fix. Work that doesn't get recorded in update logs. Changes not significant enough to mention in release notes. But work that quietly restores someone's user experience to its proper state. There's a sense of responsibility unique to individual development in that.
If there were a team, I'd report it to someone. But in individual development, you discover the problem, identify the cause, fix it, release it, and verify it—all by yourself. There's no fanfare. No one to praise you. But the sense of having accomplished it has something that no other work has.
The reason I wanted to write this essay was that after that middle-of-the-night work, I had the feeling of "wanting to tell someone." But I couldn't immediately think of anyone to tell.
There are people I can talk to about technical things. But "I want to convey the something that existed in the silence of fixing a bug in the middle of the night and quietly deploying it"—that's a different kind of conversation. Someone who's similarly building a service individually might understand. Thinking that, I decided to write.
I don't think pride is only born from being recognized by others. When you do what you believe is right and can confirm the results, there's a quiet but definite sense of something accumulating. For Lily, that middle-of-the-night fix was like that.
I'm not creating a perfect service. There might be problems somewhere that I haven't noticed yet. But when problems occur, I face them properly and fix them. Continuing to do that is what Lily believes is sincerity as an individual developer.
A few days after that middle-of-the-night deploy, the user contacted me again. A short message: "It's been working properly lately."
That's all. But it was enough.
Individual development is lonely work. You work during hours no one sees, and you push out changes no one notices. But each of those small things subtly affects someone's experience. That accumulation becomes trust in the service, I think.
Even if there are sleepless nights, even if there are nights when you can't help but open the screen at 2 a.m., it's probably because you're thinking seriously about that service. Even if no one's watching, you quietly push the update. Those nights are what truly support the service.
Tonight, somewhere, someone might be opening their screen in the middle of the night. That quiet work is making someone's tomorrow just a little bit better. Believing that, Lily will continue.
Lily(@bokuwalily)― Individual developer. Creating iOS apps and web services in tandem with AI.
🎁 A free bonus for you who read to the end: LINEで「自動化」と送って受け取る(実装テンプレ7本)
Lily(@bokuwalily)― Individual developer / AI adoption and business automation consultant. Creating iOS apps and web services in tandem with AI while consulting on AI adoption and automation for companies.
🖥️ Works and articles → bokuwalily.com
🐙 OSS → github.com/bokuwalily
🌍 Latest information and inquiries → X @bokuwalily
夜中の2時ごろ、スマートフォンを手に取ることがあります。眠れないから、という理由のこともあれば、なんとなく気になって確認してしまう、という夜もあります。画面を開くと、ユーザーからのメッセージが届いていたり、自分のサービスのエラーログが気になってしまったり。開かなければよかったのかもしれない、と思いながら、それでも開いてしまいます。 個人でサービスを作って動かしている方なら、この感覚を少しわかってもらえるかもしれません。誰かが何かに困っているかもしれない。サービスが止まっているかもしれない。誰かが起こしてくれるわけでもなく、気づいてくれる仲間もいない。ひとりで作って、ひとりで守っている。その孤独と、どこか澄んだ充実感が、深夜の画面の前には混じり合っています。 このエッセイは、バグを深夜に直して、誰も起きていない時間帯にそっとアップデートを出した夜のことを書きます。気づかれなかったかもしれない。それでもその静けさの中に、確かに何かがありました。無名の責任感と、小さな誇りについて、正直に書いてみようと思います。
個人開発のサービスを公開してから、しばらく経ちます。Lilyが作って動かしているのは、ユーザーの入力を受け取って処理し、結果を返すタイプの自動化ツールです。仕事の合間に開発して、週末に触って、少しずつ育ててきました。小さいけれど、動いている。それが今のところ、一番の達成感です。
そのサービスを運用しながら、ひとつ気づいたことがあります。Lilyが寝ている間も、サービスは動き続けているということです。
当たり前のようでいて、これが実感としてわかるまで、少し時間がかかりました。夜中にリクエストが来ている。朝に確認すると処理が回っている。ユーザーはそれぞれのタイムゾーンで、それぞれの時間に使ってくれています。誰かの仕事の流れに組み込まれているのかもしれない。そう思うと、自分が作ったものへの眼差しが少し変わりました。守るべきものがある、という感覚が生まれた、と言えばいいでしょうか。
公開するまでは、「動くかどうか」だけを考えていました。テストを書いて、確認して、エラーがなければ出す。でも実際に人が使い始めると、想定外のことが次々と起きます。使い方の違い、データの形式の差、タイミングの問題。「動くかどうか」ではなく、「誰かの文脈の中で、ちゃんと機能するかどうか」が問われるようになります。
リリース後の方が、ずっと仕事が多い。それはわかっていたつもりでしたが、実際に経験してみると、想像よりずっと深い話でした。
ある夜、メッセージが届きました。「処理が途中で止まっているみたいです」という内容でした。
確認してみると、確かに止まっていました。Lilyは何日も気づいていなかったのです。ログを遡ると、3日前から発生していました。その間、何件かのリクエストが正常に完了していませんでした。
最初に感じたのは、焦りよりも、恥ずかしさに近いものでした。自分のサービスで何が起きているか、把握できていなかった。そのことが、じんわりと重くのしかかってきました。
具体的に何が起きていたかというと、外部のAPIを呼び出す部分で、タイムアウトのしきい値が短すぎたのです。平常時は問題ありませんでしたが、APIの応答が重くなる時間帯に、処理がそのまま中断されていました。エラーとして記録はされていましたが、Lilyに通知が届く設定にはなっていませんでした。ログを見れば気づけたはずの問題を、Lilyは見ていなかったのです。
数字で言うと、その3日間で届いたリクエストのうち、約18%が処理未完了のまま終わっていました。ユーザーの側からすれば、5件に1件近くが「何も起きなかった」状態です。
これは、かなりこたえました。バグそのものより、「知らなかった」ことが。
原因がわかってからの作業は、比較的早く終わりました。タイムアウト値を30秒から120秒に変更し、合わせてリトライの回数を1回から3回に増やしました。さらに、処理が失敗したときにLilyへ通知が届くよう、アラート設定も追加しました。設定ファイルの中の2箇所を書き換えて、1行追加するだけの作業でした。
その変更を眺めて、「なんだ、これだけか」と思いました。たった数行を変えるだけで、防げていた失敗でした。でもその数行に気づくには、失敗して、報告を受けて、ログを掘って、原因を特定する時間が必要でした。問題は、コードの中だけにあったのではなく、Lilyの「確認していなかった」という習慣の中にもあったのだと思います。
修正が終わったのは、午前1時を過ぎていました。テストを走らせて、ログを確認して、問題がないと確かめてから、デプロイを実行しました。
そのとき、通知音はしませんでした。誰かにリリースを知らせるわけでもなく、SNSに投稿するわけでもなく。画面の端にデプロイ完了のメッセージが出て、それで終わりです。しんとした部屋で、一人でその文字を見ていました。
翌日、処理完了率を確認しました。18%だったエラー率が、0%になっていました。数字としては大きな変化ですが、それを知っているのは今のところ、Lilyだけです。
リリースが誰にも気づかれなかったことを、最初は少し寂しく感じました。頑張ったのに、という気持ちが、正直なかったと言えば嘘になります。
でも少し経ってから、別のことを思いました。ユーザーが何も言ってこないのは、多くの場合「普通に動いている」からです。不満があれば声が届く。沈黙は、問題がないことのサインでもある。あの修正がなければ、誰かの作業は今も止まったままだったかもしれません。気づかれないまま機能することが、サービスとして正しい姿なのかもしれない、と思いました。
「誰かのアプリを守っている」という言い方は、少し大げさかもしれません。Lilyが作っているのは、大きなプロダクトではありません。使ってくれている人も、まだ多くはありません。
それでも、あの深夜の修正には「守る」という言葉が合う気がします。アップデートログには記録されない作業。リリースノートに書かれるほどでもない変更。でも誰かの使用体験を、静かに元の状態に戻す作業。そこには、個人開発特有の責任感があります。
チームがあれば誰かに報告します。でも個人開発では、問題を発見して、原因を特定して、修正して、リリースして、確認するまでのすべてを、一人でやります。派手さはありません。称えてくれる人もいません。でも、それをやり遂げたという感覚は、他のどんな作業にもないものがあります。
このエッセイを書こうと思ったのは、その深夜の作業のあとに、「誰かに話したい気持ち」があったからです。でも、すぐに話せる相手が思い浮かびませんでした。
技術的なことを話せる人はいます。でも「深夜にバグを直してひっそりとデプロイした、その静けさの中にあった何かを伝えたい」という話は、少し違います。同じように個人でサービスを作っている人なら、わかってくれるかもしれない。そう思って、書くことにしました。
誇りというのは、誰かに認められることで生まれるとは限らないと思います。自分が正しいと思うことをして、その結果が確認できたとき、静かに、でも確かに、何かが積み上がる感覚があります。Lilyにとって、あの深夜の修正はそういうものでした。
完璧なサービスを作れているわけではありません。今も、気づいていない問題がどこかにあるかもしれません。でも問題が起きたとき、ちゃんと向き合って、直す。それを続けることが、個人開発者としての誠実さだとLilyは思っています。
深夜のデプロイから数日が経ちました。あのユーザーから、また連絡がありました。「最近ちゃんと動いています」という短いメッセージです。
それだけです。でも、それで十分でした。
個人開発は、孤独な仕事です。誰も見ていない時間に作業して、誰も気づかない変更を出す。でもそのひとつひとつが、誰かの体験に小さく影響しています。その積み重ねが、サービスへの信頼になっていくのだと思います。
眠れない夜があっても、深夜に画面を開いてしまう夜があっても、それはたぶん、あなたがそのサービスのことを本気で考えているからです。誰も見ていなくても、こっそり更新を押す。そういう夜が、ちゃんとサービスを支えています。
今夜もどこかで、誰かが深夜に画面を開いているかもしれません。その静かな作業が、誰かの明日を少しだけよくしている。Lilyはそう信じながら、今日も続けていきます。
Lily(@bokuwalily)― 個人開発者。AIと二人三脚で、iOSアプリやWebサービスを作っています
🎁 最後まで読んでくれたあなたへ、無料の特典があります: LINEで「自動化」と送って受け取る(実装テンプレ7本)
Lily(@bokuwalily)― 個人開発者 / AI導入・業務自動化のコンサルタント。AIと二人三脚でiOSアプリやWebサービスを作りながら、企業のAI導入と自動化の相談を受けています
🖥️ 制作物・記事 → bokuwalily.com
🐙 OSS → github.com/bokuwalily
🌍 最新情報・お問い合わせ → X @bokuwalily