[{"data":1,"prerenderedAt":332},["ShallowReactive",2],{"recruit-jobs":3,"recruit-articles-all-1":157,"recruit-articles-categories":265,"recruit-article-entry-226":277},{"list":4,"categories":146},[5,13,18,23,28,33,41,46,51,56,61,66,71,76,81,86,91,96,101,106,111,116,121,126,131,136,141],{"topics_id":6,"contents_type":7,"contents_type_nm":8,"name":9,"text":10,"url":11,"is_top":12},64,18,"新卒","WEBエンジニア職","事業・サービス・社内業務効率化に関わるプロダクト開発、システム開発、アプリ開発などDX推進を担当。","https://public.n-ats.hrmos.co/rizapgroup/jobs/2126894917723471872",true,{"topics_id":14,"contents_type":7,"contents_type_nm":8,"name":15,"text":16,"url":17,"is_top":12},65,"データサイエンティスト職","事業・サービスに関わるビッグデータに対して、横断的にデータ分析基盤を構築し、新しい提供価値を創造。","https://public.n-ats.hrmos.co/rizapgroup/jobs/2171814626636591104",{"topics_id":19,"contents_type":7,"contents_type_nm":8,"name":20,"text":21,"url":22,"is_top":12},66,"業務自動化エンジニア職","様々な業態・業務プロセスにおける、自動化や仕組み化の導入・開発を推進。","https://public.n-ats.hrmos.co/rizapgroup/jobs/2126896559415881728",{"topics_id":24,"contents_type":7,"contents_type_nm":8,"name":25,"text":26,"url":27,"is_top":12},67,"IoTエンジニア職","IoT事業の拡大に向け、ハード・ソフト両軸で新しい体験価値を創造。","https://public.n-ats.hrmos.co/rizapgroup/jobs/2156228450968444928",{"topics_id":29,"contents_type":7,"contents_type_nm":8,"name":30,"text":31,"url":32,"is_top":12},68,"セキュリティエンジニア職","従業員の働きやすさを支える、業務システムとITインフラの構築・管理。","https://public.n-ats.hrmos.co/rizapgroup/jobs/2179029856766332928",{"topics_id":34,"contents_type":35,"contents_type_nm":36,"name":37,"text":38,"url":39,"is_top":40},69,21,"中途","開発PM","Webサービスやモバイルアプリの要件定義・設計から開発チームのマネジメント、進捗・品質管理、定量定性分析による改善を担う。","https://hrmos.co/pages/rizapgroup/jobs/000003",false,{"topics_id":42,"contents_type":35,"contents_type_nm":36,"name":43,"text":44,"url":45,"is_top":40},70,"Webディレクター","WebページのディレクションからCMS運用、KPI設計・ABテスト・PDCAサイクルによるサイトグロースまで、幅広くWeb制作の進行を担う。","https://hrmos.co/pages/rizapgroup/jobs/000007",{"topics_id":47,"contents_type":35,"contents_type_nm":36,"name":48,"text":49,"url":50,"is_top":12},71,"シニアプロダクトマネージャー","アプリ・店舗IoT・タブレット等の複数プロダクト戦略策定から要件定義・UX設計・効果検証まで、経営層と連携しながら一貫してプロダクト開発を主導。","https://hrmos.co/pages/rizapgroup/jobs/000010",{"topics_id":52,"contents_type":35,"contents_type_nm":36,"name":53,"text":54,"url":55,"is_top":12},72,"IoTサーバーエンジニア(オープンポジション)","店舗デバイスのデータ収集・遠隔制御基盤からアルゴリズム、外部ベンダー管理まで幅広く担当。既存システム連携や新価値提案を通じ、デバイス活用の仕組み作りを担う。","https://hrmos.co/pages/rizapgroup/jobs/000015",{"topics_id":57,"contents_type":35,"contents_type_nm":36,"name":58,"text":59,"url":60,"is_top":40},73,"店舗IoT／ハードウェア企画・プロダクトマネージャー","グループ独自のサービスやシステムの企画、要件定義、開発管理を担う。PoCによる仮説検証を行うほか、外部ベンダー管理を含むプロジェクト全体の推進を行う。","https://hrmos.co/pages/rizapgroup/jobs/000019",{"topics_id":62,"contents_type":35,"contents_type_nm":36,"name":63,"text":64,"url":65,"is_top":40},74,"モバイルアプリエンジニア(Android)","Kotlinを用いたAndroidアプリの企画・設計・開発・運用を担当。PdM・デザイナー・バックエンドエンジニアと連携したチーム開発でサービス品質向上を推進する。","https://hrmos.co/pages/rizapgroup/jobs/000025",{"topics_id":67,"contents_type":35,"contents_type_nm":36,"name":68,"text":69,"url":70,"is_top":40},75,"データアナリスト","SQLや機械学習を活用し、サービスの新規開発・改善を支援する。KPI定義・可視化・データ分析基盤の構築を担当。","https://hrmos.co/pages/rizapgroup/jobs/000042",{"topics_id":72,"contents_type":35,"contents_type_nm":36,"name":73,"text":74,"url":75,"is_top":40},76,"Webデザイナー","WebサービスやアプリのUI/UXからLP・バナー等の広告クリエイティブ制作など、デジタル+リアルの顧客接点を意識したデザイン業務を担う。","https://hrmos.co/pages/rizapgroup/jobs/000061",{"topics_id":77,"contents_type":35,"contents_type_nm":36,"name":78,"text":79,"url":80,"is_top":40},77,"プロジェクトマネージャー・プロジェクトリーダー","RIZAPグループ全社のDX推進として、清掃管理システムやCTI/CRMリプレイス等のシステム導入プロジェクトを要件定義からリリースまで一貫してマネジメントする。","https://hrmos.co/pages/rizapgroup/jobs/100008",{"topics_id":82,"contents_type":35,"contents_type_nm":36,"name":83,"text":84,"url":85,"is_top":40},78,"Webディレクター（マネージャー候補）","WebディレクションやサイトグロースのPDCA推進に加え、ディレクター育成・目標設定・評価・アーキテクチャ選定など組織マネジメント全般を担うリーダー職。","https://hrmos.co/pages/rizapgroup/jobs/1971790520045400071",{"topics_id":87,"contents_type":35,"contents_type_nm":36,"name":88,"text":89,"url":90,"is_top":40},79,"開発PM（マネージャー候補）","Webサービス・モバイルアプリの開発方針策定からPMチームの育成・評価・組織運営まで担い、経営層・外部パートナーと連携しながらプロダクト開発を統括する。","https://hrmos.co/pages/rizapgroup/jobs/1971790520045400072",{"topics_id":92,"contents_type":35,"contents_type_nm":36,"name":93,"text":94,"url":95,"is_top":40},80,"DX戦略推進マネージャー","経営・事業戦略フェーズから参画し、AI/RPA活用を前提とした業務プロセス改革・システム要件定義・開発ディレクション・ステークホルダー調整を横断的に主導。","https://hrmos.co/pages/rizapgroup/jobs/1971790520045400083",{"topics_id":97,"contents_type":35,"contents_type_nm":36,"name":98,"text":99,"url":100,"is_top":40},81,"PL／PM","システム構築プロジェクトにおいて、進捗・課題・コスト管理から外部ベンダー交渉・社内調整まで幅広くプロジェクトのマネジメントを担う。","https://hrmos.co/pages/rizapgroup/jobs/1971790520045400102",{"topics_id":102,"contents_type":35,"contents_type_nm":36,"name":103,"text":104,"url":105,"is_top":40},82,"社内SE／インフラ・ネットワークアーキテクト","社内インフラ・ネットワークの要件定義・設計・リリースから基幹システムのリプレイス検討・保守運用改善まで、グループ全体の社内ITを包括的に担当。","https://hrmos.co/pages/rizapgroup/jobs/1971790520045400103",{"topics_id":107,"contents_type":35,"contents_type_nm":36,"name":108,"text":109,"url":110,"is_top":40},83,"電気エンジニア(オープンポジション)","店舗設置IoT機器の回路・基板設計・試作・評価・検証を行い、パートナーとの生産立ち上げや外部開発ベンダーのマネジメントまで手掛けるハードウェア開発職。","https://hrmos.co/pages/rizapgroup/jobs/2110665929241341962",{"topics_id":112,"contents_type":35,"contents_type_nm":36,"name":113,"text":114,"url":115,"is_top":40},84,"業務アプリケーション開発エンジニア・アーキテクト","クラウドを活用したRIZAPグループ各社の社内業務アプリを内製開発・運用し、現場ヒアリングから要件定義・自動化・効率化の実装まで一貫して担う。","https://hrmos.co/pages/rizapgroup/jobs/2110665929241341966",{"topics_id":117,"contents_type":35,"contents_type_nm":36,"name":118,"text":119,"url":120,"is_top":40},85,"組み込みエンジニア(オープンポジション)","センサーや無線通信を用いたIoT機器のファームウェア設計・実装・検証とセンサーデータ分析・制御アルゴリズム開発を担い、外部ベンダー共同開発も管理する。","https://hrmos.co/pages/rizapgroup/jobs/2110665929241341969",{"topics_id":122,"contents_type":35,"contents_type_nm":36,"name":123,"text":124,"url":125,"is_top":40},86,"機構エンジニア(オープンポジション)","店舗設置機器の機構部PoC・設計・試作・評価から樹脂成型・板金部品の量産化まで担い、生産パートナーと協力して製造立ち上げを主導するエンジニア職。","https://hrmos.co/pages/rizapgroup/jobs/2110665929241341970",{"topics_id":127,"contents_type":35,"contents_type_nm":36,"name":128,"text":129,"url":130,"is_top":40},87,"ハードウェア品質管理","既存マシンの品質課題解析や対策立案から、新デバイスの性能・信頼性評価、品質データ分析・工程管理まで一貫して担い、ハードウェアの品質保証と改善提案をリードする。","https://hrmos.co/pages/rizapgroup/jobs/2110665929241341973",{"topics_id":132,"contents_type":35,"contents_type_nm":36,"name":133,"text":134,"url":135,"is_top":40},88,"AI・データユニット（20代の第二新卒～ミドルクラス）","多角的な事業から得られる膨大なデータを活用し、ビジネスインパクトを最大化するためのデータ基盤構築およびAIソリューションの開発を担う。","https://hrmos.co/pages/rizapgroup/jobs/2110665929241341987",{"topics_id":137,"contents_type":35,"contents_type_nm":36,"name":138,"text":139,"url":140,"is_top":40},89,"修理工程プロセスエンジニア・現場監督","新規修理工程の立ち上げ・レイアウト設計・設備選定からSOP作成・進捗/品質/コスト管理・現場作業員の安全衛生監督まで一貫して担う製造現場リーダー職。","https://hrmos.co/pages/rizapgroup/jobs/2110665929241341990",{"topics_id":142,"contents_type":35,"contents_type_nm":36,"name":143,"text":144,"url":145,"is_top":40},90,"修理現場リーダー・作業員監督","新規修理工程にて、現場の労務・シフト管理や技術指導、進捗管理を一貫して担当。現場の課題を吸い上げ、プロセス改善や品質向上に向けた提案までを担う。","https://hrmos.co/pages/rizapgroup/jobs/2110665929241341991",[147,151,154],{"label":148,"value":149,"to":150},"すべて","all","/recruit/jobs",{"label":8,"value":152,"to":153},"18","/recruit/jobs/categories/18",{"label":36,"value":155,"to":156},"21","/recruit/jobs/categories/21",{"articles":158,"totalPageCnt":264},[159,170,180,187,197,202,210,216,222,228,233,238,243,253,258],{"to":160,"image":161,"date":162,"label":163,"title":164,"tags":165},"/recruit/articles/entries/199","https://rizap-tech.g.kuroco-img.app/v=1775010931/files/user/recruit/contents/thumbnail/n5cfaf3e31c72_73e97bd445fe0dfcbf6bbcdef8acc1f4.png","2026.02.05","技術・カンファレンス","AIエージェント時代を見据えた認証認可の未来 ─ Authlete Meetup 2025 参加レポート",[166,167,168,169],"イベントレポート","カンファレンス","Authlete","エンジニア",{"to":171,"image":172,"date":173,"label":174,"title":175,"tags":176},"/recruit/articles/entries/200","https://rizap-tech.g.kuroco-img.app/v=1775010935/files/user/recruit/contents/thumbnail/n9a33f80f8704_7728e1500e7c81f2e18fbd5accede9a9.jpeg","2026.01.19","インターン・採用","【RIZAPテクノロジーズ】27年卒向け　第9回3Daysエンジニアインターンを開催しました！",[169,177,178,179],"開発","新卒採用","インターン",{"to":181,"image":182,"date":183,"label":163,"title":184,"tags":185},"/recruit/articles/entries/201","https://rizap-tech.g.kuroco-img.app/v=1775010937/files/user/recruit/contents/thumbnail/n24f5b9c49390_6873514f9cb987e31f21d908e7882fc4.png","2026.01.08","RIZAPオフィスでProgateハッカソンを開催しました！",[178,186],"ハッカソン",{"to":188,"image":189,"date":190,"label":191,"title":192,"tags":193},"/recruit/articles/entries/203","https://rizap-tech.g.kuroco-img.app/v=1775010930/files/user/recruit/contents/thumbnail/n2f795844f152_90197213ae57cefa5c5b5bbfb90cc914.png","2025.12.26","インタビュー","内定者が聞く、RIZAPテクノロジーズ IoT統括部のリアル【後編】",[194,195,196],"社員インタビュー","IoT","仕事のリアル",{"to":198,"image":199,"date":190,"label":191,"title":200,"tags":201},"/recruit/articles/entries/202","https://rizap-tech.g.kuroco-img.app/v=1775010933/files/user/recruit/contents/thumbnail/n8a11235fd931_b14a9ca709c1ead3e54b9d46c46b3d4f.png","内定者が聞く、RIZAPテクノロジーズ IoT統括部のリアル【前編】",[194,195,196],{"to":203,"image":204,"date":205,"label":163,"title":206,"tags":207},"/recruit/articles/entries/204","https://rizap-tech.g.kuroco-img.app/v=1775010959/files/user/recruit/contents/thumbnail/ne6d110c0bec0_9577421efba8a564c17a6f9862c51c48.jpeg","2025.12.23","YAPC::Fukuoka 2025カンファレンスレポート【各講演の学び】",[166,167,169,208,209],"SRE","YAPC",{"to":211,"image":212,"date":213,"label":174,"title":214,"tags":215},"/recruit/articles/entries/205","https://rizap-tech.g.kuroco-img.app/v=1775010934/files/user/recruit/contents/thumbnail/n8ba7168ba394_0aa90eced3923259150a7e78b770d871.jpeg","2025.12.19","【RIZAPテクノロジーズ】27年卒向け　第8回3Daysエンジニアインターンを開催しました！",[169,177,178,179],{"to":217,"image":218,"date":219,"label":163,"title":220,"tags":221},"/recruit/articles/entries/206","https://rizap-tech.g.kuroco-img.app/v=1775010948/files/user/recruit/contents/thumbnail/n1843939c3a3c_8f61cafb8ad4218a615ec0751333945e.jpeg","2025.12.11","58ハッカソンにメンターとして参加しました！",[169,186,166],{"to":223,"image":224,"date":225,"label":191,"title":226,"tags":227},"/recruit/articles/entries/210","https://rizap-tech.g.kuroco-img.app/v=1775010930/files/user/recruit/contents/thumbnail/n3d479ba02fcc_c19c70a9c2415f376a3d6b83fce5a8b3.png","2025.12.04","未経験からバックエンドエンジニアに！　若手社員が語る、個人のスキルだけではいけない理由",[194,178,169,177],{"to":229,"image":230,"date":225,"label":191,"title":231,"tags":232},"/recruit/articles/entries/209","https://rizap-tech.g.kuroco-img.app/v=1775010952/files/user/recruit/contents/thumbnail/nb1b9e76e120b_df4b3f13b243d61bc3d303a0491524b7.png","エンジニアの力で社内の業務を自動化！　“to 社内向け”の仕事とは？",[194,169,178,196],{"to":234,"image":235,"date":225,"label":191,"title":236,"tags":237},"/recruit/articles/entries/208","https://rizap-tech.g.kuroco-img.app/v=1775010949/files/user/recruit/contents/thumbnail/n310208834a85_5857b502c7e40d1ce19340d831671b68.png","データアナリストとして成長途中のRIZAPを支える！　データを使った影響力のあるしごと",[194,178,196],{"to":239,"image":240,"date":225,"label":191,"title":241,"tags":242},"/recruit/articles/entries/207","https://rizap-tech.g.kuroco-img.app/v=1775010943/files/user/recruit/contents/thumbnail/n588feaae4af0_2ebd47200eaaa8ae0324c4b5d50428fe.png","デジタル化に留まらないDXを。 “攻め” の情報システム部とは？【内定者が若手社員に聞く！】",[194,178,196],{"to":244,"image":245,"date":246,"label":163,"title":247,"tags":248},"/recruit/articles/entries/213","https://rizap-tech.g.kuroco-img.app/v=1775010957/files/user/recruit/contents/thumbnail/ndbe0ad4c3c3b_881fecd27c29077dd8e3601cce3d06fc.jpeg","2025.12.03","Vue Fes Japan 2025 に登壇しました！",[166,167,249,250,251,169,252],"vue","nuxt","chocoZAP","登壇",{"to":254,"image":255,"date":246,"label":163,"title":256,"tags":257},"/recruit/articles/entries/212","https://rizap-tech.g.kuroco-img.app/v=1775010954/files/user/recruit/contents/thumbnail/nc0b63b0ba413_80f5027c4e0c8dc5adcdb46227fef03d.jpeg","Vue Fes Japan 2025  参加レポート",[166,167,249,250,169],{"to":259,"image":260,"date":246,"label":163,"title":261,"tags":262},"/recruit/articles/entries/211","https://rizap-tech.g.kuroco-img.app/v=1775010932/files/user/recruit/contents/thumbnail/n05f3262fccc7_bbdfb906499373c3a143a2b88638f2dd.jpeg","chocoZAPがRuby biz Grand prix 2025 大賞を受賞",[166,263,169,251,252],"Ruby",10,[266,268,271,274],{"label":148,"value":149,"to":267},"/recruit/articles",{"label":163,"value":269,"to":270},"32","/recruit/articles/categories/32",{"label":174,"value":272,"to":273},"33","/recruit/articles/categories/33",{"label":191,"value":275,"to":276},"31","/recruit/articles/categories/31",{"article":278,"relatedJobs":288,"relatedArticles":290},{"date":279,"publishedAt":280,"categoryName":163,"title":281,"heroImage":282,"body":283,"metaDescription":284,"tags":285},"2025.10.10","2025-10-10T00:00:00+09:00","エンジニア歴3年、Kaigi on Railsの舞台へ","https://rizap-tech.g.kuroco-img.app/v=1775010932/files/user/recruit/contents/thumbnail/n6bbaf24c7ce4_e9bf4e1aed7b4e4b2e661a747526b32c.jpeg","\u003Cp name=\"8b011f9c-8e99-42f9-8a02-fefe25c2d179\" id=\"8b011f9c-8e99-42f9-8a02-fefe25c2d179\">まず一番に伝えたいのは\u003Cstrong>「こんな自分でも登壇できた」\u003C/strong> という事実です。\u003C/p>\u003Cp name=\"60153f62-3beb-4922-90d9-3d8905057e9e\" id=\"60153f62-3beb-4922-90d9-3d8905057e9e\">私はRIZAPに新卒で入社しましたが、そのときの採用は総合職です。ITとは全く無縁の自分がKaigi on Railsのスピーカーとして舞台に立つとは、夢にも思っていませんでした。\u003C/p>\u003Cp name=\"ed6db0c8-b82b-472b-a6ec-3a2604c78bb9\" id=\"ed6db0c8-b82b-472b-a6ec-3a2604c78bb9\">転機は当社のchocoZAPという新規サービスの立ち上げです。社内で「エンジニアを育てよう」という流れがあり、そこでジョブチェンジをすることにしました。2022年の夏から実務に携わり始め、最初の1年半はフロントエンドが中心。Railsを日常的に触るようになるのは、そのさらに後のことです。\u003C/p>\u003Cp name=\"1eeea455-e10a-4fd2-80fe-50900c1f9c29\" id=\"1eeea455-e10a-4fd2-80fe-50900c1f9c29\">そうした中で、2023年10月に初めてKaigi on Railsに参加しました。そのときはバックエンドの実務経験はなく、研修でCRUDアプリを作ったくらい。発表の半分も理解できず、登壇者はまるで雲の上の存在でした。\u003C/p>\u003Cp name=\"09559ef2-39ff-4996-8435-03de7f64e141\" id=\"09559ef2-39ff-4996-8435-03de7f64e141\">それでもRubyやRailsのコミュニティはとても温かく、「自分は蚊帳の外ではない」と思わせてくれる空気がありました。登壇者も聴講者も同じ仲間としての一体感がある。その雰囲気に触れるうちに、自然と「いつか自分もこの壇上に立ちたい」という気持ちが芽生えたのです。\u003C/p>\u003Cp name=\"77f60e2d-4f36-4cd1-b5ac-f77d580ed7f3\" id=\"77f60e2d-4f36-4cd1-b5ac-f77d580ed7f3\">その思いが少しずつ膨らみ、CFPを提出する勇気につながりました。そして今、登壇を果たした自分が伝えたいのは、\u003Cstrong>この舞台に立てるチャンスは誰にでもある\u003C/strong> ということです。\u003C/p>\u003Cp name=\"7e3958a9-b9dd-444e-bb9d-64d17c0924cc\" id=\"7e3958a9-b9dd-444e-bb9d-64d17c0924cc\">\u003Cstrong>チャンスを掴むために\u003C/strong>\u003C/p>\u003Cp name=\"6c4b0c6e-2ea2-4655-a7fc-5ce9b06779d4\" id=\"6c4b0c6e-2ea2-4655-a7fc-5ce9b06779d4\">大事なのはそのチャンスにどう向き合うかです。&nbsp;\u003Cbr>私自身、この数年は愚直にRubyやRailsと向き合い、1行のコード、1つのメソッドに対して理解を怠らないよう取り組んできました。&nbsp;\u003Cbr>そこに近道はなく、少しずつ積み上げていくのみです。\u003C/p>\u003Cp name=\"7b843586-09bc-4fab-ba22-bbe78ae0d623\" id=\"7b843586-09bc-4fab-ba22-bbe78ae0d623\">その積み上げを加速させてくれたのがRIZAPの環境でした。\u003C/p>\u003Ch3 name=\"3588b2be-2db2-458e-a5e7-f65e148e3c5b\" id=\"3588b2be-2db2-458e-a5e7-f65e148e3c5b\">成長を後押しする環境\u003C/h3>\u003Cp name=\"3c119ccc-1e47-4bb6-be31-6722fcc1ddc9\" id=\"3c119ccc-1e47-4bb6-be31-6722fcc1ddc9\">RIZAPではポテンシャル採用を積極的におこない、未経験者や新卒でも急速に成長して活躍できるよう、育成の仕組みを整えています。私がここまで来られたのも、この仕組みに支えられたからでしょう。\u003C/p>\u003Cp name=\"5d1a7c85-3e84-4a83-b5e8-72dd65df4d3e\" id=\"5d1a7c85-3e84-4a83-b5e8-72dd65df4d3e\">この取り組みについては、\u003Cstrong>Ruby World Conference 2025\u003C/strong> で詳しく発表する予定です。ぜひ楽しみにしてください。\u003C/p>\u003Cp name=\"45a63c6d-b3bc-4608-b345-75597af58555\" id=\"45a63c6d-b3bc-4608-b345-75597af58555\">\u003Ca href=\"https://2025.rubyworld-conf.org/ja/\" target=\"_blank\" rel=\"nofollow noopener\">RubyWorld Conference 2025\u003C/a>\u003C/p>\u003Ch3 name=\"1a759648-8fd0-4d11-9823-a356077c0fbf\" id=\"1a759648-8fd0-4d11-9823-a356077c0fbf\">発表内容\u003C/h3>\u003Cfigure name=\"2e124f43-da8a-4280-9e89-30d863957f89\" id=\"2e124f43-da8a-4280-9e89-30d863957f89\">\u003Cp>\u003Cimg src=\"https://rizap-tech.g.kuroco-img.app/files/user/recruit/contents/body/n6bbaf24c7ce4_1759971840-5WSBKF8uO4TXJpsjzm6nG2Zb.jpg\" alt=\"\" width=\"620\" height=\"413\">\u003C/p>\u003Cfigcaption>&nbsp;\u003C/figcaption>\u003C/figure>\u003Cp name=\"b56ae0d4-30f7-429c-85c4-6e195a322be1\" id=\"b56ae0d4-30f7-429c-85c4-6e195a322be1\">さて、今回の発表テーマは\u003Cstrong>「多重範囲型を活用してコードをシンプルにする技術」\u003C/strong> です。\u003C/p>\u003Cp name=\"2705ab75-3f69-4bb9-b786-041749a089b8\" id=\"2705ab75-3f69-4bb9-b786-041749a089b8\">chocoZAPの予約システムを刷新するにあたり、ユーザーが好きな時間に自由に予約できる仕組みが求められました。\u003C/p>\u003Cp name=\"c9c5a673-cea1-4357-b084-e04b0e45ee06\" id=\"c9c5a673-cea1-4357-b084-e04b0e45ee06\">一般的な予約システムは、あらかじめ固定の予約枠を用意し、ユーザーがその枠を選択する形が多いかと思います。\u003C/p>\u003Cp name=\"0aad6ed7-4d60-40f5-b36d-ac903d0493d3\" id=\"0aad6ed7-4d60-40f5-b36d-ac903d0493d3\">しかし、chocoZAPの予約システムでは「枠」という考え方を取り払う必要がありました。\u003C/p>\u003Cp name=\"9a975b33-7486-428b-a4a6-6c128b764368\" id=\"9a975b33-7486-428b-a4a6-6c128b764368\">ところが枠がないことで「この時間は予約可能か？」という判定が一気に難しくなり、コードは複雑化し、パフォーマンスも悪化しました。\u003C/p>\u003Cp name=\"ed58812e-13f0-4f01-8258-42511f65fe57\" id=\"ed58812e-13f0-4f01-8258-42511f65fe57\">そこで辿り着いたのが、\u003Cstrong>範囲（Range）の数学的発想をコードに持ち込む\u003C/strong>アプローチです。\u003C/p>\u003Cul name=\"5c1d8077-5fae-4ac1-9935-bf05615a53b5\" id=\"5c1d8077-5fae-4ac1-9935-bf05615a53b5\">\u003Cli>\u003Cp name=\"c2bb5027-1c96-4c8b-88c2-c4b0fb0f5143\" id=\"c2bb5027-1c96-4c8b-88c2-c4b0fb0f5143\">「予約できない期間」をすべて範囲として捉える\u003C/p>\u003C/li>\u003Cli>\u003Cp name=\"efaec2b5-de79-4afc-b25e-33826827524e\" id=\"efaec2b5-de79-4afc-b25e-33826827524e\">「確認したい対象期間」との差集合を計算する\u003C/p>\u003C/li>\u003Cli>\u003Cp name=\"deb20a37-4a6b-4b0d-8b62-22d6d07c99c5\" id=\"deb20a37-4a6b-4b0d-8b62-22d6d07c99c5\">残った範囲を「予約可能時間」として算出する\u003C/p>\u003C/li>\u003C/ul>\u003Cp name=\"3acf0a01-7bf8-48b0-82be-007a35fd789c\" id=\"3acf0a01-7bf8-48b0-82be-007a35fd789c\">こうすることで予約の空き状況を一撃で導けるのではと考えました。\u003C/p>\u003Cp name=\"a069a3b5-b992-4a5a-8a6d-838930113dd8\" id=\"a069a3b5-b992-4a5a-8a6d-838930113dd8\">ただし、PostgreSQLの通常の範囲型では複数の分断された範囲を扱えません。\u003C/p>\u003Cp name=\"35d7cc6f-c6aa-4889-a220-34c10f985b33\" id=\"35d7cc6f-c6aa-4889-a220-34c10f985b33\">そこで利用したのが \u003Cstrong>多重範囲型（multirange型）\u003C/strong> です。\u003C/p>\u003Cp name=\"1a575079-8310-48c5-988f-af877f6db27e\" id=\"1a575079-8310-48c5-988f-af877f6db27e\">多重範囲型を使えば、分断された複数の期間をひとまとめに扱え、差集合や積集合といった演算も可能になります。\u003C/p>\u003Cp name=\"5f399ea4-2bef-45b1-ad8b-9022cecfab75\" id=\"5f399ea4-2bef-45b1-ad8b-9022cecfab75\">今回のセッションでは、この多重範囲型をRailsでどのように扱うか、その実践的な方法まで紹介しました。\u003C/p>\u003Cp name=\"115a6c14-b5e4-4d65-9523-b43a311c3c54\" id=\"115a6c14-b5e4-4d65-9523-b43a311c3c54\">予約システムに限らず「連続した値の集まり」を扱う処理全般において、応用できる知見だと考えています。\u003C/p>\u003Cp name=\"aff0fd4d-b9f2-4ec4-affc-0f8061657ea5\" id=\"aff0fd4d-b9f2-4ec4-affc-0f8061657ea5\">\u003Cstrong>登壇して感じた３つのこと\u003C/strong>\u003C/p>\u003Cp name=\"6b21a9f0-ea4f-4394-9bb0-04836056dcdc\" id=\"6b21a9f0-ea4f-4394-9bb0-04836056dcdc\">Kaigi on Railsのチーフオーガナイザーである大倉さんは、「プロポーザルを出す良さ」について語られています。&nbsp;\u003Cbr>実際に登壇してみて、その内容はまさに自分が感じたことと重なっていました。\u003C/p>\u003Cp name=\"ae916a05-b777-441f-9c35-057f6ad1e476\" id=\"ae916a05-b777-441f-9c35-057f6ad1e476\">私が登壇を通じて強く実感したのは、次の3つです。\u003C/p>\u003Cp name=\"6a5b2e2f-0b18-46f6-a22a-5a3c9c56a481\" id=\"6a5b2e2f-0b18-46f6-a22a-5a3c9c56a481\">\u003Cstrong>1. 自らの学びを抽象化し、一般的に使える技術へ昇華する\u003C/strong>\u003C/p>\u003Cp name=\"3c8bcb4f-b60a-4880-bd1e-d826e9a1a2d8\" id=\"3c8bcb4f-b60a-4880-bd1e-d826e9a1a2d8\">登壇を準備する過程で、自分がこれまで取り組んできた内容を整理することができ、よい振り返りになります。\u003C/p>\u003Cp name=\"18696e88-4955-462a-b489-5ccf94f524c6\" id=\"18696e88-4955-462a-b489-5ccf94f524c6\">さらに、単なる振り返りにとどまらず、次に応用できる形へと昇華させることができます。\u003C/p>\u003Cp name=\"78c93a86-375b-47cb-beac-0ca6cb97d6ce\" id=\"78c93a86-375b-47cb-beac-0ca6cb97d6ce\">登壇となれば、少しでも多くの人の役に立つ話をしたいと思うものです。\u003C/p>\u003Cp name=\"5213469b-a30c-4481-98cd-f20929905196\" id=\"5213469b-a30c-4481-98cd-f20929905196\">そのためには実務で得た知見をそのまま話すのではなく「どうすれば一般化して他の人にも役立つか」を考える必要があります。\u003C/p>\u003Cp name=\"94668698-4172-44ec-8fd1-ded384b1cc42\" id=\"94668698-4172-44ec-8fd1-ded384b1cc42\">実務ではどうしても要件や制約が細かく、このサービス、この場面だからこそ成立する知見になりがちです。\u003C/p>\u003Cp name=\"30f6ba90-f8ef-4740-a851-1d0538183a3a\" id=\"30f6ba90-f8ef-4740-a851-1d0538183a3a\">私の今回の発表は「多重範囲型」というニッチな技術が中心で、聞き手を選ぶ内容だったかもしれません。\u003C/p>\u003Cp name=\"4c33f3a0-1ec8-45df-9e5b-4b9e39252bde\" id=\"4c33f3a0-1ec8-45df-9e5b-4b9e39252bde\">それでもできるだけ一般化し、聞いてくださった方に少しでも役立つようにと意識して話しました。\u003C/p>\u003Cp name=\"13e745d7-6026-4734-9927-a14d3d4419f4\" id=\"13e745d7-6026-4734-9927-a14d3d4419f4\">\u003Cstrong>2. 当日のコミュニケーションが格段にしやすくなる\u003C/strong>\u003C/p>\u003Cp name=\"ce57708e-8b80-432f-85fc-b6378c1706dc\" id=\"ce57708e-8b80-432f-85fc-b6378c1706dc\">正直に言えば、私はエンジニアとしてまだまだ未熟です。名だたる登壇者や界隈で知られたエンジニアを目の前にすると、どうしても物怖じしてしまいます。\u003C/p>\u003Cp name=\"e07d0dd9-ff9d-4a4a-95ad-db6aa8a85be2\" id=\"e07d0dd9-ff9d-4a4a-95ad-db6aa8a85be2\">しかし「登壇者」という肩書きがあるだけで少し気が大きくなり、自分から話しかけやすくなりました！\u003C/p>\u003Cp name=\"80aabcfa-15ac-4ac1-af34-f0835b0c6d17\" id=\"80aabcfa-15ac-4ac1-af34-f0835b0c6d17\">実際に多くの方と会話でき、普段なら遠慮してしまうような質問や相談もすることができました。\u003C/p>\u003Cp name=\"9273cdfa-a7a9-4d0e-92db-f704e0f83b54\" id=\"9273cdfa-a7a9-4d0e-92db-f704e0f83b54\">1年あるいは数年かけて取り組んできたことを、15分や30分の限られた時間で全て話し切るのは到底無理があります。おそらく他の登壇者の方々も泣く泣く削った話が山ほどあるはずです。\u003C/p>\u003Cp name=\"b8f0ccaa-0902-4dc3-8b94-1bfd16c73b63\" id=\"b8f0ccaa-0902-4dc3-8b94-1bfd16c73b63\">だからこそ、カンファレンス中に登壇者へ直接質問したり、興味ある話を深掘りできることこそが、現地参加の大きな意義だと思います。\u003C/p>\u003Cp name=\"fafd57d6-c17e-4c04-8cf3-7d7816574fbc\" id=\"fafd57d6-c17e-4c04-8cf3-7d7816574fbc\">発表内容を聞くだけなら後日公開されるアーカイブで十分です。\u003C/p>\u003Cp name=\"5b520e25-9e64-4b98-b77a-7f10dd307ee0\" id=\"5b520e25-9e64-4b98-b77a-7f10dd307ee0\">わざわざ時間とお金をかけて現地に行く意義は、\u003Cstrong>リアルな場に集った多くの人と密に交わり、活発なコミュニケーションを通してdynamicな刺激を得られること\u003C/strong> にあります。\u003C/p>\u003Cp name=\"7ec8a168-473d-4cee-94bb-333551296ce0\" id=\"7ec8a168-473d-4cee-94bb-333551296ce0\">そしてさらに登壇することで、さまざまな交流が一層しやすくなり、本当に有意義な時間を過ごせました。\u003C/p>\u003Cp name=\"a05a9252-da3e-44a6-9b62-06581c613659\" id=\"a05a9252-da3e-44a6-9b62-06581c613659\">\u003Cstrong>3. コミュニティに貢献できるよろこび\u003C/strong>\u003C/p>\u003Cp name=\"cbb9bfc5-804f-4829-b505-49f0fb026372\" id=\"cbb9bfc5-804f-4829-b505-49f0fb026372\">2年前の私は登壇者を雲の上の存在のように感じつつも、心を動かされていました。\u003C/p>\u003Cp name=\"3aeed06f-3bd9-4333-a8e9-e387695623e6\" id=\"3aeed06f-3bd9-4333-a8e9-e387695623e6\">その時の「受け取る側」から、今回の「届ける側」へ回れたこと。これは登壇をしたからこそ得られた体験です。\u003C/p>\u003Cp name=\"7a3a7eb3-3c1f-4fb8-ab6d-8cfe9bed106d\" id=\"7a3a7eb3-3c1f-4fb8-ab6d-8cfe9bed106d\">発表後に「参考になった」と声をかけていただいたとき、胸の奥がじんわりと熱くなりました。\u003C/p>\u003Cp name=\"c84a0bb3-df10-4eb6-8f4b-c181b571761d\" id=\"c84a0bb3-df10-4eb6-8f4b-c181b571761d\">自分の小さな経験でも、誰かの学びや勇気につながる。これこそ登壇の意義であり、コミュニティに還元するというよろこびなのだと感じています。\u003C/p>\u003Cp name=\"00f2875d-78ae-401b-b68d-e3d57e8810b9\" id=\"00f2875d-78ae-401b-b68d-e3d57e8810b9\">\u003Cstrong>おわりに\u003C/strong>\u003C/p>\u003Cfigure name=\"106c328f-94d8-4ef9-b2b8-6d19301893c3\" id=\"106c328f-94d8-4ef9-b2b8-6d19301893c3\">\u003Cp>\u003Cimg src=\"https://rizap-tech.g.kuroco-img.app/files/user/recruit/contents/body/n6bbaf24c7ce4_1759972153-7zO4o6cv1BSdEAIPkGn5ZlXw.jpg\" alt=\"\" width=\"620\" height=\"413\">\u003C/p>\u003Cfigcaption>&nbsp;\u003C/figcaption>\u003C/figure>\u003Cp name=\"c8fd0153-f929-4b02-b965-5e7ed02b197b\" id=\"c8fd0153-f929-4b02-b965-5e7ed02b197b\">エンジニア歴3年でKaigi on Railsの舞台に立てたのは、私にとって大きな節目でした。\u003C/p>\u003Cp name=\"e33ee439-7247-482b-9355-db2803cbff75\" id=\"e33ee439-7247-482b-9355-db2803cbff75\">この経験を通して感じたのは、特別な才能がなくても日々RubyやRailsと真摯に向き合い挑戦を続ければ、登壇のチャンスは誰にでも開かれているということです。\u003C/p>\u003Cp name=\"1885979c-3311-47eb-b59e-9a602b43ff57\" id=\"1885979c-3311-47eb-b59e-9a602b43ff57\">私自身もまだ未熟ですが、この経験を糧に次の挑戦へと一歩ずつ進んでいきたいと思います。\u003C/p>\u003Cp name=\"8c21bf5c-38cf-41f2-9e7e-d3fc5ddf0afb\" id=\"8c21bf5c-38cf-41f2-9e7e-d3fc5ddf0afb\">そしてこの記事が、誰か一人の一歩につながったなら、それ以上に嬉しいことはありません。\u003C/p>\u003Ch3 name=\"e54d6476-8522-428a-9f5c-b32659622dae\" id=\"e54d6476-8522-428a-9f5c-b32659622dae\">APEENDIX：\u003C/h3>\u003Cp name=\"f2e04e2e-2aa5-463f-889f-315ed776523a\" id=\"f2e04e2e-2aa5-463f-889f-315ed776523a\">CFPを書く際の具体的なコツについては、実際に採択選考に携わっている運営メンバーである\u003C/p>\u003Cul name=\"2ed19ae7-ceb7-4eb6-ab3c-908780df3b58\" id=\"2ed19ae7-ceb7-4eb6-ab3c-908780df3b58\">\u003Cli>\u003Cp name=\"63d69e9e-9ae9-4407-b2c7-bda9b41c3c08\" id=\"63d69e9e-9ae9-4407-b2c7-bda9b41c3c08\">\u003Ca href=\"https://blog.unasuke.com/2023/kaigionrails-proposal-writing-guide/\" target=\"_blank\" rel=\"nofollow noopener\">うなすけさんの記事\u003C/a>\u003C/p>\u003C/li>\u003Cli>\u003Cp name=\"c4a71c76-e441-417d-afa7-0c11e8388f1d\" id=\"c4a71c76-e441-417d-afa7-0c11e8388f1d\">\u003Ca href=\"https://sakahukamaki.hatenablog.jp/entry/2025/07/21/183625\" target=\"_blank\" rel=\"nofollow noopener\">炬燵さんの記事\u003C/a>\u003C/p>\u003C/li>\u003C/ul>\u003Cp name=\"c10c161f-47e7-44d9-8963-5a766e9fdcd3\" id=\"c10c161f-47e7-44d9-8963-5a766e9fdcd3\">が非常に参考になりますので、ぜひ読んでみてください。\u003C/p>","総合職からRailsエンジニアにジョブチェンジしたRIZAPテクノロジーズの社員が、エンジニア歴3年でKaigi on Railsのスピーカーとして登壇した経緯と、そこに至るまでの成長ストーリーを語る。",[166,167,286,287,252],"Ruby on Rails","Kaigi on Rails",[289],{"title":9,"to":11},[291,298,305,312,318,326],{"to":292,"image":293,"date":279,"label":163,"title":294,"tags":295},"/recruit/articles/entries/227","https://rizap-tech.g.kuroco-img.app/v=1775010960/files/user/recruit/contents/thumbnail/ne65556a01f42_c37b8b5a9978531190ba0e085ee7d4a4.jpeg","「語り、学び、繋がる」iOSDCで体感した技術の最前線！",[166,167,177,296,297],"iOSDC","iOS",{"to":299,"image":300,"date":301,"label":163,"title":302,"tags":303},"/recruit/articles/entries/246","https://rizap-tech.g.kuroco-img.app/v=1775010931/files/user/recruit/contents/thumbnail/n5c564894fae9_932f69eb3e12c745efd13f1b770a29b5.jpeg","2024.12.26","Ruby World Conferenceで登壇しました！",[169,263,167,252,304,166],"RubyWorld Conference",{"to":306,"image":307,"date":308,"label":163,"title":309,"tags":310},"/recruit/articles/entries/281","https://rizap-tech.g.kuroco-img.app/v=1775010960/files/user/recruit/contents/thumbnail/nee39e325a637_acc423eb51fb8ca67c9990318abe8d8a.jpeg","2024.04.22","RIZAPがtry! Swift Tokyo 2024にも初参戦！【現場レポート】",[167,311,166,297],"tryswift",{"to":313,"image":314,"date":315,"label":163,"title":316,"tags":317},"/recruit/articles/entries/306","https://rizap-tech.g.kuroco-img.app/v=1775010960/files/user/recruit/contents/thumbnail/nec9873b61ce1_3b884dcd104b4131a5276c3f66efe71b.jpeg","2023.11.21","RIZAP がKaigi on Rails2023にも初参戦！【各講演のレポート集】",[169,287,167,166],{"to":319,"image":320,"date":321,"label":163,"title":322,"tags":323},"/recruit/articles/entries/252","https://rizap-tech.g.kuroco-img.app/v=1775010946/files/user/recruit/contents/thumbnail/n53501bdc2c8c_e43cef883d343603c7c7b323a49a717a.jpeg","2024.12.17","HiltのAssistedInject",[324,325],"Android","技術ブログ",{"to":327,"image":328,"date":329,"label":163,"title":330,"tags":331},"/recruit/articles/entries/248","https://rizap-tech.g.kuroco-img.app/v=1775010943/files/user/recruit/contents/thumbnail/n407e7df0b78c_e6fe889f228e70103cdcac26a88f8779.jpeg","2024.12.23","iOSアプリで任意のJavaScriptをWebビューに注入しWeb側で実行する方法",[251,297,325],1776738988148]