SMARTCAMP Engineer Blog

スマートキャンプ株式会社(SMARTCAMP Co., Ltd.)のエンジニアブログです。業務で取り入れた新しい技術や試行錯誤を知見として共有していきます。

そうだ、京都開発拠点に行こう!

はじめまして! 2023年1月付でスマートキャンプ株式会社に中途入社した松下大祐です。 京都にオフィスを構える京都開発部に所属し、ソフトウェアエンジニアとして働いています。 今回は私の入社エントリとして、スマートキャンプへの入社理由や仕事内容について説明したいと思います。

自己紹介

まずは、自己紹介をさせてください。 私は、1992年生まれの30歳です。 簡単な経歴は下記のようになります。

  • 岡山県で生まれる
  • 高校までを岡山県で過ごす
  • 京都で大学生活を過ごす
  • 東京のソフトウェア開発企業に入社し、6年半ほど東京で働く
  • スマートキャンプに転職し、京都開発部で働く

岡山県の田園風景の中ですくすくと育ちました。 京都府にある京都大学の総合人間学部という学部に入学しました。

学生時代にはみなさん、どんなあだ名で呼ばれていましたか? 私は大学の食堂でぱふぇを一度に3つ食べたことから、「ぱふぇ」というあだ名を友人に呼ばれていました。 スマートキャンプにもあだ名文化があり、大学時代のあだ名を採用してもらい「ぱふぇ」と呼ばれています。

大学では、総合人間学部という学部の認知情報学系に所属し、認知言語学という言語学の一分野を専攻しました。 卒論では「ラーメンに関する言語学的表現」を題材として書いており、ウケを狙いたかった年頃だったんだろうと思います。

上記のように厳密な専攻は情報系ではなかったのですが、単位として認められるので情報系の授業も受講していました。 SchemeというLispの方言を授業で学習しましたが、これは初めて触れるプログラムとしてはなかなか難しい部類に入るものだったと思います。 しかし、私にとってはコードを書くことが非常に面白く感じられ、これを仕事にできると楽しいだろうなだと考え、ソフトウェアエンジニアになりました。

職務経歴

職務経歴については下記です。

  • 1社目: パッケージソフトウェアの開発会社
  • 2社目: 国内大手メッセージングアプリ会社のグループ会社
  • 3社目: スマートキャンプ(現職)

1社目は、インターンに参加したという縁からパッケージソフトウェアの開発会社に新卒入社しました。 Javaでのバックエンドロジックの実装や、スマートフォン向けのセキュアブラウザの保守開発をひたすら行なっていました。 システム会社ではよくある構造ですが、開発部署はただ開発をし続け、導入や運用は別の部署が受け持つという構造です。 よりユーザーと関わりを持ってフィードバックループを回して良いソフトウェアやサービスを作りたいという気持ちが強くなり、2社目の企業に転職しました。

2社目は、国内大手のメッセージングアプリ開発会社のグループ会社で働いていました。 社内で非エンジニアが利用するLP作成ツールの開発、エンジニア向けイベントのシステム開発、サービス協業社様向けのCMSの開発など色々な経験を積みました。 そのグループ会社は、親会社が運営している多くのサービスを裏から支えることをミッションとしています。 しかし、数年働く中で、裏から支えるのではなく自分の手でサービス・プロダクトそのものを作って、社会に大きな影響を与えたいという気持ちが強くなり、転職活動を開始しました。

スマートキャンプに入社した理由

次に私がスマートキャンプに入社した理由について説明したいと思います。 主な理由については下記になります。

  • 社会に大きな影響を与えるプロダクトを開発したい
  • 将来的なキャリアを自分の中で見つけたい
  • 企業理念への共感

社会に大きな影響を与えるプロダクトを開発したい

前項でも触れたとおり、自分の手でサービス・プロダクトを開発して、社会に大きな影響を与えたいという気持ちが自分の中にはあります。 前職入社時点では、社内のサービスを裏から支えることで間接的に社会に影響を与えることができると考えていました。 しかし、実際に働く中で間接的ではなくより直接的にサービス・プロダクトそのものを作っていきたいという気持ちが強くなっていきました。

転職活動の中で、スマートキャンプでは新規のプロダクト開発へのチャレンジを加速させていきたいという思いがあり、それを京都開発拠点で推進していきたいと聞きました。 実現のためにはまだまだ決まっていないことも多く、自分が介在する余地が大きいと感じ、そこに関わっていきたいと強く感じました。

将来的なキャリアを自分の中で見つけたい

また、前職で働いている時点では、ソフトウェアエンジニアとしての自分のキャリアについて迷っている部分が大きかったです。 アプリケーションの設計をすることが好きなので、ソフトウェアアーキテクトになろうかな…?となんとなく考えていました。 しかし、その他のたとえばマネジメントといった業務の経験があるわけではなく、自分が何を楽しいと感じるかはあまりわかっていない状態でした。

スマートキャンプの京都開発拠点では、人数も少なく、インターン生も多く採用しており、マネジメントの分野も経験できるという話を聞きました。 また、マネジメント以外の分野も、平たく言えば何でもやる機会があるという話も聞いて、チャレンジしてみようという気持ちになりました。

企業理念への共感

上記のような理由で、スマートキャンプに興味を持ったうえで、選考に進むにあたって、カジュアル面談で聞いた企業理念にも共感しました。 スマートキャンプのMISSIONは「テクノロジーで社会の非効率をなくす」というものであり、社会の非効率をなくすというのはまさに自分がやりたい、社会に大きな影響を与えることだと感じています。

技術スタックについて

前述のようにスマートキャンプは私にとって魅力的に感じられたものの、技術スタックがあまり噛み合っていないという問題もありました。 たとえば、自分は言語の面ではJavaやKotlinの経験が多いのに対して、スマートキャンプでは主にRubyを利用しています。 インフラ構成などもオンプレミスやプライベートクラウド上での構築が多く、スマートキャンプで主にAWSのようなパブリッククラウドを利用しています。

ごく基本的な部分のキャッチアップは当然自分で行なう必要がありましたが、応用的な部分や社内の文脈に依存した部分はドキュメントが多く存在しており、あまりキャッチアップは苦になりませんでした。 スマートキャンプではNotionにドキュメントを書く文化が強くあり、その文化に助けられたと言えます。

京都で働くことについて

転職活動時に声をかけてもらったときは、スマートキャンプの京都開発拠点での採用という形で、京都に転居して働くことになるという前提がありました。 私は、大学時代を京都で過ごしており、京都に関しては郷愁を感じており、魅力的に感じました。

声をかけてもらうまでに、具体的に京都に戻りたいという希望が自分の中にあったわけではありませんでした。 しかし、前職ではフルリモートで働いており、東京都心で暮らす必要性はあまり感じていませんでした。

都会で働いていた人が、その他の地方に引っ越しすることを、○ターンと表現することがあります。 一度実家がある都市を離れた後に、実家がある都市に戻るUターン、縁がない都市に行くIターンといったものもありますが、故郷の岡山にやや近い京都に引っ越したことから私の場合はJターンに分類されるようです。 郷愁を感じていた京都に戻るという面以外でも、実家の岡山により近い場所に転居するというのは、高齢になってきている両親に会いやすくなるという面でも好ましかったです。

学生生活ぶりに京都に引っ越してあらためて感じたのは、東京よりも街自体がコンパクトで便利であるということです。 スマートキャンプでは家賃補助制度があり、オフィスの1.5km圏内に住むことで、家賃補助があります。 京都開発拠点のオフィスは京都の繁華街の中にあるため、私も繁華街近くに転居したため、生活も非常に便利になりました。

京都開発拠点について

ここまでは、私の転職理由について説明してきました。 次は、スマートキャンプや京都開発拠点について説明していきたいと思います。

京都開発拠点とは

京都開発拠点は、フルリモートワークではなく一定頻度で出社するのを前提として作られた拠点です。 出社を前提とするのは下記のような理由からです。

  • 新規事業などのコミュニケーションを多く必要とする業務をスピード感を持って実施する
  • 京都という学生が多い都市でインターン生とのコミュニケーションを多くとる

京都拠点でのインターン生は現在3名が働いています。 全員関西の大学に所属している学生です。 学生でありながら非常に優秀なメンバーたちで、彼らと働くことができるのは刺激的です。

出社について

京都開発拠点では曜日を合わせて現在週2回の出社するようにしています。 インターン生の稼働日もそれに合わせて設定し、コミュニケーションをとるようにしています。 社会一般では、感染症の関係で出社に関してハードルを感じている人も多いと思いますが、私個人としてはたとえばミーティングといった特定の業務は、出社を行なって対面で話した方が効率が良いと感じています。

また、週3回はリモートワークをするような取り決めになっています。 リモートワークの方がより集中しやすい環境を整えやすいということあり、コードを書くといった比較的自分の中で完結する作業に関してはこちらの方が効率が良いと感じています。

極端に出社とリモートワークのどちらに振り切るのではなく、ハイブリッドな働き方にするのは、個人的には肌に合っていると思っています。

取り組んできた仕事

次に私が入社してから取り組んできた仕事について紹介します。

  • BOXIL SaaSの改修
  • 共通ID基盤の開発
  • インターン生のマネジメント

BOXIL SaaSの機能開発

BOXIL SaaSはスマートキャンプのプロダクトで、SaaSを比較できるサービスです。 BOXIL SaaSのメインの開発メンバーは、京都開発拠点以外に所属しているメンバーです。 しかし、後述する共通ID基盤をBOXIL SaaSから利用するという観点から、キャッチアップを行なう必要があり、その一環でBOXIL SaaSそのものの機能開発を行いました。 エンジニアとしては実際にコードを読んで開発することで、ドメイン知識の理解が大きく進みました。

BOXIL SaaSでは、社内全体でスクラムのスプリントレビューを実施しており、自分の開発した機能が多くの人に褒められたのも嬉しかったです。 また、ビジネスメンバーと開発メンバーの距離が近いのは、スマートキャンプの良いところだと思いますし、個人的にも大好きです!

共通ID基盤の開発

共通ID基盤は、現在京都開発拠点でメインで開発しているプロダクトです。

スマートキャンプで現在運営しているサービスでは、サービスそれぞれでユーザー情報を保持しており、複数のサービスを同一のユーザーが利用する場合でもそれぞれアカウントを作成する必要があります。 複数のサービスを利用するユーザーにとってこういった状況は不便なので、共通してログインができる基盤を作ろうとしています。

まずは、BOXIL SaaSのユーザーが共通ID基盤を通じてログインができるように開発を進めています。 いきなり認証部分を切り出すのではなく、データベースを内部的に分割して読み替えを進めていくといった感じで、段階的に実装を行なっている状態です。 ユーザーの利便性を向上させるために実装しているものなので、できるだけユーザーにとって特別なアクションが必要にならない形を意識しています。

認証はWebアプリケーションにとって非常に重要な部分であり、それを切り出すという作業は非常に難易度が高いですが、だからこそやりがいがあります。

インターン生のマネジメント

前述の通り、京都開発拠点では学生のインターン生を3名採用しており、インターン生のマネジメントも業務として存在しています。 学生個々人がインターンを通して実現したいことと、現状やってもらっている業務がマッチしているかどうかのすり合わせや、日々の困ったことを1on1で拾い上げるといったことを行なっています。 業務経験が少ない学生だからこそ、業務ではこうやるといった知識を伝えていくといったことも意識しています。 「学生という業務経験の少ない相手だからより丁寧な伝え方をした方がよいな」というように相手の特性を考えながら自分の行動を変えるといった工夫をしながら取り組んでいます。 ソフトウェア開発とはまた違う難しさですが、スキルを新しく身につけている感じがして非常に楽しいです!

終わりに

以上、この記事では入社エントリとして、私がスマートキャンプに入社した理由や、現在の仕事内容について説明しました。 入社から3ヶ月が経過しましたが、入社前に期待していたことからのギャップはありません。 共通ID基盤の開発などではキャッチアップ的な要素を含むタスクも多い状態でしたが、これからはがっつりコミットして成果を出していきたいと考えています。 頑張っていきます!