バンクーバーのスタートアップに転職した
バンクーバーのスタートアップに転職しました
正確には既に転職して3ヶ月程働いています。一応ポジションはフロントエンドで自分の中にあった肩書きと仕事内容が一致しているのでとても良いです。 React + Typescriptで書いています。
転職までの流れ
2020年の振り返りの記事でもさらっと触れてたのですが、前職の開発環境の改善のために新しい技術スタックに移りたいと思って提案を定期的にしていましたが尽く却下されてしまい、モチベーションはかなり低くなっていました。また今後のキャリア的もWeb制作を続けていくのは個人的に辛かったので転職を考えていました。特に2021年の夏頃は複雑怪奇なレイアウトなデザインでかなりしんどい思いをして一刻も早く辞めたいと感じていました。
きっかけ
きっかけは今は同僚でバンクーバーに来た時からの友達のゆきちゃんから2021年の夏頃に「ウチの会社ディベロッパー募集してるけどどう?」と言われたので、上に書いているように辞めたいなと思っていたのもあってお願いしてみた。その際にどんな会社でどんな物を作っているのかをざっくりと聞きました。
リードDevとのインタビュー
リードDevにレジュメとポートフォリオを送った後、割とすぐにリードDevから連絡が来てインタビューの日程が決まりました。インタビューの内容はおそらく普通のスタートアップなどを変わらない内容だとは思っていますが、聞かれた内容は以下のような感じです。
自己紹介
- デザインエージェンシーでずっと働いていること(インタビュー時も)
- 個人的にReactを使って小さいアプリなどを作って勉強していること
- 紹介してくれたゆきちゃんとの関係をざっくりと
- プロダクトについての大まかな説明(技術側の説明が多かったと思います)
今の仕事の内容をもう少し詳しく
- WordPressを使ってレンタルサーバーからデプロイまで一元的に担当
- サーバー設定などもしている(DNS, CDN, SSLなども含めて)
- 内部の便利ツールの作成等(環境構築の一部自動化ツールの作成など)
テックテスト
- あるサイトが表示されるまでの工程を口頭で伝える
コーディングテスト
- あるデータを取り出す関数の作成
- そのデータが巨大かつ作成した関数が頻繁に呼び出される際の計算量を削減をする問題
コーディングテストは正直あんまり手応えを感じませんでした!ざっくり計算量(オーダー)の話はわかるものの、具体的な改善方法はよく知らないし、デザインエージェンシーでそんな巨大なデータを扱うことはほぼ無かったので特に意識していなかったのも大きい。
リードDevとのインタビュー後、次の日ぐらいにCEOとのインタビューが設定されました。
CEOとのインタビュー
CEOとのインタビューはもっとざっくりしたものだったのですが内容は以下のような感じです。
- 軽い自己紹介
- プロダクトの大まかな説明(全体の説明とビジネスよりの説明)
- 当時働いている業種とこれから参加する業種が異なるのでそれについての自信はどうか
- 給料交渉(おそらく強気の希望を言い過ぎた)
- まずはパートタイムで1ヶ月ほど参加するのはどうかという提案をされて承諾
当時は給料交渉が少し強気すぎた事と向こうが欲しい人材的にはフルスタックな人間だったという事もあり、CEOはサーバーサイドやモバイルなどもしていく必要があって、中々難しいと思うがそれでも大丈夫か?とつつかれてしまいました。
インタビューが終わった後個人的には、タイミング的に良くなかったなと思った事と、やはりスタートアップにおいては実際に動いているアプリが最低一つは必要だなと感じました。ざっくりでいいのでバックエンドからフロントエンドまで動いている何かがあるだけで自分の発言に説得力を持たせれるんじゃないかと感じます。
今だから思う事はこのパートタイムを挟んでいて良かったと思います。
ダブルワーク
CEOとのミーティング後、一週間後ぐらいからパートタイムでの参加が決まりました(平日のみで大体2時間と設定)。本業をフルタイムでしつつ、終わった後にパートタイムでタスクをしていくいわゆるダブルワークをしていました。ただ当時は本業もかなり忙しく、ダブルワークはかなりキツかったです。。
始まりたて
本業の関係上、パートタイムの開始時間はみんなが終わってからの作業になるので気軽に質問は出来なかったです。また全体のコードを軽く一緒に追ってくれる事も無かったので理解していくのに随分と時間がかかった(とはいえオフの時間帯に働かせるのは良くないので難しいし初期の頃のプロダクトは頻繁に変わっていくのでドキュメント化も難しいと思う)
そんな中でもゆきちゃんにはちょくちょく聞いたり手伝ってもらっていて非常に助けてもらいました。
また当時はデザイナーが専属でいない事もあり、デザインとプロダクトの剥離が大きかった。具体的にはデザインはアップデートされてないがプロダクト側には画面や機能があるといった感じでした。
緩めの開発方針で割と自由に作れるものの、個人的にはどのように作っていけば良いか逆によく分からなかった。
その後
なんだかんだで色々なタスクにアサインされていき、当初の予定1ヶ月を少し過ぎた段階でリードDevとCEOとの面談がありました。最初の面接の時とは打って変わりめちゃくちゃポジティブな反応でした。内部のフィードバックもあったのだと思います。当時はまだ前職が忙しくすぐに抜けれる状況ではなかったので、引き続きパートタイムを希望して終わりました。
採用
そのままパートタイムでの仕事を続けていた所、CEOから面談が設定されました。そしてフルタイムで雇いたいと告げられました。その時前職で辞める・辞めないみたいな話をしていてちょっとこじれていた状況だったのでなんとも歯切れの悪い回答をCEOにしてしまいました。。
その後前職での話し合いを再度行なって現職のスタート日に間に合うように退職日を決める事が出来、ちゃんとCEOには参加する旨を伝えました。
パートタイムである程度プロダクトに関わっていたので、フルタイムに変わってもかなりスムーズにタスクのアサインなどがされたのでもし可能であればこの方法がかなりおすすめだと思いました。いきなり参加だったら全体のコードの雰囲気などを掴む時間がなかったので結構焦ってタスクをすることになっていたんじゃないかなと想像していました。
スタートアップで働いてみて
そもそもプロダクト系は初めて+スタートアップなので、他のプロダクト系の会社と比べてみたいなのは出来ないのでデザインエージェンシーとの違いを個人的に思った事をあげていきます。
- 一つのプロダクトに関わり続ける
- コードレビューがある
- そもそも考える領域が異なる(考え方が違う)
- 時間でのタスク設定をしない(難易度を設定する)
一番大きいのは考える領域が異なる事です。どういう事かと言うとWeb制作だとボタンの役割はほとんどリンクかスライダーなどの操作ぐらいしかありません、ですがアプリになるとボタンの役割はリンクだったりもしますが大体はAPIの呼び出しやデータの保存、データのソートなどなど、いわゆる”機能”がついている事ばかりです。個人的にはよりロジカルに考える必要があり、今まであまりしてこなかった事なので非常に難しいですがソフトウェアエンジニアリングをしていると感じます。まだまだ冗長なコードばかり書いていて、もう少し冗長性を無くせると良いのになと思いつつも、動くコードを書くのが精一杯という感じです。
今のエンジニアチームは小さくみんなで色々と議論しながらデータ設計をしたり、タスクの振り分けをしていて楽しい。何より学ぶ事ばかりで日々少しずつ少しずつ経験値が溜まっていき以前悩んでいたものが少しずつ自力で完走する事が出来てきて嬉しい。まだまだ自分が貢献出来る部分は少ないと感じつつも日々頑張ってタスクをこなして成長しないといけないなと思います。