for Startups Tech blog

https://tech.forstartups.com/

このブログのデザインを刷新しました。(2023/12/26)

フィード

記事のアイキャッチ画像
CI/CD実行時間を50%以上短縮させた話とその1年後の現状
for Startups Tech blog
こんにちは。社内向けプロダクト「タレントエージェンシー支援システム(SFA/CRM)」(以下、プロダクト)にてSREをしている表と申します。 入社当初にCI/CDの改善を行い、約50%の時間短縮を実現しました。 CI/CDの改善から約1年が経過したため、実行内容と1年経った現状についてお話ししたいと思います。 前置き 本筋から逸れるため詳細は割愛しますが、本プロダクトのブランチ戦略はGitHub Flowを少し緩めに採用しています。 緩めにというのはmainブランチ、featureブランチに加えて、Stagingブランチの3つのブランチを切る運用のことを指します。 弊社ではStaging環境を…
20日前
記事のアイキャッチ画像
アジャイルチームのコアバリュー創りを紹介!あなたの「当たり前」は誰かにとっては「有り難きもの」
for Startups Tech blog
こんにちは、フォースタートアップス株式会社のエンジニアの八巻(@hachimaki37)です。主にタレントエージェンシー支援システム(SFA/CRM)のシステム開発を担当し、フルスタックに開発を行なっております。 ここ最近は、エンジニアリング以外にもスクラムや開発生産性、チームビルディングといったキーワードに興味があり、試行錯誤しながらさまざまな施策を練って進めております。今回は、所属チーム(以下、チーム)のエンジニアが中心となり、チームのコアバリューを創りました。 チームのデザイナー @Minmi303 さんに作成頂きました! 背景をはじめ、なぜコアバリューなのか、どんな課題があり、どのよう…
2ヶ月前
記事のアイキャッチ画像
認定スクラムマスター(CSM)研修に行ってきました!
for Startups Tech blog
初めまして!フォースタートアップス株式会社でエンジニアをしている平野と申します。STARTUP DBというプロダクトの開発を担当しています。 今回は2泊3日で株式会社アトラクタさんの認定スクラムマスター研修に参加させていただきましたので、その話を書きたいと思います。 イントロダクション 僕達のチームでは開発手法にスクラムを採用しています。しかし、スクラムで開発をしていくなかで「僕たちが行っているスクラムって本当にこれでいいんだっけ?」と違和感を覚えました。そこで、スクラムの本を読むなどしてスクラムの勉強を始めましたが、僕の中の違和感は消えませんでした。そんな中、認定スクラムマスター研修を見つけ…
3ヶ月前
記事のアイキャッチ画像
Active Record Arel使いこなし術
for Startups Tech blog
こんにちは。フォースタートアップス株式会社、エンジニアの石田です。 前々回、前回とRubyの話をしました。今回もRubyの話です。Active RecordのArelを使い尽くす、という内容です。お付き合いください。 注意 この記事は「Arelを使わないといけなくなったときに参考になるように」という目的で書きました。「Arelを積極的に使っていこう」という趣旨ではないのでご留意ください。詳しくは次章にて。 そもそもArelを使うことについて ArelはRailsの内部APIです。内部APIであるがゆえにRailsユーザーがこれを使うことは公式で推奨されていません*1 *2。SQLはRDBのデー…
5ヶ月前
記事のアイキャッチ画像
意外と知らないRubyの基礎知識(と少し応用)
for Startups Tech blog
こんにちは。フォースタートアップス株式会社、エンジニアの石田です。 前回の記事では「主にバックエンドのエンジニアをしています。」と自己紹介しましたが、今はバックエンドとフロントエンド両方を担当しています。 特に直近数ヶ月はフロントエンド(React/Next + TypeScript)ばかりやっています。ですが、私が一番好きな言語はRubyですので、今回も前回と同じくRubyの話をしたいと思います。 今回の内容はRubyの基礎知識+豆知識的な内容になります。後半になるにつれて認知度が低く、マニアック度が高くなる気がします。お付き合いください。 ゲッター/セッターメソッド Rubyで頻繁に使うa…
8ヶ月前
記事のアイキャッチ画像
6ヶ月間取り組んできたアジャイルチームの改善活動を紹介します
for Startups Tech blog
こんにちは、フォースタートアップス株式会社のエンジニアの八巻(@hachimaki37)です。主にタレントエージェンシー支援システム(SFA/CRM)のシステム開発を担当し、フルスタックに開発を行なっております。 半年間に渡りチームの業務改善(以下、改善と呼ぶ)をリードして参りました。今回の記事では、具体的なHOWを中心に、どんな課題がありどのような狙いを持って改善に取り組んできたのかについて紹介します。 目次 8000文字を超える記事です。各項目で内容は完結しているため、一から熟読する必要はありません。気になる目次から飛んで拝読頂ければと思います。 チームについて 改善に対するアンケート な…
8ヶ月前
記事のアイキャッチ画像
Mojoってみた
for Startups Tech blog
初めまして、2023年2月にフォースタートアップス株式会社に入社したモジョモジョドレミことモジョリアンの江種(@hairinhi)と申します。現在、主にRuby on Railsで作られている社内向けプロダクト「タレントエージェンシー支援システム(SFA/CRM)」の開発、運用を担当しております。 はじめに Mojoとは、Python構文の長所とシステムプログラミングおよびメタプログラミングを組み合わせることによって生み出された、研究と運用の間のギャップを埋める新しいプログラミング言語です。公式ドキュメントには、Mojoを使用すると、C言語よりも高速でPythonのエコシステムとシームレスに相…
9ヶ月前
記事のアイキャッチ画像
Rubyでテンプレートメソッド活用してみた
for Startups Tech blog
こんにちは、エンジニアの杉谷です。 普段はSTARTUP DBチームにて、主にバックエンドエンジニアとしてSTARTUP DBの開発をしています。 今回はSTARTUP DBの開発において、自身が最近学習していたGoFのデザインパターンの1つであるテンプレートメソッドを活用して新機能の実装を行なったので、その取り組みについてお話しさせて頂きます。 テンプレートメソッドとは? そもそもテンプレートメソッドとは何なのかお話しします。 テンプレートメソッドとは、オブジェクト指向プログラミングにおいて、抽象クラスにアルゴリズムの骨格を定義し、具象クラスで具体的な実装を定義する為のデザインパターンです。…
10ヶ月前
記事のアイキャッチ画像
Rubyを2.7.1から3.1.4にアップデートした話と3.2.2を諦めたわけ
for Startups Tech blog
こんにちは。2022年12月入社の石田です。STARTUP DBの主にバックエンドのエンジニアをしています。今回はSTARTUP DBのバックエンドのRubyのバージョンアップをした話をしたいと思います。 2023/03/31をもってRuby 2.7系のサポートが終了しました。当プロジェクトでは Ruby 2.7.1を使っていたため、急遽Rubyのアップデート作業が必要に。どうせアップデートが必要ならということで、可能な限り最新のバージョンまでアップデートすることになりました。 アップデートは以下のように段階を踏んで行うことにしました。 2.7.1 → 2.7.8 → 3.0.6 → 3.1.…
1年前
記事のアイキャッチ画像
ドメイン駆動設計の中核は「Design」である。近い未来に訪れる組織変化に「DDD」は最適なソリューションになり得るのか
for Startups Tech blog
こんにちは、2022年4月にフォースタートアップスにジョインしたエンジニアの八巻(@hachimaki37)です。主にタレントエージェンシー支援システム(SFA/CRM)のシステム開発を担当しております。現在所属するチームでは、サーバサイド(Ruby,RoR)、フロントエンド(Vue.js)の役割を分けず、2週間のスプリントを切って開発を行なっております。 少し前から興味が湧いていたドメイン駆動設計(以下、DDDと呼ぶ)、ありがたいことに外部研修の参加を募るアナウンスがあったため、DDD Boot Campという外部研修を受講してきました。 詳細は後述しますが、きっかけは、近い未来に訪れる当社…
1年前
記事のアイキャッチ画像
コードレビュー自動化 Siderのサービス終了に伴い、GitHub Actionsで実行できるreviewdogの調査・導入をしてみた
for Startups Tech blog
こんにちは、2022年4月にフォースタートアップスにジョインしたエンジニアの八巻(@hachimaki37)です。主にタレントエージェンシー支援システム(SFA/CRM)のシステム開発を担当しております。 コードレビュー自動化サービス Siderがサービス終了となった背景から、移行先となるサービスを調査し導入をしました。今回のテックブログでは、調査過程で出てきた疑問、そして調査結果、導入方法などを合わせて執筆していきたいと思います。 背景 タレントエージェンシー支援システム(SFA/CRM)では、コードレビュー自動化サービスとしてSiderを利用し​​ておりました。そんなSiderですが、si…
1年前
記事のアイキャッチ画像
僕たちがBlue/Greenデプロイメントに失敗した理由
for Startups Tech blog
始めまして、2022年11月にフォースタートアップ株式会社にSREとして入社した表(@Retomo2214)と申します。 現在は社内向けプロダクト「タレントエージェンシー支援システム(SFA/CRM)」のシステム開発、運用を担当しております。 初めてのブログ執筆のため、拙い文章になっていると思いますが、生温かい目で見守っていただければ幸いです。 はじめに 2022年にRails7へのメジャーバージョンアップ対応およびWebpackerからViteへの移行対応を行っておりました。変更ファイル総数が約1500ファイルとなる大規模リリースをBlue/Greenデプロイメントを実施して失敗した話をつら…
1年前
記事のアイキャッチ画像
Figma APIを使用し、svg形式のアイコンを /figma/images 配下にインポートするrake taskを実装してみる
for Startups Tech blog
こんにちは、2022年4月にフォースタートアップスにジョインしたエンジニアの八巻(@hachimaki37)です。入社から早半年間が経ちました。引き続き、社内向けプロダクト「タレントエージェンシー支援システム(SFA/CRM)」のシステム開発を担当しております。 はじめに 百聞は一見にしかず!ということで、まずはどんなモノか動画をご覧ください(34秒) ご視聴ありがとうございました。今回のTech Blogは 、「Figma APIを使用し、svg形式のアイコンを/figma/images配下にインポートするrake taskを実装してみる」です。開発の背景や目的、苦労話などを交えながら執筆し…
1年前
記事のアイキャッチ画像
スプリントレトロスペクティブ本来の目的とは?初めてファシリをやって体感した「難しさ」と「学び」
for Startups Tech blog
こんにちは、2022年4月にフォースタートアップスにジョインしたエンジニアの八巻(@hachimaki37)です。主に社内向けプロダクト「タレントエージェンシー支援システム(SFA/CRM)」のシステム開発を担当しております。 今回は、スクラムのイベントの一つである「スプリントレトロスペクティブ(以下、レトロスペクティブ)」について書いていきたいと思います。 早速ですが、レトロスペクティブをやっていて、こんなこと思ったことありませんか? 最近なんとなくやってるなー テーマを出したいけど、これで大丈夫かな..(迷う..) TRY実行してるけど、何が改善されたんだ? チームで議論すべきテーマってこ…
2年前
記事のアイキャッチ画像
スモールチームのインフラ担当・SREとして入社し取り組んだことと失敗したこと
for Startups Tech blog
こんにちは。フォースタートアップス株式会社でインフラ・SREを担当している吉田です。昨年入社しました。 今回は、インフラ・SRE担当の一人目として入社してからこれまでの約1年間で取り組んできたこと、失敗してきたことや課題をお話します。 入社時の弊社の状況 入社したのは約1年前。当時はオーナーや開発メンバーなど含め社員3〜5人のチームが2つあり、それぞれ別のサービスを開発していました。 社員の他にも、チーム内にはパートナーやインターンの方々もいて、約十名が曜日で入れ替わりながら参加いただいていました。 組織の状況は以下でした。 各チーム各サービスとも、開発も進み機能が徐々に増えてきた より開発や…
2年前
記事のアイキャッチ画像
GithubActions未経験者がcreateトリガーでブランチのフィルタ条件を追加してみた話
for Startups Tech blog
こんにちは、2022年4月にフォースタートアップスにジョインしたエンジニアの八巻(@hachimaki37)と申します。主に社内向けプロダクト「タレントエージェンシー支援システム(SFA/CRM)」のシステム開発を担当しております。 今回は初めてGithubActionsの改修チケットに関わることになり、途中ヒイヒイ言いながらも試行錯誤して解決に至った話について書いていければと思います。 本題に入る前に、まずは「GithubActionsとは?」と「GithubActionsの導入経緯について」簡単に述べていきたいと思います。 GithubActionsとは? GithubActionsはGi…
2年前
記事のアイキャッチ画像
MetabaseとRedashどっちが良い?組織の成長とデータ活用の悩み
for Startups Tech blog
こんにちは、エンジニアの速水です。 フォースタは22年度4Qで社員が115名となりました。その数は毎年130%成長が続き、まさに拡大中の組織です。組織が100人にもなると役割分担ができてくる一方、事業の全体感をパッとつかむのは難しくなってきます。「タレントエージェンシー支援システム(SFA/CRM)」では、スタートアップ企業、転職を希望される人、ポジションの情報を集約しているのですが、組織の拡大に伴いデータ分析を必要とするシーンも増えてきました。 以前からBIツールのRedashを導入していたのですが、運用で出てきた苦しみ、そこからのMetabaseの導入、残る悩みどころについてまとめていきま…
2年前
記事のアイキャッチ画像
t_wadaさんに社内向けTDD研修を開いてもらったよ
for Startups Tech blog
どうも、ばやし(@bayashimura)です。 先日、和田卓人(@t_wada)さんにフォースタートアップスのエンジニア向けにTDD(テスト駆動開発)研修をやってもらったので、紹介していきます。 きっかけ フォースタートアップスでは私が入社する前から自動テストに一定の投資をしていました。 大体の機能に関してはテストが存在し、テストを書かずにプルリクを投げると「書いてください」と返ってくる文化でもあります。 しかしプロダクトのコードが増えるに従い、テストコードも増加し、以下のような問題が発生しておりました。 テストの可読性が低く、テスト内容に対する認知負荷が高い テストのメンテナンスコストが高…
2年前
記事のアイキャッチ画像
開発に至る前の要件定義で四苦八苦した話
for Startups Tech blog
こんにちは、エンジニアの藤田です。 普段は社内向けのプロダクト「タレントエージェンシー支援システム(SFA/CRM)」の開発をしています。 ヒューマンキャピタリストはTA(タレントエージェンシー)本部という部署に所属しており、そのTA本部が使うシステムを内製で開発しています。 エンジニアとしてジョインして約半年、ここでの開発手法はアジャイルでフラットな開発チームであり、優先順位はあるもののタスクは開発者の裁量で取って進めていくスタイルで割と自由に開発しています。 書籍『アジャイルサムライ』第2章冒頭で書かれている、 典型的なアジャイルチームには、あらかじめ決まった役割分担は存在しないッ!! と…
2年前
記事のアイキャッチ画像
-社員と別け隔てがない環境- Startups Firstの為に常に挑戦し続けるフォースタのエンジニアインターンで学んだこと
for Startups Tech blog
初めまして、杉谷です。 2021/10月から入社までの約5ヶ月間、インターンとして働き4月から正社員として入社しました。 今回は、そのインターンについてや5ヶ月間で学んだことについて書いていきたいと思います。 フォースタのインターンってどんなことするの? 最初に、インターン内容についてですが、 インターンは、大きく「課題」・「実務」の2ステップ構成になっています。 まず初めに、課題に取り組みます。 この課題は、実務で扱うプロダクト内容や扱う技術への理解を深める為に設けられています。 例を挙げると、弊社ではElasticsearchという検索エンジンを使っているので、課題では「実際にフィールドを…
2年前
記事のアイキャッチ画像
エンジニアが週末に作ったアプリケーションをオフラインイベントで披露した話
for Startups Tech blog
こんにちは.エンジニアの藤井(@yutafujii)です. フォースタではおよそ2年ぶりに”感謝祭”というイベントを開催いたしました.(イベントレポートはこちらでご確認いただけます) イベント当日は,来場者が受付されるたびに会場内のスクリーンにお名前と写真がポップアップ表示されていました.これは個人開発で作成された簡単なアプリケーションだったのですが,今回はこの開発経緯や技術的検討点についてお話ししようと思います. スクリーンにお名前と写真がポップアップ 感謝祭とは フォースタ感謝祭とは,日頃お世話になっている起業家や投資家,スタートアップエコシステムに関わるみなさまをオフィスにお招きし,立食…
2年前
記事のアイキャッチ画像
Nuxt Bridgeを使ったNuxt3の導入調査してみた
for Startups Tech blog
こんにちは。エンジニアの大野です。主にフロントエンド周りを担当しています。 去年の話題にはなりますが、2021年10月にNuxt3のベータ版がリリースされました。 Nuxt3beta 公式のリリーススケジュールでは、このブログを書いている2022年3月にrc版、 そして2022年6月には安定版をリリースする予定となっており、着々とバージョンアップへの準備が進められている雰囲気が伺えます。 弊社にもNuxt2の環境で運用しているプロジェクトがあるのですが、vue3のリリース直前に作成した環境であるため、Composition Api やTypeScriptは別途runtimeやbuildのモジュ…
2年前
記事のアイキャッチ画像
Elasticsearch Aggregationsを使用してファセット検索のコンテンツ数を取得したお話
for Startups Tech blog
はじめに こんにちは、エンジニアインターン生の光岡です。 STARTUP DBのエンジニアをしています。 今回は、STARTUP DBでElasticsearch Aggregationsを使用したファセット検索数の取得を実装したので詳細を書いていこうと思います。 Elasticsearchとは Elasticsearchとは、分散型で無料かつオープンな検索・分析エンジンです。*1 スケーラビリティと高可用性に優れているため、多くのサービスで検索システム、ログ分析などに活用されています。 STARTUP DBも企業等の検索機能にElasticsearchを使用しています。 13,000社以上の…
2年前
記事のアイキャッチ画像
フォースタートアップスでやってる輪読会を紹介します
for Startups Tech blog
どうも、ばやし@bayashimuraです。今日はエンジニア組織で行われている輪読会について紹介していこうと思います。 フォースタでの輪読会 フォースタでは週に一回一時間、業務時間内に輪読会をやっています。かれこれ2年ほど続いており、エンジニアのスキルアップに寄与しています。 これまでに以下の本を読んできました。 UNIXの考え方 Rubyで作るRuby プロダクトマネジメント -ビルドトラップを避け顧客に価値を届ける 2020年版 スクラムガイド SQLアンチパターン 入門 監視 体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践 特徴としてはプロダクトマネ…
2年前
記事のアイキャッチ画像
国内最大級の(オープンイノベーション)グローバルカンファレンス FUSE vol.2 を盛り上げたクリエイティブ
for Startups Tech blog
はじめに 今回は2022年1月20日に行われた、フォースタートアップスとCIC Tokyo主催の国内最大級の成長産業支援カンファレンス「FUSE」vol.2をクリエイティブで支えたデザイナーたちがそのコンセプトや制作秘話を綴っていこうと思います。 FUSEとは?昨年開催され3,000名以上の方が参加した、日本経済の再成長のため、スタートアップや大手企業、アカデミア、行政などの協業・共創をプロデュースするイベント、『FUSE』。 国内スタートアップエコシステムに加えて、海外セッションも多数登場。イノベーショントレンドや日本への関心についてなど、海外投資家や大手外資企業が登壇。日頃聞くことが出来な…
2年前
記事のアイキャッチ画像
「すべては、スタートアップスのために。」for Startups(フォースタートアップス)の技術スタックを紹介します(2023年7月更新)
for Startups Tech blog
はじめに フォースタートアップスでは展開している各事業の中で、プロダクトや管理ツールなどを開発しています。もちろんインフラ構築から監視、開発に採用する技術選定まで全てチームで議論して採択しています。 自由度があり非常にやりがいのある環境であると感じているのですが、「実際にどんなことをやっているのかよく分からない」というお声をいただくこともあります。本稿においてサービス(プロダクト)と技術視点でフォースタートアップスの取り組みと技術スタックを紹介します。 フォースタに興味のある方や、未来の一緒に働く仲間に読んでいただけると嬉しいです! フォースタートアップスのご紹介 「for Startups」…
2年前
記事のアイキャッチ画像
チームトポロジーを読んだよ
for Startups Tech blog
どうも、ばやし(@bayashimura)です。 首を長くして待ち望んでいた「チームトポロジー 価値あるソフトウェアをすばやく届ける適応型組織設計」を読みました。とても勉強になったので感想を書いていこうと思います。 どんな本? 社内に複数チームを抱えるサイズになった企業が、どういうチーム構成にしてどのような相互作用をすればよいのかというのを説明してくれる本です。 そのために4つのチームタイプと3つのインタラクションモードのモデルを提示し、高速に価値をデリバリーする組織の形をパターンとして伝えてくれます。 具体的なまとめ内容に関しては翻訳者の一人のryuzeeさんのブログがわかりやすいです。 w…
2年前
記事のアイキャッチ画像
E2Eテストを書くことで変更失敗率を下げつつデプロイ回数を上げたい
for Startups Tech blog
こんにちは。エンジニアの藤井(@yutafujii)です。 社内向けのプロダクト「タレントエージェンシー支援システム(SFA/CRM)」のエンジニアをしています。 今回は安心して開発に専念できるようE2Eテストを記述した話をさせていただきます。 アプリケーションはVue/Railsで動いておりCIはCircleCI、テストツールはPlaywrightを用いました。 変更失敗率とかデプロイ回数の話 つい先日t_wadaさんがパフォーマンス指標についてTweetしておりましたが、チームでも直近デプロイ回数を意識した方がよいのではという話になりました。 4つのキーメトリクスについて講演資料に今年の …
2年前
記事のアイキャッチ画像
「STARTUP DB」に込められた想いとは?
for Startups Tech blog
こんにちは、フォースタートアップスで運営している成長産業に特化した情報プラットフォーム「STARTUP DB」のプロダクトオーナーの寺田(@yuyaterada)です。 今回は「STARTUP DB」とはそもそもどのようなプロダクトか、直近リリースしたENTERPRISE機能、今後の戦略についてご紹介します。 「STARTUP DB」が目指すGOAL 「STARTUP DB」は国内13,000社以上のベンチャー・スタートアップ企業の情報、起業家・投資家、エコシステムビルダーの方々累計150名以上のインタビュー記事が閲覧できる情報プラットフォームです。エコシステムビルダーは国内スタートアップエコ…
3年前
記事のアイキャッチ画像
ブラウザで本番データの分析をするためにRedashとGoogleColabを組み合わせてみた話
for Startups Tech blog
こんにちは。エンジニアの藤井(@yutafujii)です。 社内向けのプロダクト「タレントエージェンシー支援システム(SFA/CRM)」のエンジニアをしています。 当社ではデータ分析を専門に行う人がまだいないので、私たちエンジニアがごく簡単なデータ分析を行う場面があるのですが、それを行うためにPythonでの分析環境を手軽に構築しました。 具体的には、複数のRDBやログデータを対象に、RedashでSQLを書いてデータレイク的状態(あるいはデータウェアハウス的状態)を形成し、Google Colaboratory(以下Colab)を用いてその出力をPythonで分析するという流れを説明します。…
3年前