▼小嶋陽介(こじま・ようすけ)
大学卒業後、フルスタックWeb・Mobileアプリ開発、コンピュータサイエンスの独学を数年続けた後に、フリーランスのソフトウェアエンジニアとして開発者人生を歩み始める。React Nativeを用いたE-commerceアプリの開発に従事する中、アダコテックからスカウトを受け正社員のフロントエンドエンジニアとして参画。製造業における外観検査向けのアプリケーション「AdaInspector Cloud」の開発に従事した後、現在は欠陥分類アプリケーション「Shiwaketter」の開発に携わる。
ーーー本日はよろしくお願いいたします。 まずはじめに、独学上がりでフリーのエンジニアとは少し変わった経歴ですが、経緯を詳しく聞かせてください。
大学卒業後は何となくセールスマンに憧れ、適当な気持ちで損害保険会社の総合職に就きました。しかし、働き始めて3ヶ月ほど経ったところでYouTubeでたまたまお勧めされていた6時間くらいのHTML/CSSのcrash courseビデオを見てなんとなく写経してみたところ、自分で打ち込んだものが画面に反映されることにとても面白みを感じました。
元々、大学でC言語の授業を受けたことがあり、「〜なアルゴリズムを実装しよう」といった目的が分からない退屈な内容に辟易し、プログラミングに対して悪い印象を抱いたことがありました。
しかし、HTML/CSSを知ってから「こんな感じでYouTubeやAmazonが作られているんだ」という青写真が見えて、この道を極めたいと強く感じました。入社したばかりの会社には申し訳なかったですが決断は早く、仕事を辞めて一念発起しプログラミングの独学を始めました。
独学に関しては、英語のみで情報収集していたことが武器になりました。ChatGPTのない当時だと英語で情報収集できる力は特に重要でした。技術系の情報はUdemy教材やStack Overflow、GitHub、YouTubeなど、インド人をはじめとした英語ユーザーによる情報量は日本語のそれとは比べものになりません。当時から特にJavaScriptの情報量が膨大で、一つの言語でバックエンドとフロントエンドを開発できる強みに惹かれ、これ一本を極めることにしました。データ構造・アルゴリズムと言ったコンピュータサイエンスの教養にも興味を覚え、開発を一通り学んだ後に学習しました。
皮肉な話ですが、大学の教授の話は何一つ理解できませんでしたが、一人で自分のペースで学習するとよく分かりました。
ーーーそこからフリーランスへどうやってなったのですか?
技術資産を貯めてきたことがキャリアを切り開くきっかけになったと思います。
JavaScriptを極めWeb開発やMobileアプリ開発を理解してからは、自分でアプリを作ってSNSで使ってくれそうな人を見つけて使ってもらったりしてました。一から自分が好きなようにものを企画し設計しデザインし、実際に作り公開する、そして自分が伝えたい機能性がユーザーに伝わり目を丸くして驚く姿を見たときはとても嬉しいものでした。「ここが動かないよ」といった報告をもらっては直す、というユーザーとのコミュニケーションも含めものづくりを楽しんできました。開発を教わったことのない自分にとっては、自分でものづくりするこの経験がエンジニアとしての原点です。
アプリ自体そこまで使われることはなかったですが、このように個人でものづくりを継続するとポートフォリオが充実してきました。自分のGitHubをアピール材料に、あるスタートアップのMobileアプリ開発チームに声をかけさせていただいたところ、当時のチームのVPoEから反応があり、面談とライブコーディング面接を経てそのチームにフリーランスとして参画しました。
独学で培った粘り強い情報収集力、またデザインやユーザー体験の構想力を武器に開発してきました。アプリは私含め2人体制の開発で、設計手法などはもう一方の経験豊富な方の書くコードから見て学んでいきました。
開発者としての最初の現場がフリーランスという明確に結果の求められる環境で、常に成果にこだわり継続的に仕事をいただけたこと、そして曲がりなりにも個人開発で培ってきた能力が成長著しいスタートアップでも通用したことは自信になりました。
ーーーアダコテックに興味を惹かれた理由とアダコテックに入社を決めた理由、実際に入社した後の働いてみた感想を教えてください。
フリーランスのチームは完全フルリモートで、デザイン、フロントエンド、バックエンド、カスタマーサポートと完全分業体制で動いていましたが、私としてはデザインやソフトウェアの仕様設計、また営業や事業開発部の方々たちも巻き込んだ開発をしてみたいしてみたいという思いがありました。
そんな中、アダコテックの当時の役員の方からお声がけいただき、カジュアル面談等を通じて話を伺う中で自分が挑戦してみたいことができそう、また同時にUI/UX部分にも課題感があるという話を伺いました。デザインやユーザー体験に対するこだわり、そしてそもそも外観検査や機械学習などの事業領域を知らないことがある意味活かせるのではないかということでアダコテックに入社を決めました。
ーーー実際に入社した後の働いてみた感想や、入社前後のギャップについて伺わせてください。
二つ素晴らしく感じていることがあります。一つは、アダコテックが「変わる」ことに積極的であることです。
AdaInspector Cloudは、異常検知のための学習モデルを作るクラウドアプリですが、操作性や画面内の文言など外観検査や機械学習の背景知識といった文脈を持っていない自分が業界特有の文言や使い方に慣れるのに時間がかかりました。また、主たる機能であるモデル作成の導線設計が結構複雑で、同じチームの方に助けてもらいながら数週間ほど毎日触っていないと理解できないものでした。同時に自分で密かに「こうなったらいいんじゃない?」といった感じでアプリのデザインスケッチを始めていました。
ただ、これはPOの方も同様な気持ちであったようで、私が入って2, 3月ほどでUI/UX改修プロジェクトを立ち上げてくださり、数ヶ月に渡って課題感のあったUI/UXを「もっと簡単に使えるようにしよう」という方針を打ち立ててくださりました。そこでは自分が製品に触れてきて感じた課題感をメンバーに伝えてきたところ、フロントエンド開発に加えデザイン業務も任せていただきました。figmaでのデザイン手法も一から覚え、顧客の事情を知るメンバーと議論を重ねながら、一からデザイン・ユーザー動線を設計しました。あえて、既存のデザインや事情を無視して進めましたが、承認いただきそれを基に開発をし無事出荷することができました。
技術的な面でも、保守の難しいと感じていたリポジトリ構成を大きく変え、新しいライブラリやDevinといったAIツールも積極的に導入し取り組んできています。このように、一度決めたやり方やルール、仕組みに固執せず変化していくことを厭わない部分はアダコテックの強みで、入社前に想定していた以上でした。
また、顧客のリアルに向き合えることも魅力的です。私自身は外観検査や製造業といった業界を全く知らない人間で、AdaInspector Cloud上で学習モデルを作った後に実際にどう検査装置に組み込まれ現場で良品、不良品判定に用いられているのか、そのリアルが最初は全然想像ができませんでした。
ただ、この業界に精通された事業開発部の方話を伺ったり、ものづくりワールドの展示会での事業開発部のお客さんとの話し振りを後で眺めさせていただき「そういったことに関心があるのか。」という部分を間近で見せていただいたりして、徐々に顧客に対する解像度を上げていくことができています。今後、顧客との関わりが多くなってくると思いますが、会社の人数が少ない分、開発部と事業開発部、時には経営層との垣根がないことは魅力的で想像以上でした。
ちなみに働く環境についてですが、出勤体制は週2出社推奨で、フルフレックスで時間に自由に働くことができること、綺麗なweworkでリラックスして働けること、初月から有給を取得できることも働きやすさに繋がっていると思います。
ーーー人としてこれからどのようになっていきたいですか?
世界のどこにいようが関係なく、自分にしか発揮できないようなものを世の中に届けられたら嬉しいです。「スキルの掛け算」とはよく言われることですが、人生ソフトウェアエンジニアリングに全振り、というよりもエンジニアリングに加えてマーケティングや金融、といった全然関係のない分野をうまく組み合わせて「これ面白いね、これ便利だね」と世界中の人から声をもらえるようなものを世に出せたら嬉しいです。具体的には、、、まあ分かりません。人生何が起こるか分からないですからね。
ーーー最後に、どんな人と一緒に働きたいですか?
「もので語る」姿勢の人は魅力的です。例えば開発であれば、あればいいなと思う機能を大まかに試作して「こういうのはどう?」と提案してみる。pseudoコードだけど、こういう設計はどう?とソースコードを見せる。デザインであれば、Figma等のソフトウェアを使わなくとも紙やホワイトボードに書いて自分のイメージを書いて見せてみる。行動力が求められることですが、具等的なものを軸としたコミュニケーションは口頭でのコミュニケーション以上に明快です。
また、具体的なものがあれば質問も多く生まれ、より議論が濃くなるでしょう。そういった行動力のある方と働くことができたら嬉しいです。