![見出し画像](https://assets.st-note.com/production/uploads/images/61250290/rectangle_large_type_2_aa56ec3bf22941f022ac87285c4e166f.png?width=1200)
アーキベースの技術スタックを大公開!!
皆さんこんにちは!
株式会社アーキベース 採用責任者の土谷です。
さて、今回は弊社各Webサービスを支える技術スタックについて記載させてください!
※監修:株式会社アーキベース エンジニアマネージャー 渡邉 智史(メンバープロフィールはこちら)
※編集:株式会社アーキベース 採用人事インターン 次山 遥大
ベンチャー企業たるもの常に発展途上なのでこれからも変わり続けていく前提ではあるのですが、現在2021年3月時点のものを記事として纏めさせていただきます。
アーキベースでは絶賛エンジニア採用に力を入れておりまして、記事をご覧になった方で少しでも興味を盛っていただいた方は是非エントリーくださいませ!!
さて、内容に入る前に少しサービス紹介をしますね。
現在のアーキベースのメイン事業である「建職バンク事業」というものがありまして、サービスサイトは下記のような感じになっています。
現在のアーキベースのメインのビジネスモデルは人材紹介業でして、建設業界において転職を検討されている求職者の方がこのサイトに辿り着き、登録をしていただくと弊社のCA(キャリアアドバイザー)から連絡が行くようになっており、そこで面談を行い色んな希望条件をお伺いしたうえでそこにマッチした企業様にご紹介を行う、というのが大まかな流れになっています。
とてもシンプルですよね。
そうなるとエンジニアの方からすると、「なんだ、単なる求人サイトか」と思われてしまい、「腕が鳴るぜ!」みたいに感じにくいかも知れないのですが、まだページを閉じるのは待ってください!!
人材紹介以外にも広告事業を1年以上前から立ち上げていたり、この建職バンクにも実はスカウト機能が実装されているなどのエンハンスが進んでいたり、更にはこのサービスと連動した形でSaaSプロダクトやBtoBマッチングプラットフォーム(これらは最早「建職バンク」とはプロダクト的に別物です)の開発も進んでおりまして、外からは見えないですがかなり弊社エンジニアの開発範囲って広大なんです。
なので是非そんな奥行もイメージしていただきつつ、「へーこんな技術使ってるんだーふーんなるほどー」などと眺めていただけると幸いです!
では具体的に技術スタックについてですが、先ず前提をお伝えしますね。
先ほどの通り複数のプロダクト開発が同時並行的に走っていますので、それ毎で使用している技術が異なります。
開発対象としては上記で触れたものを含め羅列しますと、求人サイト(建職バンク、人材紹介や広告事業、スカウト機能もこの裏に実装)、SaaSプロダクト(新規事業)、BtoBマッチングプラットフォーム(これも新規事業)、社内システム、Salesforce、Pardot、色々Webサイト用サーバ(wordpress、HPとかオウンドメディア「カワラバン」とか)、分析用サーバ(radash)などがあります。
ただ、プロダクト毎にご紹介していくとかなり冗長になってしまうので、今回はフロント、バックエンドなど技術領域毎の紹介とさせていただきます!
どのプロダクトでどの技術を使っているかなど詳細をお知りになりたい方は是非ご面談にて!!
⇒株式会社アーキベースでは一緒に働く仲間を募集しています!(2度目)
フロントエンド
では最初にフロントエンドについてご紹介しますね。
フロント開発の進め方としては、事業的な数字を意識しつつマーケティングチームと協業しながらタスクを進めているイメージです。
これはアーキベースの開発体制の特徴なのですが、単にエンジニア的な開発タスクをこなしていく、ではなく、事業の状況を把握しつつどうやったら社会への良い影響を最大化させ、かつ、法人としての利益を最大化させるかという目線がある方が望ましいと考えていまして、視野も守備範囲もとにかく広く経験を積みたい!という方にはとても好ましい環境ではないかと感じています。
さて、先ず最初にデザイン設計があり、上記の図には含めていませんがよくFigmaを使ったりしますね。
デザイン専門のメンバーはまだいないので、この領域はエンジニアチーム/マーケチーム双方がタスクを持つケースがあります。
そしてデザイン作成後、レビューを行い、デザインしたメンバーがそのまま実装まで行う場合もあれば、別のメンバーに渡して実装を進めてもらうこともあり、そこは状況に応じて、ですね。
ちなみにアーキベースの技術選定プロセスですが、トップダウンでもボトムアップでもなく、まず最初に開発の目的や課題がありそれに応じて実装したい機能が洗い出され、それらの機能実装を可能とするためには何がベストなのかをチームでディスカッションして決まっていく、のような流れが基本としてありつつ、大きめの意思決定では代表の岩木も交えつつ協議して、「これで行こう」と決まったりもします。
各機能開発は、基本的に各メンバーが裁量を持って開発を進めています。実装の中で得た課題やノウハウは積極的にチームで共有することで、メンバー全員の技術力向上と、個別から全体のコード品質向上につなげています。
フロント開発で利用している言語は上の図にあるとおりですが、メインでVue・Jqueryを扱っています。つい最近まではJqueryを利用するケースが多かったですが、コードの保守性に課題がでてきており、Vueへの移行を進めている状況です。プロジェクトによってはフロント開発の重要度が高いものもあり、チーム内でも現在特に注力している領域です!
フロント周りの課題感としては、ユーザ体験の磨き込みはまだまだやるべきことが山積していると思っていまして、フロント開発は本当に強化していきたい重要ポイントです。
現状はサーバサイドレンダリングでスピード重視で進めているのが率直な所なのですが、是非フロント開発に強い方に参画いただけるとより一層事業が進む確信があります!
是非どなたか助けてくださいm(_ _"m)
⇒株式会社アーキベースでは一緒に働く仲間を募集しています!(3度目)
バックエンド
では次にバックエンドについてです。
図にはいくつかロゴを貼ってありますが実態としてはほぼ全てにおいてRuby on Railsを使用しておりまして、その他に用途に応じて(図中にロゴはないですが)pythonなどもAPI開発などで活用することもあります。
基本的には現状ですとフロント/バックは担当を分けずに機能単位で開発を進めています。
ちなみに開発の基本的な流れは、
1.MTG :開発したい機能の確認、要件確認
2.issue発行(課題) :タスクの明確化、不明点/懸念点を潰しつつ
3.レビュー :進められそうかな?どうかな?
4.実装 :カタカタカタカタカタカタ…
5.pull request(レビュー) :できてるかな?どうかな?
みたいな感じです。
なおなぜRailsを中心としたバックエンド開発を行っているかと言いますと、
①現状、プロジェクトの立ち上げフェーズのものが多い
②Railsだと立ち上げのスピードが出る
②フレームワークはある程度統一することでプロジェクト間で兼務しやすくなり、チーム内でのノウハウ共有なども活きてくる
などの観点を踏まえた結果となっています。
こちらはご参考迄。
インフラ
続いてインフラの紹介です!
ご覧の通りアーキベースでは基本的にAWSをがっつり利用しています!
求人サイトなどの一部ではElastic bean stalkを利用しておりまして、インフラの構築・運用をいい感じに自動化してくれるので、アプリケーションの開発に集中できます。
ただし便利な反面トラブル時の対処で困る事が多く、新規に立ち上げるシステムでは構成管理ツール(CI/CD)としてAnsible, Terraformなどを利用し始めたりもしています。
有難いことにインフラに強い頼もしいメンバーもいまして、力を入れているところです。
デプロイについてですが、実は正直なところ弊社ではテストコードをしっかり作れていない.... という現状があります。プロジェクトにもよりますが、課題感は感じており、デプロイ後のトラブルをなくすためにもテスト自動化やステージング環境でのテストで未然に不具合を発見する仕組み作りもしております。まだまだ、PRのレビュー頼りなところはありますが、良い手法を模索し続けております!
なお、デプロイはgithubアクションでrubocopで自動でテスト、AWSにデプロイするフローを作ったりしています。
使っている技術を以下列挙しておきますね!
■構成1(求人サイトなど)
〇Elastic Bean Stalk利用
・EC2
・RDS
・Load balancer
・Auto Scaling
■構成2(新規プロジェクト)
〇構成管理ツール(CI/CD)
・Ansible・Terraform
〇単独設計
・EC2
・RDS
・Load balancer
Fargate, Lamda, その他AWSの各種サービス色々と利用しております!
データ操作系
最後はデータ操作系についてです!
Rubyも使用するんですが、基本的にはpythonがメインでして、簡易的な機械学習やレコメンドシステムの開発を行っております。
例えば求人サイトの検索履歴に対応して関連性の高い他の求人を表示できるようにしたり、社内のSFA(Salesforce)のデータを用いて、マッチング実績のある求人・求職者の情報から類似性の高い求職者母集団を抜き出し過去のマッチングを参照してレコメンドする、など正に弊社のミッションであるところの「情報・技術プラットフォーム」的なことをやっているんですが、如何せん外からは分かりにくい情報なのでこの折角の機会にご説明させていただいております笑
その他、Webサイト(主に建職バンク)データの収集、出力、整形や、営業関連データやマーケティング関連データ分析なども行っており、pythonの他にもそれらのシーンではpandasやgoogle colabを使用することもあります。
うーん、ザザっと書いてみましたが、かなり幅広いですよね。
プロダクトも複数ありますし各プロダクトの中でも同時並行で非常に多くの機能開発を行っておりまして、更にやりたいことが本当にまだまだ沢山あるんです!!
という訳で、是非こちらをお読みになったエンジニアの皆様、どうかアーキベースを助けてください!!
「しゃーない、いっちょ手伝ってやるか!」という勇ましくも温かなエントリーを心よりお待ちいたしております!
あ、「どんな感じなのか話だけでも聞いてみたい・・」という穏やかなエントリーでも勿論結構です笑
ご活躍いただく範囲として、フロント/バック/他といった技術領域も勿論限定しませんが、エンジニアの枠を超えて事業サイド、経営サイドにも関与していただきながら縦横無尽に開発を行い、類稀なエンジニアキャリア構築のための機会提供だけはできると思っております!!
⇒株式会社アーキベースでは一緒に働く仲間を募集しています!(4度目、ラストです笑)
それではまた!!
この記事が気に入ったらサポートをしてみませんか?