1
/
5

自社の入社トライアル課題(Ruby on Rails編)に挑戦した結果

トライアルチャレンジャーの自己紹介

どもー。Ryoです。マツリカではエンジニアをしています。

簡単に経歴を紹介します。

- 2015 心理学科卒
- 2015 (SES企業)インフラエンジニア
- 2017 (Web系企業) AWS系クラウドインフラエンジニア
- 2018 (株式会社マツリカ) SRE & CRE Team

これまで所属した会社では基本的に分業制だったこともあり、インフラ基盤担当時はその部分しか担当しませんでした。

スキルスタックはクラウドインフラ関連に偏っています。

マツリカにはSREとして入社し、ある意味でSREチーム立ち上げをしました(専任がいなかったので自分が専任になっただけ)
好きなツールはAnsibleです。
マツリカでのこれまでの業務内容はこちらです。

詳しい経歴はWantedlyプロフィールか、もしくは私のポートフォリオを御覧ください。

なんで、私がバックエンドに!?

なんでも何も、僕が望んだからです、はい。

前職時代の転職理由は『今後はインフラ以外もやりたいんですよー』だったので、弊社の開発言語であるRubyによるプロダクト開発にも触れさせてもらえるようになりました。

とはいえ、バックエンド自体は素人同然。プログラミングスクールに通ったわけでもなく、これまでプログラミング経験があったわけでもありません。(Progateで全コースやったくらいで、あとは要所要所を押さえて学んでいたくらい)

さらに、マツリカという超成長期の企業フェーズでは育成枠がありません。
そんな僕がバックエンドへの挑戦ができるのは、SREとして一定以上の機能を果たしている(はず)実績が関係していそうです。

直近での開発体制は、以下のようになっています。この体制は直近のものであり、開発リソースは柔軟に変更されます。(フロントエンド開発が中心の時期はフロントエンド、バックエンド開発が中心の時期はバックエンド、へ人的リソースが割かれます)

このように、どこのチームでも兼任が発生していることが功を奏し、僕はインフラ基盤の面倒を見ながらバックエンドへの挑戦が実現しています。

これならエンジニアとしての幅が広がりそうです。

「トライアル課題つくったからやってみてよ」

Ruby on Railsを業務でなんとか触れながら月日が経つこと5か月頃。
応募者用にトライアル課題を自作したという一報が入りました。

「このトライアルができれば、ウチのSensesの開発もスムーズにやっていけるスキルを判定できる想定」

なるほど。ならできないとどうなるのだろう?
できなければRails入門者クラス、ということになります。

不採用ということではなく、単にそれに応じた給与テーブルになります、ということです。

トライアル課題とは

簡単にマツリカのトライアル課題を説明してみます。

【目的】
開発能力を確認したいときに実施する課題です。
マツリカのメインプロダクトである、Sensesの構造に沿って作成しています。

あくまでマツリカで開発業務が遂行できるかを確認するものであり、一般的なスキルチェックではありませんのでご注意ください。
もちろんできなければ絶対に不採用というわけではありません。
他で通用しないレベル、という意味にもならないです。

【課題遂行によって判断されること】
・バックエンドレベル(一般的な基準ではなく、あくまでマツリカ内部で仕事をする基準)

レベル1: サポートありでバックエンド(Ruby on Rails)のPull Requestを出せる
レベル2: サポートなしでバックエンド(Ruby on Rails)のPull Requestを出せる
レベル3:
    ・Railsアプリケーションのチューニングができること
    ・Bullet、Newrelicなどのプロファイラを用いて定量的な指標を元に最適化することができる
    ・Railsアプリケーションのコードレビューができる(リリース可能判断できる)

【課題概要】
主に実施してもらう課題はふたつ。

1. 失敗しているRSpecを通すこと
2. パフォーマンスチューニング

【進め方】
課題の進め方は、Slackで質問してくれてよいです。
WIP状態のプルリクエストを作成して相談していただいても大丈夫です。

【課題1】
これができれば、マツリカではバックエンドレベル2と呼ばれるランクです。

以下のファイルで pending
状態になっているテストが通るように実装を修正してください。
・spec/models/issue_spec.rb
・spec/requests/issues/index_spec.rb

実際のコードはここでは伏せます。

【課題2】
これができればマツリカでは即戦力級のバックエンドレベル3と呼ばれるランクです。

パフォーマンスの悪い /issues 処理をチューニングしてください。 高速化の方法は自由に選択してもらって構いませんが、既存のRSpecのケースが通るように修正してください。

実際のコードはここでは伏せます。

いざ尋常に!勝負!

README.mdには、非常に丁寧にかつ親切な説明が記載されていました。

ローカル開発環境を構築してスタートするのですが、docker-composeによる起動方法が書かれているので楽ちんです。

RSpecを見ていきます。確かにpending状態になっている部分があるので、そこを解除してテスト実行。すると、期待した値は確かに得られませんでした。
これを修正し、テストを通るようにするのが課題というわけです。


しかし、初見でいきなり諦めるほど生半可な気持ちでバックエンドやりたいなんて言っていません。

プログラミングできなくて諦めること計2回。3回目の正直で本気でアプリケーション開発ができるようになるべく覚悟をきめた!
トライアル課題がなんだ!僕はもう入社しているんだ!Sensesの実際のコードだって何度も見ている!
おなじデータ構造だろ!?いけるいける!

RSpecが通らないのはModelの実装がきっとおかしいと睨んだ僕は(READMEにspec/models/issue_spec.rbを見ろって書いてあるけど)、Modelを覗きました。

おお、確かになんか処理が抜け落ちているではないか!

これだ……!ここを正しく実装すれば……行ける!!

全然だめでした。トライアル課題、ひとりでやれるほどレベルが上がっていませんでした。

いやわかってますよはい。僕のレベルはバックエンドレベル1なんですよ。それはもう自他ともに認定済みです。クラウドインフラからの挑戦なので、結構たいへんであります。

ただ、忘れていませんかね?
いつからひとりで解決しなければならないと錯覚していた?

我々はチーム!!マツリカはチーム力で開発しているんだ!

「CTO! 1on1を通じて僕の悪習を指摘してください!」

ということで、マツリカではわからないことはどんどん質問してOKです。
CTOに限りません。マツリカのエンジニアはみんなフルスタックに近い状態な上に、他企業でならエースを任される人材ばかりです。

また、READMEにも質問OKと書いてあります。

課題を進める上で、不明点などあればSlackで質問してください。WIP状態のプルリクエストを作成して相談していただいても大丈夫です。

これは、業務を進める上で非常に重要です。不明点をそのままにして進捗がないほうが困るのです。
質問力も同時に見ているというわけです。
同時に、回答者との相性もトライアル挑戦者には確認してもらうことができます。

だから、わからないことを恥として放置するほうが悪!!
これまで、マツリカの先輩たちは丁寧に回答してくれました。ああ素敵。

心理的安全性が高い。

俺たちの戦いはこれからだ!

打ち切りみたいな書き方ですが、僕はトライアル課題をまだ続けています。
工数的には完全に目標値オーバー感はありますが、この課題を解くこと自体がすごい勉強になります。

正しくModelを理解して実装しないとクリアはできません。
ていうか、これ作ったVPoEがすごい。絶妙なつくり。

マツリカで業務遂行が可能か?という一点において正しくテストできているように思います。

なお現在までトライアル課題クリア者は出ていません!!(社外の)

だ、誰か!誰か氏〜〜〜〜!このトライアル課題、挑戦してみません?

Railsエンジニア
今、勢いあるスタートアップ!Rails経験が豊富なリードエンジニア募集!
【営業組織全体を進化させ、売上に直結する、新しい営業支援ツール】 マツリカは、クラウド営業支援ツール「Senses」の開発・提供をおこなっています。   Sensesは営業の案件・顧客管理だけでなく、組織のナレッジ活用に着目した次世代の営業支援ツール(SFA/CRM)です。   営業におけるコミュニケーションをはじめとした情報、個々の営業パーソンに属人化している知見・スキルを蓄積し、「組織の資産」とすることで、 お客様の営業成果の最大化を目指し、強い組織作りと多くの課題解決、そして事業成長を実現します。     【年間1,000兆円の営業データを集め、営業の世界に変革を起こす】 更に、マツリカは「Senses」プラットフォームに「営業ビッグデータ」を蓄積していきます。 国内のBtoB企業だけでも、年間の取引高は1,000兆円に上ります。この莫大な営業データを蓄積・活用することで、これまで誰も実現しえなかった、営業の新しい世界を実現します。 (この先に何を考えているかは面談の際にお話します!)     【外部評価サイト:SensesとSalesforceの比較】https://www.itreview.jp/categories/sfa/compares/salesforce-sales-cloud_vs_senses   【プロダクトサイト】 https://product-senses.mazrica.com/ ★受賞歴 ・ダイヤモンド・オンライン:ユーザーが選ぶ「最強ITツール」TOP50に選出 ・「ITreview Best Software in Japan 2022」TOP50選出 ・「すごいベンチャー100」2021年版 選出 ・「働きがいのある会社」2020年版 ベストカンパニー受賞 ・「ITreview Grid AWARD 2022 Winter」にてSFA部門・CRM部門・セールスイネーブルメント部門 受賞 ・「BOXIL SaaS AWARD 2021 Autumn」営業・顧客管理部門 受賞 ・「第4回WOMAN's VALUE AWARD」 審査員賞 受賞
株式会社マツリカ

あなたの挑戦を待っている!!

株式会社マツリカ's job postings
9 Likes
9 Likes

Weekly ranking

Show other rankings
Invitation from 株式会社マツリカ
If this story triggered your interest, have a chat with the team?