Arithmer入社前後の技術スタックの変化

Arithmer SRE Team 木戸です。

今回は前職及びArithmerでの私自身の技術スタックの変化について書こうと思います。

前職での業務分野

前職は、某メーカー企業で組み込みプログラムの開発をしていました。

マイクロコンピュータ上で動作するプログラムで、OSは使用せず、電源が入ると無限ループで動作し続けるC言語の低レイヤのプログラムです。

例えば、冷蔵庫(実際には私は冷蔵庫のプログラムをよく知りませんが、)の温度を一定に保つために、組み込みプログラムが動作していたりします。

一定時間ごとに現在の温度をマイコンに接続されたセンサーから読み取り、設定温度との差分から、コンプレッサーへの出力指令を計算し、シリアル通信などによって別のコンポーネントに情報を伝える、といったものです。

実際に私が関わっていた製品ではリアルタイム性というものが重視されていました。

リアルタイム性というのは、「処理が早ければいい」というものではなく、「ある時間までに処理が終わっている」という性質です。

リアルタイム性とは、プログラムの処理が設計した時間内に必ず実行されるなどのように、現実時間と処理との間の関係を意識して作られている、という性質を意味する。 高性能なコンピュータで瞬時に処理できるかどうか、という点は重要ではなく、低性能のコンピュータでも、遅いは遅いなりに毎回必ず設計された時間内に処理が完了していれば、リアルタイム性があると言う。

引用: https://ipsj-catalog.jp/glossary/parlance/04.html

引用: [Wikipedia](https://en.wikipedia.org/wiki/PID_controller)

現実時間に対応して、時間積分、微分などを行って信号を出力する場合は、当然現実時間と同じタイミングで出力を更新していなければなりません。

専用のタイマーモジュールによる一定時間ごとの割り込みや、処理負荷を加味した設計、実装によってそれを達成していきます。

また、センサーやDA出力器などを使用するために、マイコンのスペックを見ながら直接I/Oのメモリ番地をRead/Writeしたり、CPUのレジスタを意識することもあります。

Arithmerへ入社後

Arithmerへ入社直後は、OCRなど扱う、画像処理系のチームに配属されました。

言語はpythonで、豊富なライブラリを用いて画像処理や深層学習などを研究開発していました。

また、パブリッククラウドなどのサーバー上に構築したり、サーバーレスなどを用いたりするようになり、前職からガラッと技術スタックが変化しました。

現在ではSREチームに所属し、アーキテクチャ設計や、バックエンド開発、運用・保守など、さまざまなことに関わっています。

さて、技術スタックがガラッと変わった私ですが、社内で新しく学べる環境があったことがその変化に対応できた要因の一つと考えています。

例えば、Arithmerではエンジニアが自発的に勉強会を開催しています。

入社したての頃には、まだまだエンジニアの数も少なく、機械学習に関して精通している人も少なかったため、機械学習の概要の勉強会が開催されたり、また、定期的に論文の紹介などもしていました。

私が現在のSREチームに所属してからは、Linuxの初歩的な勉強会から、仮想化技術の勉強会、Googleの公開しているSRE本の輪読会など、さまざまな勉強会が実施されています。

このように、異なる分野からでも新しいことにチャレンジできる環境がArithmerにはあります。

その他さまざまな分野の人たちがArithmerへジョインしています。

現在業務に直結するスキルが不足していても何か強みのある人は活躍できるチャンスがあると思います。

我々と一緒に新しいことにチャレンジして社会課題を解決しませんか。