Blog

COLSISに入社した鎌田です。

鎌田 航平 自己紹介

自己紹介

はじめまして。6月からCOLSISでエンジニアとして勤務している鎌田です。
新卒で2年ほど勤めた会社を辞め、COLSISに転職してきました。前職が組み込み系の開発会社でしたので、全く別の分野への転職となります。

本エントリでは入社までの経緯と、入社して一ヶ月足らずの時点での所感について記述したいと思います。

前職での業務内容など

大学では電子回路や通信などの分野に関わる研究を行っていたこと、また修論の一部や趣味でプログラミングに触れていたことから、卒業時点で回路とソフトウェアの両方に興味がありました。
それに加えてなるべく北海道を出たくないという気持ちがあり(暑さと満員電車が苦手なため)、北海道で回路設計から組み込み開発まで行える会社があると知り、前職を選びました。

業務内容としては、デジタル映像を扱う機器のFPGAにRTLでコーディングしたり、DSP上にCで機能を実装したり、といったことを担当していました。ソフトウェアとハードウェアの両方に半端に親しんでいたため、社内で折衝というか、通訳じみた動きをすることもあったと記憶しています。

映像機器や音声機器においては、不具合はしばしば目や耳に明らかな形で発生します。映像が乱れた、音声にノイズが混じった、などといった事態は即座にユーザーに知覚され、強い不快感を招きます。

しかも前職で扱っていたのは業務用の機器が主で、長時間の安定稼働が当然に求められていました。
ですので、誤動作の起こらないものを作る、誤動作のテストを十分に行う、誤動作が発見された場合は迅速に修正する、といったことに関してはシビアな環境でしたし、その厳しい要求を受けて身についたものは大きかったと感じています。

転職理由

社内で自分が最初に調査・習得した技術が複数あったり、早い時期から責任の大きな仕事を割り振って頂いたりと、やりがいのある職場ではありました。しかし10年後や20年後のことを考えた時、レガシーな技術しか身につけられなくて大丈夫なのか、という危惧もありました。

RTLでのFPGAのHDLコーディングは職人技めいたもので、特に大規模な回路において、安全性と速度を兼ね備えた実装を行える人間は尊敬に値すると思っています。しかし、Atlas-SoCやPYNQといった形でFPGAベンダがソフトウェア開発者に歩み寄っているような時代に、高位合成を業務で使用していないのはどうなのかな、という疑問も感じていました。

プリミティブな組み込み環境でのプログラミングには、機械とごく近い場所で対話するような楽しさがあります。抽象化の度合いが低い処理を書かざるを得ないからです。ただ、モダンなC++で記述された美しいコードを組み込み機器に移植するたび、逆は無理だ、と感じていました。処理内容をデバッガで調査し、必要な部分だけ組み込みCとして書き下すことはできても、同じ処理を安全で抽象的なC++のコードとして書くことは絶対に無理だという自覚があったのです。C++14、C++17と規格改定が進む中で、C99を満たしているか怪しい開発環境(DSPメーカーが提供するツールを使うしかないので、仕方のないことですが......)でコーディングしていることにも、焦りを感じました。

レガシーな技術を身につけるのは良いことだけれど、先進的な技術にも触れておかないと技術者としての未来がないのではないか。知った上でレガシーな技術を選ぶのではなくて、そもそもそれしか知らないという状況は流石にまずいのではないか。そう考えた末、転職を決意するに至りました。

COLSISへの転職について

大学の頃から薄々感じてはいましたが、自分には回路のセンスが欠如しており、相対的にはプログラミングのほうがまだ戦えるようでした。よって、ソフトウェア系の職を探すことにしました。そして先進的な開発環境といえばウェブ業界であろう、場所は過ごしやすい札幌がいい、という短絡的な思考のもとに調べた際、候補に上がったのがCOLSISです。

実際にお話を伺った時、現場で働く技術者の目線での語りが多かったこと、そして「新しい技術を常に身に着けようという意欲が要求されるが大丈夫か」といった旨の確認を繰り返しされたことが印象的でした。上述した通り、そのような環境に身を置きたいと考えていたので、うまくマッチングできたと感じています。

使用する言語がPerlとPythonであることには不安もありましたが、前職も入社してからC++とVHDLを覚えた(プログラミング言語を覚えた、の定義には諸説あるかと思いますがここでは想定されうる最も低い基準を採用します)のだから大丈夫だろうと思い直し、入社を決意しました。

勤め始めてからの所感

ここ一ヶ月はPerlの学習とVirtualBox上でのLinuxサーバの構築練習を行っています。前職がCとVHDL、開発機はWindowsという環境だったので、様々なことを一から覚えているところです。

Perlでは変数名に$や@や%が付与されることに当初は違和感を覚えていましたが、慣れてくると明示的に表記することで可読性が上がるような気がします。forが実質foreachだったりするのも驚きましたが、配列を舐める際には簡潔に表記できますし、範囲演算子でリストを作ればイテレータを伴うループも簡単に書けるのですぐ慣れました。

総じて表現力に富む言語だという感想です。あとはやはり文字列操作が非常に楽で、人間はchar型配列で文字列を表現すべきではないと改めて思いました。あとはCPANと仲良くなれれば、と思っていますがしばらくは難儀しそうです。

おわりに

技術的に重なるところの薄い業界からの転職ということで、長めの自己紹介を兼ねつつ、自分と同じような境遇の方に参考になればと思いながら書きました。

社内の方も社外の方も、これからどうぞよろしくお願い致します。

執筆者

icon

鎌田 航平

一覧にもどる