1
/
5

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

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

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

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

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

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

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

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

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

VTRyo
Web Engineer / Bloger / Podcaster / Eventer
https://vtryo.me
Ryo Profile - Wantedly
Engineer/programmer
https://www.wantedly.com/users/58105576

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

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

前職時代の転職理由は『今後はインフラ以外もやりたいんですよー』だったので、弊社の開発言語である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経験が豊富なリードエンジニア募集!
私たちマツリカは「創造性高く遊ぶように働ける環境を創る」のVisionのもと、テクノロジーの力であらゆるワークライフを支援し、人々の生産性向上と創造性の解放を実現することを目指しています。 現在は、営業、マーケティングといった企業の売上を担うセクションに対し、SFA/CRMを起点とした、MA、BI、AIのセールス関連領域を包括的にカバーするプラットフォーム「Mazrica」を提供しております。 主力プロダクトのSFA/CRM「Mazrica Sales」では、SFA/CRMの運用において課題となりがちな、「入力されない」「データが活用されない」「ハイコストなカスタマイズ」から産まれる「入力コスト・活用コスト・運用コストが高止まりしている課題」を下記の3つの製品コンセプトにより解消し、圧倒的な効率化をもたらす“現場ファースト”なSFA/CRMを実現しています。 ■営業現場が使いこなせるUI/UX 直感的な操作で誰でも使いやすく営業現場のデータ入力が促進され、蓄積されるデー タの網羅性や精度が向上 ■AIによる分析と示唆出しの自動化 現場で必要となるレポートは標準装備しつつ、蓄積されたデータを用いて過去の成功/失敗パターンからAIが成約確度や将来リスクを自動診断。そして、ユーザの次に取るべきネクストアクションまでを提示。分析・活用機能が豊富でユーザの営業活動を直接的に支援 ■ノーコードで利用開始  システム構築の開発会社への発注は不要。社内の限られたリソース/スキルでシステムを構築し、運用が可能 累計3,000社以上の企業で利用実績があり、足元では大手企業での導入実績も増えました。 詳しくはコチラをご覧ください https://product-senses.mazrica.com/ 
株式会社マツリカ

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

株式会社マツリカでは一緒に働く仲間を募集しています
9 いいね!
9 いいね!
同じタグの記事
今週のランキング
株式会社マツリカからお誘い
この話題に共感したら、メンバーと話してみませんか?