ウェブアプリケーションエンジニアとして転職活動をしますー!

突然ですが CircleCI を辞めることになりました。そのことについてあまり話すつもりはないのですが、今の気持ちだけ書いておくと、びっくりはしたけど特にネガティブな感情はなく、面白い経験だなぁという気持ちです。

この一年間、色々とあまりできない体験をしてきた締めくくりにピッタリです。この状況を受け入れて、流れに身をまかせて楽しもうと思います。

ということで、こんな機会はあまりないので、次をどうするか、折角だから色々な会社のお話を聞いてから考えたいなぁと思ってつぶやいたら、たくさんのご連絡をいただき、とても嬉しく思っています。ひとつひとつのお誘いや励ましが、とてもありがたいです。

当初は、年内ぼーっと過ごして1月からお話を聞いて(お話をして)いきたいなと思っていたのですが、お話をいただいているのにそのままにしているのが、自分的に気持ちが落ち着かないことに気づいたので、考えを変えて来週から少しずつお会い(オンライン)していこうと思います。

そこで、自分のスキルや考え、お伺いしたいことについて、頭の中の整理のために、まとめておくことにしました。お会いする方に、これを事前に読んでおいてほしいということではなく、自分が当日にこういう話を伝えたい・聞きたいだろうなということを自分のために書いておく、というものです。

「こういうことも聞いておくといいよ」や「こういうことも伝えたほうがいいよ(面談する側は知りたいよ)」ということがあればツイッターで教えて下さい!

また、この記事を読んで興味を持ってくださった方も、まだまだ声をかけてくれると嬉しいです!

方向性

CircleCI に転職したときは「挑戦」を中心にしたいなと思っていたのですが、今の気持ちは「挑戦したい」と「今持っているチカラで、役に立ちたい」の両方が同じくらいです。

希望するポジション

まずは、希望するポジションから。こういうポジションで仕事をしたいなと思っています。

  • シニアウェブアプリケーションエンジニアとして、自社ウェブサービスの開発に携わりたい
    • バックエンド、フロントエンド、フルスタック、どれでも大丈夫です(自分の持っているスキルについては後述します)
    • 自社のウェブサービス開発を希望します
  • マネージメントではなくIndividual Contributorとして、コードを書くことを仕事の中心にしたい
    • 今後もコードを書き続けていきたいと考えているので、自分の仕事の中心はコーディングにしたいと思っています。将来的にも、Individual Contributorとしてステップアップしていくことを希望します
    • この「コーディング」は「設計などがすべて終わった状態で、設計の通りにコードを書く」ということではなく「要件定義や概要設計も含めて設計とコードをいったりきたりしながらコードを書く」ということを指しています
    • コーディングで自分の価値が発揮できている状態であれば、テックリードとしてチームを取りまとめたり、チーム作りや組織づくりについて考えたりと、その場で求められることに取り組むことは全く問題ありません

英語で仕事をできると嬉しいなとは思いますが、必須ではありません!

自分のスキル

自分の強みは、チーム作りをしながら広い視野でアプリケーション開発を進めることができること、です。

  • 要件定義から設計、コーディング、テスト、運用まで含めた開発
  • 開発者としての視点だけでなく、マネージメントの視点を含めた開発
  • フロントエンドからバックエンド、Kubernetes上でのアプリケーションの運用を含めた開発

以下に自分ができることを書いていきます。粒度がバラバラですが・・・。

プログラミング言語

  • Java
    • 一番慣れている
    • SpringBoot を使って開発できる
    • この1年は使ってないので、もし触るなら最新情報はキャッチアップしておきたい
  • Clojure
    • この1年間使ってた
  • JavaScript/TypeScript
    • この1年間フロントエンドの開発で使用
    • React/Next.jsを使用
    • サーバーサイドのNode.jsアプリケーション開発は、経験はあるがかなり昔なので思い出す/最新情報をインプットしなおす必要がある
  • PHP
    • 以前に勉強して書いたことはあるけど、最近使ってないから使うならもう一度復習が必要
  • Golang
    • 最近勉強したところ。実践経験はないので、参照にできるプロジェクトがあれば開発できる、くらい
  • Ruby
    • 数年前にRailsチュートリアルをやって、コードを読める、くらい

特にプログラミング言語の好き嫌いはありません。

フロントエンド・バックエンド

  • フロントエンドは、Reactを使った開発経験あり
    • Hooks、Testing Library、Next.js、Emotion、Storybook、Chromaticなど
  • バックエンドは、サーバーサイドレンダリングのアプリケーションから、APIまで開発経験あり

フロントエンドもバックエンドも、どちらも好きです。

アプリの周り

  • Git
    • 日常使い
  • DB
    • MySQLは慣れてる。Oracle、PostgreSQLも使用した経験は少しある。どれも基本的な使い方は可能だが「詳しいか?」と聞かれると、そうではないと思う
    • スキーマやインデックスなどの基本的な設計は可能
    • DBの構築やチューニング、運用は経験なし。DBAに相談してた
  • Docker、Kubernetes
    • Docker、Kubernetesを使用したアプリケーションの開発・運用は可能
    • Kubernetes自体を構築・運用した経験はない。インフラエンジニアに相談してた
  • GCP/AWS
    • GKEでKuberenetes+Istioのクラスタを構築した経験はあり
    • AWSはインフラエンジニアに相談しながら雰囲気で使っていたくらい
  • Terraform
    • 調べながらなら使うことができる
  • CI/CD
    • CircleCIはちょっと詳しいです!

アプリケーションの開発について

  • 要件を元にヒアリングをしながら、アーキテクチャや仕様を考えて、実装することが可能
    • プロダクトマネージャーやデザイナーと相談しながら、技術視点での話をすることができる
  • 自動テストや手動テストなどを含めて、アプリケーションに求められるテストを考えて実装・実行することができる
    • QAエンジニアがいる場合は、早い段階から相談しながらテストのことを考えたい
  • 運用を見越した設計をすることができる
    • 開発して終わりではなく、ログやアラートなど、運用を考慮した設計・開発をすることができる
  • 既存のシステムの改善をすることができる
    • これまで、既存のシステムの改善をすることも多かったので、ドキュメントやコードを読んでシステムを理解し、改善を加えることができる

チーム開発について

  • アジャイルな開発や、スクラムを採用した開発経験あり
  • また、そのようなチームづくりの経験あり
  • 特にこの一年間は、多様性のある組織で開発に取り組んできたので、そのような環境で、信頼を土台にして、違いに敬意を払って、チーム開発に取り組むことが可能
  • マネージメントの経験もあるので、マネージメントの目線とチームの目線と両方の目線で事象を理解したうえで、意思決定や情報共有を進めることができる

その他

新しいことを学ぶことは好きなので、これまでに経験のないことでも対応可能です。

以上が自分のスキルセットです。

カジュアル面談に求めるもの

カジュアル面談は、自分が一方的に会社のことを知るための場ではなく、両者がお互いのことを知る場だと考えています。

自分はその会社やそこで仕事をしている方々のことを知りたいなと思っていますが、それと同時に、会社側も自分がどのようなスキルや考えを持っているのかということを見る場だと思っています。

ですので、お声がけをしていただいてはいますが、お話をした結果、自分のスキルや考えが結局その会社の求める人物像とは異なることが分かった、ということは当然あると思います。その場合は、気にせずにその旨を教えていただけると嬉しいです。

お互いの求めているものを情報交換して、合う・合わないを早い段階で知ることができる場であるといいなと思います。

その後の流れ

まだあまり深くは考えていないのですが、お声がけをしてくださった会社の方々とお話をしたあとは、自分が働いてみたいなと思う(そして相手側が自分と働いてみたいなと思ってくれる)3,4社くらいに応募できたら嬉しいなと考えています。

カジュアル面談でお話するのは概要だけだと思いますので、採用選考で落ちてしまうことは普通だと思っています(書類選考で落ちたら少し悲しいですけど)。そこで最終的にオファーをいただくことができたなら、とても嬉しいですし、すべての選考に落ちてしまったら、また考えます。

これもあまり深く考えていないのですが、仕事を始めるのは、2月か3月からかなぁとぼんやり思っています。

自分が最初にお聞きしたいこと

まずは以下の3点をお伺いしたいです

  1. ビジョン
  2. 技術スタックやチームの様子
  3. 自分に期待する役割

ビジョン

自分が仕事をする上で一番大切にしたいことは、その会社の目指しているものに共感できることです。ですので、会社のビジョンを聞きたいなと思います。

プロダクトの面では

  • 会社として何を良くしたいと思っているか、そのためにどのようなプロダクトを開発しているか、そのプロダクトをどのように成長させていこうと考えているか

をお伺いしたいです。それから組織面では

  • そのプロダクトを開発する従業員のことをどう大切にしているか、どのような組織づくりをしていきたいか

も知りたいです。

プロダクトも組織も、現状が目指す姿に追いついていなくても全く問題ありません。それが普通だと思います。でも、会社のリーダーがプロダクトと組織の両方で目指す姿を持っていることはとても自分の中で大切です。そのビジョンを明確に打ち出していて、メンバーを信頼して任せていて、みんなが共感してそれを目指して取り組んでいる会社が良いなと思います。

技術スタックやチームの様子

これはエンジニアとして普通のトピックです。

そのプロダクトの開発に、どんな技術を使っているのか、アーキテクチャはどうなっているか、課題や困っていること、それから、チームはどのような構成なのか、どんな風に仕事をしているのか、などです。

自分に期待する役割

そういったビジョンやチームに対して、自分にどのような役割を期待するか、をお伺いしたいです。これも普通のトピックですね。

次にお聞きしたいこと

ビジョンに共感できることが第一ですが、その次に、以下の2点も自分の中で大切なので、お伺いしたいです。

  • 働き方
  • 待遇

働き方

リモート勤務を希望します。共働きで、子供の送り迎えがあるのと、できるだけ子供と触れ合う時間を大切にしたいという気持ちがあるので、リモートワーク中心でフレキシブルに仕事ができると嬉しいです。

とはいえ、顔を合わせて仕事をすることの大切さも感じてはいますので、出社推奨日があったりするのは、良いなと思います。大阪に住んでいますが、東京に出張として行くのも問題ありません。

待遇

給料やストックオプションなど、できるだけ、今の待遇と同じレベルのものを希望します(もちろん、今以上だと、とても嬉しいです)。

まとめ

以上です。来週の頭に、いったん頂いた情報を整理して、その後少しずつご連絡させていただこうかなぁと思っています。