- デリバリーマネージャー
- Webアプリエンジニア
- オープンポジション(全職種)
- Other occupations (3)
- Development
- Business
- Other
代表の松下がオプティマインドのエンジニアの実態を明らかにする連載です。記念すべき一回目はwebappチームの吉川さんが登場です。オプティマインドでの業務内容から経歴、プライベートのお話をしていきます。
(写真はBackendのBです)
連載はこちら
#2 量子コンピュータの研究者がオプティマインドで目指す世界
#5 Watercooler chat with a Front End Engineer
#7 GPSデータを使うデータサイエンティストはどんなことしてるの?
オプティマインドのwebappエンジニアは何をしているのかーーー
代表 松下(以下松下):読者の方に向けて吉川さんがどのような業務を担当されているか話してもらえませんか。
吉川:Loogiaというサービスのフロントエンドやバックエンドを作っています、その中でもメインはバックエンド開発です。
松下:Loogiaのバックエンド開発とは具体的に何を開発しているのでしょうか。
吉川:画面とAPIとしての提供をしているので、画面(フロントエンド)に対してのバックエンドと、基幹システムを持っているお客様用のAPIとそのバックエンドを指しています。ですので、正確にはバックエンドとAPI開発です。
松下:API向けと画面向けは別々のように聞こえるのですが、バックエンド自体は共通なんですか。
吉川:一部共通なのですが、今は基本的に別々になってしまっています。利口なUIアンチパターンに陥ってしまっているので将来的には一緒にしたいです。
プログラミングに興味を持ったきっかけはXSS攻撃を受けたことーーー
松下:学校ではどんなことを学ばれていたのですか。
吉川:パソコンエキスパート科という学科で、授業ではエクセルを使ったりしていました。
松下:そこでプログラムを書いたりしたのですか。
吉川:いえ、学校ではプログラムを書くことはなく、趣味で書くだけでした。
松下:そうなんですね。最初どんな会社に入ったんですか。
吉川:フォトスタジオのweb部門でフォトスタジオでとった写真をお客様が確認できるようにするアプリケーションを作っていました。自社でシステム部を持っているときいていたのですが入社したら1人でした。
松下:プログラミングはその時に勉強をされていたんですか。
吉川:中学校の時に触り始めました。チャットサービスを使っているときにXSS攻撃を受けました。そのときにこんなことができるのかと驚き、JavaScriptを触り始めました。
松下:その次はなぜシステム開発会社へ就職されたんですか。
吉川:フォトスタジオでは1人で開発をしていて、よりスキルアップをするために転職しました。
松下:実際に転職されてスキルが伸びた出来事はありますか。
吉川:先輩にすごいエンジニアがいまして、入社後の実装で強めのご指摘をいただいて、悔しいと思い、その後同期と2人でがむしゃらだった時はかなりスキルが伸びました。
オプティマインドで挑戦していることーーー
松下:オプティマインドで難しいと感じたことはありますか。
吉川:難しいなと思ったのは、今までは会社の規模が小さいこともあり自由すぎたのですが、今は組織ならではチームでアーキテクチャや進め方のコンセンサスを取って開発することが新鮮で難しいと感じています。
松下:Loogiaの開発ならではの楽しさはありますか。
吉川:主にAPIを開発していますが、BtoD(Developer)ということで顧客対象がエンジニアでユーザーを理解しやすいのは楽しいです。また、今まで一つのサービスを育てる経験が多くなかったので中長期的な視点で開発できるのは楽しいですね。
松下:地図や最適化という特殊なエンジニアはどう映ってますか。
吉川:最適化に関しては、今までの自分の畑とは違うので、すごい面白いと思います。ただ、面白いから最適化チームに入りたいかというと、最適化チームには入れないかなと。地図はAndroid開発の経験はあるので、その辺りは面白そうに感じます。
松下:オプティマインドで挑戦していることは何でしょうか。
吉川:フロントとバックエンドの責務を明確にするためにコードのロジックを整理したり、データのスキーマの検討をしています。サービスローンチ当初、インフラ周りのメンテナンスコストが少ないサーバーレスのインフラをメインに選定したのですが、サービスの規模が大きくなるにつれて、新機能開発の際のスキーマ変更の難しさや、デバッグのしにくさが足かせとなってきました。一旦実用最小限の製品としては完了したので将来的な拡張のしやすいアーキテクチャ構成に挑戦しています。
松下:最初はベターな意思決定だったが、サービスが成長するにつれてアジリティとの摩擦が発生し始めた感じなんですね。このタイミングで検討を判断されたのは何故でしょうか。
吉川:一番感じたのが、作りたい機能が今のアーキテクチャでは実現できない時です。今までは、なんとか回避する方向で開発してきたのですが、実用最小限の製品は完了したのかなと思うので、アーキテクチャの変更に取り組むことは有効であると判断しました。
プライベートではお子さんも生まれてーーー
松下:最近興味あることは何ですか。
吉川:一部では黒魔術と呼ばれていますがソースコードの静的解析です。
「コードは読みやすいのか、バグが混入する可能性は、メンテナンス性は?」
それらを測るものを開発しました。
松下:どうやって測るんですか。
吉川:条件分岐のようにシステムの流れを乱すものをカウントしたりします。
松下:条件分岐をせずにどう作るのでしょうか。
吉川:例えば、ハッシュとキー型にすれば条件分岐がなくせます。そうすると、多少コードは増えるが可読性は上がります。
松下:ちょっと理解が追いついていないのですが、黒魔術士になりたいのですか。(笑)
吉川:そうですね。(笑)
松下:最近、2人目のお子さんが生まれたそうですね。以前、お子さんにプログラミングの本読み聞かせていると聞きましたが今もやっているのですか。
吉川:長女は夜泣きをしていたときに、「モブプログラミング・ベストプラクティス」を読み聞かせたら泣き止んだんですよね。生まれたばかりの下の子には、「失敗から学ぶRDBの正しい歩き方」を読み聞かせています。
松下:奥様はやめてとはならないんですか。(笑)
吉川:笑いながら動画を撮っているので大丈夫かと思います。(笑)
吉川の考えるオプティマインドのエンジニアーーー
松下:吉川さんの考えるオプティマインドのエンジニアとは。
吉川:楽しく問題に取り組んでいる。難しく辛いところはあるのだけど、辛いところを感じさせず、探究心が強く楽しんでいるんだろうな、と思います。
松下:どういう人だと一緒に働きやすいですか。
吉川:分からないことはしっかりと分からないと言える素直な人や休み時間中もずっと本を読んでいるような努力がすごい人は働きやすいですね。また、議論ができる人だと成長できるので、反対に肯定しかしない人は少し苦手ですね。
松下:意見が対立した時はどうしていますか。
吉川:お互いの意見だけを主張しても判断できないので、他の軸(工数など)で考えるようにしています。”議論” がしっかりとできるのはオプティマインドの良いところだと思います。
松下:それは良い雰囲気ですね、本日はありがとうございました!