新卒でSO Technologiesに入社し、「ATOM」のサーバーサイドエンジニアとして開発・運用を担う古川明。入社時に使えた技術は、全体の「5分の1くらい」。
仕事を通じて技術を身につけながら、リアルタイムデータ処理の改善や運用業務を経験し、最近では大規模機能の要件定義や設計にも関わるようになりました。
少しずつ役割を広げてきた古川さんが、どのように成長してきたのか。そしてSOTのエンジニアとして働く面白さについて話を聞きました。
趣味・ストレス解消法:
散歩、銭湯、漫画
仕事をする上で欠かせないもの(ツール・習慣・考え方など)は何ですか?:
ルーズリーフとボールペン
やることを迷わないように毎日ルーズリーフにその日やることを書くようにしています。PCやアプリは画面を開く必要がありますが、紙とペンはいつでも見られて最適だと気づきました。
子ども向けイベントの企画づくりに熱中した学生時代
─ 学生時代に力を入れていたことは何ですか?
近所の子どもたちに対して催し物をやる「児童文化研究会」というサークルに入っていて、その活動に力を入れていました。自分たちで企画を作って、実際に子どもたちに遊んでもらうんです。
企画づくりでまず大事にしていたのは「安全」でした。
そのうえで、小学校1年生から6年生まで幅広い年齢の子が一緒に楽しめる内容にするのが難しくて。バランスをどう取るかを、すごく考えていましたね。
─ それは難しいですね。その企画立案や推進などの経験は、今の業務にもつながるところはありますか?
そうですね。サークルでは、企画を出すときに全体の会議を通す必要があったんです。そのため、自分の意見を出して議論する機会が多くあり、自分の意見を出すことに物怖じしなくなりました。
今の仕事でも、ミーティングなどで意見を言うときにその経験が活きている気がします。
SOTを選んだ理由は「好きな技術」と「地方創生」
─ SOTを選んだ理由を教えてください。
理由は大きく2つあります。1つは地方創生を掲げるミッションに共感したこと。もう1つは自分の好きな技術を使っていることです。
大学から地元を離れていて、お盆やお正月に戻ったときに、自分がよく行っていた場所がなくなっていたりして。自分の住んでいた場所に少しでも貢献できたらいいな、と思うようになりました。
IT系だとエンタメや金融が多いと思うんですが、「地方創生」は自分にとって社会的意義がイメージしやすかったんです。
技術的な面に関しては、SOTでは当時からバックエンドのプログラミング言語にGoを採用していました。
Goは比較的新しめのプログラミング言語で、当時は「メインで採用しています」と言っている企業も少なく、当時から主力言語として使っていたことはとても魅力的でした。
─ 入社後、地方創生への思いに変化はありましたか?
あまり変わっていないですね。
ATOMのプロダクトが地方創生にどのように直接貢献しているのかは、これからさらに実感していく部分もありますが、営業の話や、ソウルドアウトで地方で働く社員の声を聞くと、間接的に地域の成長を支えているのではないかと感じています。
─ 入社の決め手は?
就活が早くて、3年生の10月くらいには決まっていました。
決め手としては、やっぱり好きな技術を使っていることが大きかったです。
また入社前にインターンをしていて、現場のエンジニアとは会っていたので、自分が抱いていたエンジニア像にギャップはなく入社できました。
ただ、それまで仕事でコードを書いたことはなかったので、個人で書く場合とは異なり、他の人が書いたコードを読んだり、コードレビューを受けたりするのは新鮮でしたね。
最初の壁は「既存コードのどこを触ればいいか分からない」
─ 現在の仕事内容を教えてください。
ATOMのサーバーサイドエンジニアとしてネットワークAPIやバッチの開発・運用を主にやっています。最近は要件定義や設計にも関わっています。
─ 入社後、最初につまずいたことは何でしたか?
既存のコードベースにどのように変更を加えていけば良いかが分からなかったことです。
ATOMではすでに多くのコードが書かれて実行されていて、その中でどこでどんな処理をしているか、どこに変更を加えればいいかが分からず苦労しました。
─ ATOMは大変そうですよね⋯。どうやって乗り越えたんですか?
分からないことがあれば先輩に聞いて、不明確な部分が残ったままコードを書かないということを徹底しました。
最初は遠慮していたんですけど、「聞かずに進めて間違えるほうが、結局みんなに迷惑がかかる」と気づいてからは、遠慮しなくなりました。
これをやるようになってから、システムの予期せぬ挙動が減っていき、自分の書くコードに自信が持てるようになりました。
サービス停止メンテナンスで知った「エンジニアの責任」
─ エンジニアとして成長したと感じた瞬間は?
初めて、サービスを停止させてメンテナンスを入れる作業を任された時です。
通常のシステムへの変更は、問題が発生してもすぐに修正できます。でもサービスを停止させる必要がある修正は、既存のデータを大きく書き換えるので、万が一問題が発生したらすぐに解決できず、大きく影響が出る可能性があります。
これまでも慎重に変更を加えてはいましたが、問題が発生した場合の影響が大きいということで、これまで以上に慎重に変更を行うようにしました。
そのときの「徹底的に可能性を考える経験」は、今でも生きていると感じます。
─ 考えただけでも緊張してきますね。具体的には、どんな準備をしたんですか?
計画を考えるのも1年目には大変で、いろんな人に話を聞いて、考慮漏れがないか確認しながら進めましたね。順番をどうするか、どこを確認するか、問題が起きたらどう戻すかなど、考えることが多かったです。
当日の作業は夜8時くらいに行い、待機メンバーも3人くらい。その時間帯に「絶対にやり直せない」状態になるのが怖かったですね。
すごく不安だったんですけど、準備を徹底すると怖さが減っていきました。自分の中で「この手順なら大丈夫」という確信が持てたときに、初めて安心できた感覚があります。
実はその当日、ちょっとした問題が起きたんですが、その場で冷静に解決できました。
─ 想像しただけで肝が冷えます⋯その場で対応できたんですね。
そのときは「終わった…」って思いました(笑)。
でも準備のおかげで慌てることなく、なんとかリカバリーできました。
─ このメンテナンスの経験は、今の働き方にも影響を与えましたか?
はい。メンテナンス作業って、問題が起きたら即座に直せない可能性があるので、最初から「起こりうること」を全部考えておく必要があります。
その癖がついたことで、普段の開発でも「これが起きたらどうなるか」を考えるようになりました。
リアルタイム大規模データ処理に挑む。改善幅は「10倍」
─ 技術的に難しかったこと、挑戦だったことは?
ATOMに、リアルタイムで大規模なデータを集計して返す処理があるんですが、その実装は大変でした。
単純にデータ量が多いので、それだけでも集計に時間がかかります。
さらに集計ロジックも複雑なので、アプリ側とデータベース側でどちらにどの処理を持たせるかをしっかり考える必要がありました。
─ 処理速度の改善で社内表彰もされていましたね。
はい。改善幅としては10倍くらいでした。
ただ、やったことは「一気に全部変える」みたいな派手なものではなくて、影響が出ないように少しずつ変更していくことでした。
既存の仕様が明確ではない部分もあったので、古い仕組みと新しい仕組みを同時に動かして、差分をログで確認しました。
結果が一致することを確認してから、段階的に切り替えていく、という進め方で改善していきました。
運用は地味? 実はプロダクトを一番近くで支える仕事
─ ATOMは運用業務もありますよね。正直、開発のほうが花形で、運用は地味…みたいに思われがちだと思うんですが、実際どうですか?
たしかに、そういう印象はあるかもしれないですね。でも、僕は運用も楽しいです。
運用はユーザーへの影響が大きいので、その分やりがいがあります。開発とはまた違った面白さがある仕事だと思っています。
例えば、バッチが落ちていたり、データが想定通りに流れていなかったりすると、ユーザーに影響が出る可能性があります。そういうときに原因を切り分けて対応して、問題なく動く状態に戻せたときは、きちんと対応できたという手応えがあります。
今まさに動いているサービスを扱うので、開発とは違う緊張感や責任があります。
でもその分、問題を解決できたときの達成感も大きいですね。
─ ATOMの運用の難しさはどこにありますか?
ATOMには従来版の仕組みも残っているので、その兼ね合いで変更を加えられない部分があるんです。そういうときに迂回策を考えるのが難しいですね。
制約がある中で、どう影響を出さずに改善するかを考える必要があります。そこは運用ならではの難しさだと思いますが、エンジニアとしての腕が試される部分でもあると思っています。
「やりたい」と手を挙げて、大規模機能の設計にも挑戦
─ 最近は大規模機能の要件定義や設計にも関わっているそうですが、どういうきっかけだったんですか?
自分がやりたいと言っていて、任命された、という感じですね。2025年からやっています。
任されたときは、「これから大変になるな」「一歩上に上がったな」みたいな感覚がありました。チャレンジでしたね。
─ 初めての要件定義・設計で大変だったことはなんですか?
要件定義や設計って、実装よりも考えることが増えるんです。最初はそこが大変でした。
まず自分で考えて、会議でフィードバックをもらって、また一人で考える。これを繰り返す感じです。今も難しいですが、以前よりは考え方が少し分かってきた気がします。
仕様って正解が一つじゃないんですよね。実装なら「こう書けば動く」というものがありますが、設計はどの選択肢が一番いいのかを考えて決める必要があります。
そのときに、今だけではなく将来どうなるかも考える必要があるので、責任が大きい仕事だと感じています。
─ 最近はリーダーも任されているそうですね。
そうですね。リーダーとしてチームの進め方を見る機会も増えました。
設計では後戻りできない判断も多いので、あとで誰が困るか、運用にどう影響するかなども含めて、以前より広い視点でじっくり考えるようになりました。
また、2年目の頃からOJTで後輩と1on1をする機会もありました。
その中で、質問が減っていったり、最終的に1人でリリースまで進められるようになった姿を見ると、「成長したな」と感じて嬉しくなりますね。
入社時に使えた技術は「5分の1」。仕事を通じて技術を広げてきた
現在の技術スタック:Go / Aurora MySQL / ClickHouse / AWS / GCP
開発環境:GoLand / VSCode / Claude Code / Git / GitHub / Notion
─ 入社時はどれくらいの技術が使えましたか?
入社前に使えたのは、全体の5分の1くらいです。
AuroraとかClickHouseとかAWSとかGCPは、個人だとあまり触らないので使った経験はありませんでした。
仕事で触ったときに、分からない部分をそのままにせず、調べて覚えていきました。
ATOMが今どう使っているかを確認して、分からない挙動があったら技術ドキュメントを読んで確かめて、直してみる、という感じです。
ドキュメントは英語が多いんですが、翻訳ツールを使って読んでいます。
─ スキルアップのために、普段取り組んでいることはありますか?
はてなブックマークのテクノロジーのタブを毎日見ていて、気になった技術があれば自分で試してみることがあります。
新しい言語や技術に触れるときは、簡単なアプリを作って試すことが多いです。題材としてよく作るのは、タスク管理アプリですね。
同じ機能のアプリでも、言語が変わると書き方や設計の考え方が変わるので、それを比べながら試しています。
実際に手を動かしてみると、記事を読むだけでは分からなかったことも理解できるので、そういう形で学ぶことが多いです。
言語を変えて作成しているタスク管理アプリの画面。フロントエンド: TypeScript + React, バックエンド: Go
「言い出しっぺがやる」改善文化。KPTで回るチーム
─ 新卒でも改善提案できる環境はありますか?
ありますね。
開発環境を整える改善提案で、Dockerの設定を変えたり、監視を入れたり、というのはやっていました。
ATOMチーム内に「レトロスペクティブ」と呼ばれる振り返りミーティングがあって、2週間ごとに良かったこと・問題に感じたこと・やっていきたいことを共有する場があります。
そしてその中の改善フレームワーク「KPT(ケプト)」にて、「ここが課題です」というプロブレムを上げて、改善案を出すとトライになって実行していく、という流れです。
言い出しっぺがやる、みたいな文化があるので、多くの場合提案した人が担当します。
─ これまでどれくらいやりました?
月1くらいのペースでやっていたので、10数個くらいですかね。
数年プロダクトに携わっていると正直慣れてきちゃうので、改善案を見つけやすいのは入社間もない新卒が多い、というのはあると思います。
─ ATOMチームの話を伺いましたが、SOTのエンジニア組織の良いところを教えてください。
開発者の生産性を上げるためのことを積極的に行ってくれるところです。最近だとClaude CodeのMaxプランを全社で導入したりしています。
あとは有料ツールも導入してくれますし、作業環境も整えやすいです。
─ 先輩や上司からのサポートはどうでしたか?
基本的に何か質問があれば快く答えてくれたり、1on1で気になる技術について話したりなどのサポートがあります。
新卒であっても、自分で希望すれば大きな機能を実装したり、既存のコードベースに改善を加えたりできます。
次の挑戦はSRE。信頼性を支えるエンジニアへ
─ 今後チャレンジしてみたいことは?
これまでは主にサーバーサイドの開発を行ってきたので、今後はやる領域を増やして、SREのような信頼性を向上させるタスクも行っていきたいと考えています。
運用をやっていると、信頼性を上げる仕事の重要性を実感するので、そこにも関わっていきたいです。
─ SRE領域に興味が出てきたのは、運用経験がきっかけなんですね。
そうですね。運用をやっていると「ここが弱いと、いつか絶対困る」という部分が見えてきます。
それを改善できるのがSRE的な仕事だと思っています。
「五十歩百歩」。深刻になりすぎないための言葉
─ どんな人がSOTのエンジニアに向いていると思いますか?
SOTはやりたいと手を挙げればやらせてもらえる環境が整っているので、技術に対して好奇心があり、積極的に開発・運用を行いたいというエンジニアに向いていると思います。
─ 最後に、古川さんが大事にしている言葉「五十歩百歩」について、改めて教えてください。
大概のことは、どっちもどっちだと考えていると気が楽になるためです。
仕事って、どうしても「失敗したら終わり」みたいに感じてしまう瞬間があるんですけど、そういうときに深刻に考えすぎないようにするための言葉ですね。
もちろん、ちゃんと準備はします。でも不安に飲まれすぎないようにしたい。そのバランスが、自分の中では大事なんだと思います。
─ 新卒4年目。手を上げれば挑戦できる環境の中で、古川さんのキャリアはこれからも広がっていきそうです。
ありがとうございました!