Staff Story
#09

新卒入社(2019年) AI・IoTサービス開発部 OPTiM AI Camera Enterprise開発チーム エンジニア 坂井

新卒入社(2019年) AI・IoTサービス開発部 OPTiM AI Camera Enterprise開発チーム エンジニア 坂井

「OPTiM AI Camera Enterprise」開発チームのエンジニアとして、要求の機能・デザイン案への落とし込み、設計から実装・テストを担当。さらに、開発スケジュールの策定・調整などにも携わっている。

就職活動の際にオプティムに入社を決めた理由についてお聞かせください

オプティムには学生時代にインターンシップ、アルバイトを経て新卒で入社しました。 入社の決め手となったのは、インターンやアルバイトの際に一緒に仕事をさせていただいたオプティムスタッフの方々が、みなさん開発を楽しまれており、私自身も一緒に働いていて楽しかったというのが大きいです。 主に技術検討関連のタスクを任されていたのですが、新しい技術が社会課題の解決に利用できるかどうかの検証や、案件紐付きのデータ・クラスタリングの方法の検証、クローラーロボットの走行制御など多くの経験をさせていただきました。このように幅広い分野にオプティムがチャレンジしていることを体感できたというのも決め手の一つです。

アルバイト時代と新卒としての入社後でのギャップはありましたか?

アルバイト時代はエンジニアのメンバーとの交流のみでしたが、新卒としての入社後にはセールスや企画とのミーティングがあるというのは良いギャップでした。アルバイト時代はタスクの中で検討していましたが、セールスや企画とのミーティングを行いながら、市場価値・顧客要望・戦略・技術の観点でどのようにサービスを育てていくかを検討するというのは難しくもあり楽しいです。

入社から現在まで、どのような業務を担当されてきたか教えてください

入社時から「OPTiM AI Camera Enterprise」の開発業務をメインで行っています。 入社一年目は要件が決まっている中での機能の実装や全体の設計把握がメインのタスクでした。二年目では設計やセールスチームからの問い合わせ対応、不具合対応などが加わりました。 現在は、具体的には要求を機能・デザイン案に落とし込み設計から実装・テストを行うと同時に、開発スケジュールの策定・調整を行っています。

現在の業務のやりがいを教えてください

市場や顧客の要望を踏まえつつサービスの方向性を外れないように機能を開発していくことです。特定の顧客に寄り添いすぎるとサービスの汎用性がなくなりますし、要望を蔑ろにすると市場価値がないサービスになってしまうような側面がありバランスをとりつつプロジェクトを進めていくことにやりがいや魅力を感じています。

業務で苦労したこと、それをどう乗り越えたか、エピソードを教えてください

担当しているプログラムモジュールの再設計&実装が特に印象に残っています。当時私は二年目だったのですが、旧モジュールが顧客要望による変更に応えられなくなることが見えてきはじめたため、旧モジュールの置き換えの提案をし、そのプロジェクトが走り始めました。既存の機能の挙動を保証しつつ実装する必要があり、旧モジュールがlint(ソースコードの静的解析ツール)の導入もないような状態でしたので参考にすることができない中、1から作り直しました。大変でしたが、当時開発したものが、新規案件ベースの開発に採用されているので印象に残っており、やりがいを感じました。

どんな開発環境で開発をしていますか?技術選定にも関わっていれば、その技術を採用した理由なども教えてください

開発環境は、ざっくりですが、Golang, GitLab Runner, Open API, Vueなどを採用しており、これら全ての技術選定に関わりました。 Golang、Vueはチームのナレッジが多かったので採用しています。 GitLab Runnerは、GitLabを社内利用しているため導入が容易であったため採用しました。 Open APIは、API の IFの定義ミスをなくすことや設計段階で YML を書くことでドキュメントと構造体の保証ができるため採用しています。 また、CI/CD では、各種モジュールに対しては、lintやテスト、イメージのプッシュ、ドキュメント生成やコード生成を整備しています。開発者のレビューやドキュメント整備の工数を削減できるものを積極的に採用しています。例えば、API仕様書やDB定義書はYAMLやDDLから生成されます。

オプティムの社風やコミュニケーションについてどのように感じていますか?

社風については、年齢やキャリアを問わず意見を出しやすいですし、意見を求められるシーンも多々あります。 コミュニケーションはミーティングやチャット、対面などを駆使して必要があればすぐにコミュニケーションを取り合っています。また、社内に技術的な知見を貯めることができる社内版Qiitaのような掲示板があったり、定期的に勉強会なども開催されていたりと、技術やナレッジをキャッチアップ&発信できる機会が多いです。

セールスや企画とのミーティングをしながらサービス検討を進めるとのことでしたが、具体的にはどのような連携や接点になるのでしょうか?また、その連携があることで、どのようなメリットがありますか?

セールス・企画とは毎週ミーティングで顧客の温度感や新規の要望などの共有や開発状況の共有を実施しています。それによって、開発としてはいくつかの要望を事前に頭の片隅に置いて設計などを進めることができるため破壊的な修正を軽減できるといったメリットがあります。また、開発側が抱えている技術的負債や問題を早期に共有することで、セールス・企画側はリスクを把握し、販売やプロダクトの方針が策定されるので部署間の認識齟齬によるトラブルの発生の軽減にも繋がっていると思います。 実際に開発した製品の導入時にセールスと同伴して、反応や要望を直接伺うことやセールス・企画とのコミュニケーションを通してプロダクトへのフィードバックを常に意識ができます。

最後に、今後取り組んでいきたいことやキャリアパスを教えてください

プロダクトに対する審美眼を鍛えていきたいと考えています。ユーザーから見えるプロダクトに対しては、製品の扱いやすさや満足度を意識する必要があります。また、開発者としては効率よく開発可能な資産になっているかどうかを意識する必要があると考えています。それぞれの立場から見て良いプロダクトだと言えるエンジニアリングを行えるよう成長していきたいですし、オプティムはそれが出来る環境だと思います。