見出し画像

現場の検収員の声を反映したアプリケーション開発ーEVERSTEELで抱いた未来への挑戦心ー

EVERSTEEL2人目の従業員のご紹介です!
創業期からエンジニアとして開発に携わってきた片桐。現場に足を運び、より良いアプリケーション開発に臨む気持ちと開発へのこだわりを熱く語ります。


プロフィール
片桐康平
ソフトウェアエンジニア
中央大学理工学部情報工学科卒
在学中にプログラミングに出会い、興味の赴くままに情報技術や設計、アルゴリズムなどを学ぶ。学んだ技術を社会で活かすことができず迷走していた時、佐伯さんと出会いEVERSTEELのエンジニアに。猫好き。


EVERSTEELにはどのような経緯で入社しましたか?
佐伯さんに拾われました。笑
大学在学中にプログラムにのめり込みました。できることが少しずつ増えていくのが嬉しくて、学業もそっちのけで没頭。興味の赴くままに情報技術を学んでました。
しかし大学を卒業した後は、せっかく学んだ技術を社会の中で活かすことができず…笑
これからどうしようかと悩んでいた頃、佐伯さんに出会ってEVERSTEELに誘われました。不安はたくさんあったけど、飛び込んでよかったと思います。

■もともと環境課題に興味はありましたか?
僕自身が強い意志で環境課題に取り組もうとしたことはなかったと思います。鉄鋼業界が CO2 を最も多く排出する業界だということも知りませんでした。
自分でも環境課題に興味を持つようになったのは、田島さんがこの事業にかける思いを聞かせてくれた時からです。
そして現状を知り、他人事ではない、なにかが変わらなければいけないと考えるようになりました。

■どのような業務を担当していますか?
EVERSTEELでは、開発された AI を実際に利用するためのアプリケーションを提供しています。私はこのアプリケーション開発に関わる業務を広く担当しています。
現場検収員が直接触ることができる「フロントエンド」、直接触ることはないがアプリケーションの動作に不可欠な「バックエンド」、これらのロジック/データ設計・実装・保守・運用を主な業務としています。
実際にアプリケーションをお使いいただく検収員の方から直接お話を伺えることもあります。
検収員さんからのフィードバックを受け、必要な機能があればそれを実現し、残念なポイントが挙げられればそれを改善します。
安全で使いやすいアプリケーションを作るのが私の業務です。

■EVERSTEELではどのような言語や環境を使って開発をしていますか?
一部のサーバで Python を利用することがありますが、基本となる言語としては TypeScript (実行環境は Node.js)を利用することが多いです。
バックエンドには GraphQL サーバとして AppSync 、NoSQL Database として DynamoDB などを利用していて、 AWS を用いたクラウドベースの開発を行なっています。
インフラストラクチャの定義には主に AWS CDK を利用。こちらも言語は TypeScript です。
フロントエンドでは UIライブラリに React.js、フレームワークとして Next.js を利用しています。

■スピーディーな開発をするために工夫していることはありますか?
実は開発環境には少しだけこだわりがあります。(開発環境恥ずかしいので軽く…)
開発を行うための環境は自宅のデスクトップに用意しています。
このデスクトップは少し古いですがそれなりのハードを搭載、OSは(Arch)Linux。開発を行う際は主に tmux + NeoVim を利用していて、その他のツールを含み設定ファイルは定期的に更新しています。
外出する際には学生時代に初めて購入したMacbookを持ち歩くことが多いのですが、こちらの開発環境はロクに整えていません。笑
しかし外出先でも同じ環境で開発を行いたいので、AWS EC2 (仮想サーバ)を用いてリモートアクセス可能な VPN を構築しています。(VPNの構築には WireGuard を利用しています。イケイケです。笑)
自身の開発環境だけでなく、チームとしてスピーディーな開発を行うために、最近はユニットテストなどを含む自動テストを重視しています。
実装の際はテストを記述すること/テストが確実に走ること/そのテストが成功すること、これらを確認できるような開発環境を現在進行形で構築中です。
安全な開発・デプロイ・フィードバックを実現するための CI/CD パイプラインの構築も最近の目標の一つです!

画像

■チームではどのように仕事を進めていますか?一日や一週間のスケジュールも教えてください!
AppチームではPMの佐伯さんや数名のエンジニアと共に、重要度・緊急度・実装コストなどを考慮し週ごとに計画をたてます.
同様に週ごとの振り返りを行い、継続 / 反省すべき点を明らかにし、さらに次の計画にこれらを反映させます。
平日は毎日のMTGを行うようにしていて、タスクの進捗共有・開発に関する議論や相談事・次に着手するタスク内容やバックログの作成・整理などを行っています。
週の計画 / 振り返りは主に月曜の午前中 / 夕方、毎日のMTGは夕方に行うことが多いです。
これらの定期的なMTG以外では多くの時間を設計・開発に充てています。
基本的に自由な働き方が可能なので、仕事の合間に家事や気分転換などを挟みつつ、働いています。お昼と夕方には特に長めの休憩を取るようにしていて、ある程度まとまった時間でゆっくり食事を取ったり、日によっては昼寝や筋トレをして、仕事の時間を調整しています。
あんまり朝は得意じゃないですが、午前中に開発するのが好きです。

■EVERSTEELでは現場に根ざした開発を大切にしています。片桐さんも工場に行くことがあるそうですが、現場でどういった事をして、どのように開発に活かしていますか?
開発中のアプリケーションを実際に触ってもらいながら、操作方法の説明・作業員の意見をヒアリングすることが多いです。
「わかりづらい操作」や「開発者の意図しない操作」、「興味を持ってもらっている情報」などを明らかにするためにも、目の前でアプリケーションを操作してもらうことには大きな意味があると考えています。
稼働環境の調査のためにクレーンに乗せてもらうこともあります。この時は特殊な環境においてアプリケーションがどのように動作するのか確認できます。
視界、明るさ、音によりアプリケーションの見え方が変わるかもしれません。
通信が安定しない状況では、未知の例外からインシデントにつながることがあるかもしれません。
以前クレーン操作を見させていただいた際には、「複雑すぎる操作は操業中の事故につながるかもしれない」といった気づきがありました。
鉄スクラップ工場という独特の現場環境には、無視してはいけない情報がいくつも含まれていると思います。
アプリケーション自体の使い勝手だけでなく、これがもたらしうる影響にまで視野が広がる。工場への訪問は、機能開発を行う大前提の土台として重要な意味があると思ってます。

■現在EVERSTEELでは、採用活動を進めています。応募を検討されている方にメッセージをお願いします!
鉄の未来が変われば世界の未来が変わります。そのためにはまだまだ仲間が必要です。
新しいことでも臆せず、簡単ではないことでも楽しみながら挑戦するメンバーと一緒に、EVERSTEELで鉄の未来を変えましょう!


EVERSTEELでは、一緒に働くメンバーを募集しています!
ソフトウェアエンジニアに限らず、幅広い職種を募集していますので、気軽にrecruit@eversteel.co.jpまでご連絡ください!

AIエンジニア
ソフトウェアエンジニア
インフラエンジニア
ハードウェアエンジニア
MLOpsエンジニア
BizDev(鉄スクラップ解析AI)

コメント

ログイン または 会員登録 するとコメントできます。
EVERSTEELは、鉄鋼材のリサイクル原料である「鉄スクラップ」をAIで自動解析し、効率的な品質管理を可能にするアプリケーションの開発を行う東京大学発のスタートアップです。EVERSTEELや鉄鋼業界、環境問題について発信していきます。
現場の検収員の声を反映したアプリケーション開発ーEVERSTEELで抱いた未来への挑戦心ー|EVERSTEEL
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1