Gizumoの小松です。
みなさまにGizumoのことをさらに知っていただきたいと思い、メンバーのインタビューを行っています。
今回は、エンジニアとして開発部に所属している『渡邊』にお話をお聞きしました!
渡邊さんは、幼いころからプログラミングに触れており、Gizumoには実務未経験で入社しました。今では社内外でVimmer(※Vimというテキストエディタをメインで使っている人を指す)として活躍しており、社内でも積極的に勉強会を開催するなど、Gizumoの技術力向上に欠かせない存在です。
今回は、そんな渡邊さんを採用した取締役COO安藤との対談形式で、技術に対する想いを語っていただきました!
以下、
‐ インタビュアー:安藤
インタビュイー:渡邊
▍プログラミング学習と入社の経緯
‐ 僕はこれまで何人もの採用面接に入らせてもらっているんだけど、その中でも渡邊くんは強烈に記憶に残っている求職者の1人だと思う。「この人僕よりVimに詳しい!」と思って(笑)
自分もGizumoの最終面接で安藤さんとお話したことは覚えています。前職では警備員として働きながら趣味でプログラミングを勉強していたので、「ちゃんとプログラミングの勉強をしていますよ」ということを伝えて”エンジニアになりたい”という意志表明をすべきだな、と思って面接に挑みました。あとは、技術の話を語っても受け入れてくれる会社があればいいなと考えていました。
- もともとはどういった経緯でプログラミングの学習を始めたの?
プログラミング自体は小学校5~6年生くらいから触れていました。最初は親のPCを借りて画像編集したりExcelで遊んでいた程度だったんです。そこからなんとなくウィジェットアプリの「config.ini」というファイルをメモ帳で開いてみたら読めない文字がたくさん出てきて、それをいじってみると法則性が見えてきたりアプリの挙動が変わることに気がついて、いつの間にかOSっていうレイヤーまでのめり込んでいました。
当時たまたま見たYouTubeの動画で、LinuxをUSBにインストールして使うものが紹介されていたのですが、コマンドで操作したり3Dグラフィックみたいなものでウィンドウを変更しているのがすごくかっこよくて。「自分もやってみたい」と思ってLinuxを触り始めました。間違えて親のPCのOSを消してしまって動かなくなったこともあります(笑)
‐ 子どもの頃からトライアンドエラーを繰り返して法則性を見出すってすごいよね。まさにエンジニアという感じで、天職だと思います。
学習を始めたきっかけはトライアンドエラーですが、学習を進めるにつれて体系的に学ぶことの重要性にも気が付きました。最近はアルゴリズムやコンピューターサイエンスの本を読んでいたりとか、技術以外にビジネスの本も読むようにしています。
子どもの頃にプログラミングやLinuxに出会って、当時は「よく分からないけどかっこいいな」と思っていた世界に、自分が少しずつ近づいている感覚があります。プログラミングを通して何でも作れるようになったり、憧れていた世界で実際に仕事ができていることに毎日ワクワクしています。
‐ Gizumoに入社する前はどのような学習をしていましたか?
メインの学習としては、Vim scriptという言語でVimのプラグイン(※機能を拡張するソフトウェア)を作成していました。例えばIMEと呼ばれるものだと、PCで文字を入力する際に”かな入力”や”ローマ字入力”などの状態を表示してくれますよね。Vimの日本語入力プラグインでは現在の入力状態を確認する機能がなく、画面上に入力状態が表示されないと不便なため、日本語入力プラグインで提供されていた入力状態を確認するAPIを使用して、画面表示しやすくなるようなプラグインを作りました。
あとは、Pythonも学習しました。PythonでDiscord Botを作って、ユーザーが入力したものによってロール(※メンバーに付与される役割のようなもの)を変更したり、サーバー上に設定されているロールを自動で振り分けたり、いわゆる認証機能みたいなことをしていました。
‐ ITに関する学習を始めるときにVimや認証機能からスタートする人ってそんなに多くないと思うんだけど、どういう着眼点で学習を始めたの?
Vimに関しては、「キーボードだけで操作できたらハッカーっぽくてかっこいいな」というのが最初のモチベーションでした。初めは、見た目を良くしたりファイル検索を少し早くしたりと趣味の範疇でカスタマイズを行っていたのですが、ただ早く検索するだけでは意味がなくて、遅くなっている原因を把握して解決することが大切だと気がつきました。それでVim scriptを深く学び始めました。
認証機能は、当時Discordでいろいろなコミュニティを見ていて、「自分が管理者だったらどんな機能があったら嬉しいかな」と考えたときに、「認証機能みたいなものがあれば、今感じている問題が解決できるかもしれない」と思って調べてみたことがきっかけです。PythonでDiscordを操作するライブラリがあると知って、じゃあPythonを学習してみようって。
‐ エンジニアを目指す人って、「ポートフォリオを作らなきゃ」とか「学習した成果を残さなきゃ」という気持ちで学習していることも多いんだよね。だけど、渡邊くんは「こうしたら便利だな」という想いが先行しているよね。まず課題があって、それを解決するために技術を身につけるのは、まさに開発の本質を突いていると思う。
ポートフォリオを作るための学習だと、続けるのが苦しくなってしまうと思うんです。Linuxの作者であるリーナス・トーバルズの、”Just for Fun(それがぼくには楽しかったから)”という言葉があるのですが、自分が楽しいと思えるものって継続しやすいです。当時はDiscordのコミュニティに入ってみんなの困っていることを解決するのが楽しいと感じていたので、それを学習のモチベーションにできたのだと思います。
逆に、Web開発については入社まで触れてこなかったので、IT業界で働くために必要な知識はGizumoで学ばせていただきました。
‐ たくさんのIT企業がある中で、Gizumoに入社した決め手はありますか?
最初はLinuxを扱えるインフラ系のエンジニアを目指していたのですが、職種について調べるうちに、扱える技術領域をもう少し広げていきたいと考えるようになりました。実務未経験ではありますが、自分はVimを使って高速でプログラムを書けるので、それを武器にするべきだと思ったんです。その武器を生かせる場所はどこかなと考えた結果、アプリケーション開発を軸に転職活動を始めることにしました。
ただ、未経験からいきなりプロジェクトに参画してコードを書ける会社ってなかなか見つからないんです。Gizumoの面接を受けた際に、勉強したい気持ちを持っている人にちゃんと向き合ってくれたり、いち早く実務に携わらせていただけることに魅力を感じて入社を決めました。
▍プロジェクトについて
‐ Gizumoに入社してからは、どのようなプロジェクトを経験しましたか?
自分は本来のスケジュールよりも研修を早く修了できたので、まずは開発事業部で受託開発に携わりました。
その後はプロジェクト先に常駐して、主にクレジットカードの決済代行サービスのシステム開発を行いました。決済関係って処理が大変で、障害が起きると広範囲に影響を及ぼしてしまいます。なので、最初はECサイトとの契約を管理する機能のシステム開発からジョインして、徐々に決済の重要な箇所を任せていただきました。少し古いバージョンのRuby on Railsを使っていたシステムへの機能追加や保守運用を中心に、他システムの古い部分をPythonに書き換えたいということで、RubyとPythonをメインで扱いました。機能によってはPerlに触れる場面もありました。
Gizumoの研修ではPHPやJavaScriptを学んだので、研修で扱った内容をそのままプロジェクト先で活かせたわけではありません。ただ、PHPの研修で学んだことはRubyでの開発に活かせましたし、Pythonは独学していたりPerlはVim scriptに少し似ていたりと、自分が今までやってきたことを総合的に活かすことができたと感じたプロジェクトでした。
‐ 常駐先ではどのような役割を担っていたの?
開発業務とリーダー業務を担当しました。「リーダーをやってください」と言われたわけではなくて、気がついたら自然とリーダーのような動きをしていて、チームメンバーからもリーダーとして認めてもらえるようになったという流れです。例えば技術選定やコードレビューをしたり、メンバーのタスク管理をしたりと、業務の中で気になったところを自分やチームメンバーのために改善していました。リーダーとして、いきなり先頭に立つのではなくて、同じ目線で働きながらも頼られる立場であることが理想だと思っているので、チームメンバーとの信頼関係を大切にしながら業務を行っていました。
- 社内の開発部に異動する際は僕が声を掛けさせてもらったわけだけど、どうして開発部にジョインすることを決めてくれたんですか?
純粋にGizumoの社内で仕事をしたいと感じたことが1番の決め手です。
自分が常駐していたプロジェクトは、古いシステムを改善していく、いわゆるレガシーと呼ばれる環境でした。レガシーな技術をモダンにしていく作業を行ううちに、自分も新しいものをもっと学んでいきたいと思うようになりました。Gizumoの社内であれば、最先端の技術に触れながらスキルアップしやすいと感じて異動を決意しました。
社内がとても良い雰囲気であることは常駐している時から感じていましたし、開発部で学びつつ自分も誰かに教えることで、Gizumoのメンバーとスキルアップをフォローしあえる関係でいられるのもいいなと思いました。
‐ 実際に渡邊くんが開発部に異動してくれてから、技術についてより気軽に共有しあえる雰囲気になったと感じているよ。現在はどんなプロジェクトに携わっているの?
主に3つのプロジェクトに携わっています。Laravelを使用した予約システム開発と、AWSを使ったAIの画像解析システム開発、進行中の自社プロダクト開発です。
画像解析システムでは、Amazon Rekognition APIという画像解析系のAI機能を活用しています。他にもAmazon EventBridgeやAWS Step Functionsなど、AWSのサービスをフル活用して学習を回しながら解析しています。技術的なレビューはCTOの坂田さんに相談させていただいています。
自社プロダクト開発ではLaravelとNext.jsを使っています。API開発やバックエンドの機能追加をメインで担当していて、最近はフロントエンド領域にも触れ始めました。フロントエンドの開発スキルはまだ弱いと感じているので、もう少しライブラリなどにも踏み込んで扱える領域を増やしたいです。
‐ 学ぼうと思ったら果てしないよね。フロント、バック、インフラまで幅広く経験した上で、渡邊くんがこれから1番力を入れたい領域はありますか?
もともと扱っていたインフラ周りは興味が強いですが、アルゴリズムみたいなところももう少し自分の手で実装できるようになりたいと思っています。パフォーマンスの問題は、どのプロダクトでも開発を継続するにつれて課題となる部分です。運用を続けていくとデータ量が増えて処理時間が長くなってしまうため、そこをエンジニアリング的に解決するために、アーキテクチャから考えて純粋にプログラムの計算量を減らすことも必要です。コンピューターサイエンスから学んで自分の手で実装に落とし込めるようになれると、技術者として一歩上を目指せると思います。
▍技術力向上への取り組みとGizumoの魅力
‐ 社内で勉強会も積極的に開催してくれているよね。これまでどのような勉強会を実施しましたか?
これまではVimやShell Scriptの講義や勉強会を開催しました。Shell Scriptって万能で、いろいろなプロジェクトでちょっと自動化したいなってときに便利なので、Gizumoのメンバーにも覚えておいてもらえるといいなと思って積極的に発信しています。
あとは最近だと、他のエンジニアメンバーと一緒に、プロジェクト先で困っていることを改善するための『プロジェクト改善勉強会』も開催しました。
自分は技術を取り入れて業務効率化することを得意としているので、勉強会を開催することで、参加してくれたメンバーの作業効率を改善したり、プロダクトを提供するスピードアップに寄与できたらいいなと考えています。もちろん純粋に技術について喋ったり、「これ便利だよね」という会話で盛り上がることも大好きなので、ただ喋るのではなく何かメリットを持たせないとね、みたいな気持ちもあります。
- 今後開催したいと思っている勉強会はある?
先述した『プロジェクト改善勉強会』は今後も続けていきたいです。参加者がプロジェクト先で抱えている悩みを事前に募集して答えていくラジオ形式だったので、主催者側も準備がラクですし参加者側は自分の気になっていることをピンポイントで質問することができて充実した時間になりました。
自分もエンジニアリングのラジオを聞くのが好きなのですが、実際にラジオ形式でやってみて「喋る側ってこんなに楽しいんだ」と体感できたのも良かったです(笑)。『Gizラジオ』みたいな感じで定期開催するのもいいですね。
‐ 単に発信するだけではなくて、渡邊くんにとっても新しいトライになっているんだね。
そうですね。技術について伝えるために、まだまだ自分自身のボキャブラリーも増やすべきだと感じました。会話をたくさんすることでボキャブラリーも育つと思うので、自身の言語化スキルを高める場としても勉強会は役立っています。
技術について人前で喋るのはハードルが高いと感じがちですが、勉強会を通して「自分も喋ってみたいかも」と思ってくれる人が増えたらいいですね。『プロジェクト改善勉強会』も自分ひとりではなくメンバーありきで実現したものですし、一緒になって発信してくれる仲間が増えるととても嬉しいです。
‐ エンジニア目線で見て、渡邊くんが感じるGizumoの魅力はどんなところですか?
まずはチャレンジしやすいところです。勉強会開催にあたり、先輩たちに「こんな勉強会やりたいんですよね」と軽く相談してみたらトントンと開催できることになって。やる気があればやれるし、考えたことを実行に移しやすい環境だと思います。
また、人間関係の良さも魅力です。チームで働くうえで人間関係って重要なので、社内のメンバーが親身にいろんな話を聞いてくれたり、意見交換するのが楽しいと思える環境はとても良いなと感じます。
‐ 渡邊くんが考える”良いエンジニア像”とは?
技術的な知見が豊富なことはもちろん、チームの支えになれる人が”良いエンジニア”だと思います。エンジニアは1人ではなくチームで何かを作る仕事なので、「何か問題が発生した時にこの人がいれば頼りになる」とか、「この人がいると上手くプログラムが書ける」と思ってもらえることが重要だと考えています。
‐ 本日渡邊くんの話を聞いて、技術に対しての向き合い方が素晴らしいなと思いました。眼の前の課題を解決したりより便利にしていきたいというマインドをしっかりと持った上で技術をブラッシュアップしていること、それを勉強会などで周りに伝えている姿勢がすごく良いよね。
ただただ技術が好きな気持ちは昔から変わらないです。でもPCばかりに向き合っていても面白くないと思うんです。面白さを追求する中で、人と関わることは避けて通れない。
技術に対して貪欲で、かつそれを人に伝えてチーム全体の技術力を牽引することに面白さを感じる方がいれば、ぜひGizumoに入社していただきたいなと思います。
いつも技術的な話題の中心に立ち、周りを巻き込みながらスキルアップし続けている渡邊さん。
技術について語るときのワクワクした表情からも、プログラミングに対する熱い想いが伝わってきました。(文字でしかお伝えできないのが残念です…)
Gizumoでは未経験からエンジニアを目指す方を積極的に採用していますが、その反面、専門性の高いエンジニアが多数所属していることも魅力のひとつです。
一緒に切磋琢磨したい方、ぜひエントリーお待ちしております!