新卒入社(2024年)DXビジネス開発部 DX Portal開発チーム エンジニア 菅原
「OPTiM Support & Growth Portal / OPTiM Hardware My Portal」開発チームのエンジニアとして、技術選定、設計から実装・テストを担当。
新卒入社(2024年)DXビジネス開発部 DX Portal開発チーム エンジニア 菅原
「OPTiM Support & Growth Portal / OPTiM Hardware My Portal」開発チームのエンジニアとして、技術選定、設計から実装・テストを担当。
中学生の頃からパソコンに触れることが好きで、高専への進学を決めました。 高専では電子計算機部に所属して高専プロコンなどに向けて活動したり、機械技術部も兼部し、ものづくり活動に熱中したりする中で、「自分で仕組みを考えて実現する」楽しさに目覚めました。この経験が、私のエンジニアとしてのキャリアの原点です。
高専・大学時代から興味を持っていたIoTへの取り組みを積極的に行っている点や、幅広い分野についてスキルを磨くことができる環境である点に惹かれました。 高専時代からRaspberry Piなどのデバイスを触ったりロボットを動かしたりすることがあり、現実の物体に関わるIoTという分野に興味を持っていました。高専卒業後は大学に進学したのですが、大学でもそのような研究に着手できる研究室に所属しました。 また、学生時代の開発経験はフロントエンドが中心でしたが、私自身がバックエンドやインフラなど幅広い分野に強い関心を持っていたため、仕事を通じてこれらの知識を横断的に習得できる環境を求めていました。オプティムでは、多岐にわたる技術を吸収でき、その知識を踏まえた上で、ものづくりをしていく過程での自分自身の最適な選択・動き方ができるようになりたいと思い、入社を決めました。
入社後はOPTiM Hardware My Portalチームに配属され、1週間バックエンドのAPI開発を経験したあとは、フロントエンド開発を中心に担当しました。 特に大きな転機は、入社から8ヶ月ほど経過した後に担当したOPTiM Hardware My Portalのデバイスエージェント開発です。デバイスエージェント開発は一人のエンジニアが担当する裁量が非常に大きく、技術選定、設計、AWSのリソース作成、プログラムの実装まで、一連の開発プロセス全てを担当しました。 現在は、Windows向け遠隔操作アプリの改修を担当しつつ、フロントエンドリポジトリの改善活動にも取り組むなど、常に新しい技術課題に挑戦しています。
フロントエンドはNext.jsやMUI(Material UI)、バックエンドやデバイスエージェントはGoを主に使用し、WindowsアプリではC++を使用しています。また、必要な時にはTerraformでAWSリソースの作成も行います。開発環境は普段Macですが、Windowsアプリの開発のためにはWindows PCも必要になるので、オフィス・自宅どちらでも利用できるようにWindows PCへの遠隔接続も活用するなど、必要な技術・環境を柔軟に使い分けて業務を進めています。

設計から実装まで大きな裁量を持って担当できることです。 技術選定から始めることもあり、その技術を採用する根拠を徹底的に調査し、比較検討するプロセスは大変ですが、そのまま自分の知識になるのでやっていて楽しいです。自身で考えて実装したものが想定通りに動いてくれるとやはり嬉しさを感じます。また、知識豊富な他のメンバーとの相談や議論を通じて、自分にはない観点や知識が得られることも、大きな刺激になっています。

最も技術的な難しさとやりがいを感じたのは、IoT関連の取り組みです。 かつて、IoTゲートウェイの検証中に、再起動後に機器内の一部データが消失するというトラブルがありました。ストレージにデータを書き込む処理中に電源を切ったことが原因でしたが、直前に定期的なログの書き込み処理を追加したことが影響しているのではないかという仮説を立て、検証に取り組み、問題発見につながりました。リリース前に発見し、スピード感を持って修正できて良かったと感じています。 実際に運用が始まると、問題の原因がソフトウェア、ハードウェア、作業手順のどこにあるのか、切り分けが難しい場面に直面します。そのような場面では「このように実装しておくべきだった」「この設計の方が良かったのでは」など、設計当初はなかった考えを持つことがあります。これまでの業務を通して知識や経験を積み、エンジニアとしても少なからず成長することができたのではないかと思っています。
チームごとに雰囲気や扱っている技術が大きく異なる点です。私たちのチームのように立ち上げ初期で「良い仕組みを自分たちで作っていく」という自由度の高い環境もあれば、長年運用されているプロダクトでは「確立されたナレッジ」を学べる環境もあります。自分の成長フェーズや志向に合わせて、異なる特色を持つチームから刺激を受けられるのは大きな魅力です。また、Next.jsやGoといった技術はもちろん、Windows、モバイルアプリ、ロボティクス、IoTなど、ほとんどの分野で社内に専門知識を持つ方が在籍していることは、技術者として非常に心強いです。

今後は、より全体と将来を見通した上での設計や技術選定、実装ができるエンジニアを目指したいです。何かを開発するにあたり、将来的にどういった要望や問題に対応できるようにしておく必要があるのか、コストや複雑さを含めて考えたときに一番適した選択肢はどれかを深く考え、プロダクト開発に貢献したいと考えています。そのためにも、自分の担当分野の知識を深めるだけでなく、他チームの良い開発手法や設計などを積極的に参考にし、プロダクト開発に取り入れていきたいと思います。
興味を持ったことについて、ぜひ徹底的に深掘りしてみてください。 私は学生時代にLinuxに興味を持ち、いろいろなLinuxを自分のパソコンに入れて遊んでいる時期がありました。それを通して情報を集める力や問題を解決する力が養われたと思います。その時の経験が元となり、業務を進める中でも「こういうコマンドがあるのではないか」「おそらくこの辺りに設定ファイルやログが配置されているはず」といった仮説を立てながら作業することができ、問題解決に活かせているのではないかと思います。IT分野に限らず、過去に夢中になった経験は必ず業務に活きてきます。好奇心を大切に、今のうちにどんどん学んでいって欲しいと思います。
