タグ

ブックマーク / blog.recruit.co.jp (17)

  • BigQueryによる最大内積検索の実装

    はじめに 機械学習エンジニア田志温です。最近担当した類似アイテム推薦の案件で、BigQueryを使って最大内積検索(MIPS; maximum inner-product search)1 を実装したので、その方法と高速化のテクニックを紹介します。 類似アイテム推薦は「多数のアイテム候補から、クエリとなるアイテムに最も類似したK件を抽出する」というタスクなので、MIPSないし近傍探索の枠組みで解くことが一般的です。 一定の規模を持つサービスでMIPSを実装しようとすると、アイテム数×特徴量次元の行列が何かと厄介です2。第一に、MIPSを素朴な行列積で実装すると、時間・空間計算量がアイテム数の2乗でかかってきます。典型的には空間計算量の方がボトルネックになりやすく、RAMの制約に収めるための工夫が必要になるでしょう。第二に、アイテム数が膨大な場合、特徴量マートから全アイテムの特徴量を転送

    BigQueryによる最大内積検索の実装
  • リクルートテクノロジーズ エンジニアコース新人研修の内容を公開します!(2020年度版) | Recruit Tech Blog

    こんにちは! リクルートテクノロジーズでセキュリティエンジニアとして活動している、藤原 巧です。 毎年恒例となっており、大きな反響をいただいている、エンジニアコースの新人研修の内容を紹介させていただきます。 研修の概要 リクルートテクノロジーズでは、新卒採用の新人向けに3ヶ月間の技術研修を行っています。この技術研修では大きく分けて2つのコースが設けられています。 1. プログラミングやWebサービスの構造の基礎を体系的に学び、その後一人につき、ひとつのスマホサイトを企画からリリースまで行うコース 2. 一定以上のプログラミングスキルと開発系経験がある新人に向けた、実際の開発で必要となる様々な技術要素をより深く学び、その後実際のサービスでチーム開発にてOJTを行うコース 今回公開するのは 2. で使用した資料です。 この技術研修は、そのほとんどの部分を内製で実施しています。 この研修の最大の

    リクルートテクノロジーズ エンジニアコース新人研修の内容を公開します!(2020年度版) | Recruit Tech Blog
  • TerraformでFargateのSidecarを実現しよう - Tech Blog - Recruit Lifestyle Engineer

    こんにちは!リクルートライフスタイルの共通クラウド基盤でリードクラウドアーキテクトをしている須藤です。 この記事は AWS Advent Calendar 2018 の2日目の記事です!( リクルートライフスタイル Advent Calendar 2018 2日目の記事でもあります) リクルートライフスタイルの共通クラウド基盤では、サービスごとにアカウントを払い出して、サービス開発者がその環境を構築する、というスタイルです。クラウドアーキテクトチームはCCoE(Cloud Center of Excellence)であり、TerraformやFargateを使いたい、という開発者に対しては、ペアプログラミングやアーキテクチャレビューなど、規範的・助言的な活動を通して成長しあっていく、という活動をしています。 当然、re:Invent 2018で発表された トランジットゲートウェイ や AW

    TerraformでFargateのSidecarを実現しよう - Tech Blog - Recruit Lifestyle Engineer
  • Goのpackage構成と開発のベタープラクティス

    (images: github.com/egonelbre/gophers) こんにちは。 データエンジニアリンググループ(CETチーム)の寺下です。 自分の所属するCETチームでは今まで主にScalaPythonなどを使ってAPIや基盤を実装してきましたが、最近では徐々にGoによる実装も増えてきており、GAE/GKE上で番運用を行っています。 記事ではGoのプロダクトにおいてDDDライクなpackage構成で実装する際の注意点や、汎用的に通用するであろう実装のTipsについて書いていきます。 記事で紹介する例がベストプラクティスだというわけではありませんので、あくまで実装の一例程度に捉えて頂けると幸いです。 Goのアーキテクチャ Goは言語仕様がシンプルかつフォーマッタが強力なため、syntaxレベルでは開発者によってコードの品質がブレにくいというメリットがあります。 しかしなが

    Goのpackage構成と開発のベタープラクティス
  • AWS re:Invent 2017で発表されたコンテナ関連サービス(EKS、Fargate)のまとめと自社サービスへの活用 – PSYENCE.MEDIA

    AWS re:Invent 2017で発表されたコンテナ関連サービス(EKS、Fargate)のまとめと自社サービスへの活用 大島 雅人 2017.12.01 113 18323924 この記事は RECRUIT MARKETING PARTNERS Advent Calendar 2017 の投稿記事です。 こんにちは、開発支援Gでインフラ運用をしている大島です。アドベントカレンダー 2017 の記念すべき1日目は AWS re:Invent in ラスベガス からお届けします。 AWS re:InventはAmazon Web Service, Inc.が毎年開催している技術とマーケティングののカンファレンスで、今回は6回目の開催となります。新しいサービスや機能のアップデートが基調講演で発表されたり、1000以上のセッションが行われたりするなどお楽しみが盛り沢山な5日間のイベントです。

    AWS re:Invent 2017で発表されたコンテナ関連サービス(EKS、Fargate)のまとめと自社サービスへの活用 – PSYENCE.MEDIA
  • 2017-08-01-lignum

    こんにちは。Lignumの開発を担当している明智と浅井です。 Lignumは今回紹介する配信基盤の名前です。 先日開催されたGoogle I/Oでも多くの新機能が発表されたFirebaseですが、弊社では昨年度からFirebaseを活用した機能開発に取り組んでいます。 今回は、その中でも『Firebaseを活用したアプリプッシュ通知の配信基盤の構築』について紹介したいと思います。 「アプリプッシュ通知の配信基盤」構築の背景 見えてきていた課題 弊社ではこれまで、リクルートグループ横断で利用できる独自開発された配信基盤を利用していました。 しかし、施策が高度化するにつれて 実施できる施策の制限 配信の見立て/結果の振り返りに利用したいデータが不足 といった「弊社独自の業務要件に追いつかなくなってきている」という課題が見えてきていました。 そこで、PDCAサイクルの回せる新たな配信基盤が必要だ

    2017-08-01-lignum
  • リクルートテクノロジーズ 新人研修特別編を公開します

    こんにちは。アプリエンジニアの五味です。 2017年4月にリクルートホールディングスの新卒Web採用枠で入社した新卒社員のうち、21名がリクルートテクノロジーズに配属となりました。(いらっしゃい!) リクルートテクノロジーズでは「ブートキャンプ」と呼ばれる新卒社員向けの技術研修を3か月間実施しています。 もともと高い能力を持つ彼・彼女らですが、「これからのリクルートをリードしていく存在」になって欲しいという期待を込め、プロとしての重要な立ち上がり期を支援しています。 今年からは社外講師の既存プログラムに加え、より実践的な内容を求める経験者をターゲットに、総勢12名の現場エンジニアが担当する特別講座を開催しました。 各分野のスペシャリストがこれまで現場で培ってきた「当に必要な生きた知識・技術」のインプットは、彼・彼女らの成長を加速させ、これからのエンジニア人生の礎になってくれるものと僕らは

    リクルートテクノロジーズ 新人研修特別編を公開します
  • Spring + Railsによるサービス分割の取り組み

    はじめまして、ビューティ開発Tの寺下です。 現在ホットペッパービューティーでは、一部システムのリプレイスに取り組んでいます。 リプレイスはiOS・Android・Webと、各プラットフォームでそれぞれ並行して進めている状況です。 今回は私のチームが担当している、Web開発に焦点をしぼって書いていきたいと思います。 なお、iOS・Androidのリプレイスの取り組みにつきましては、 Wantedly にて紹介していますので、ネイティブアプリにご興味のある方はそちらをご参照下さい。 リプレイスに至った背景 ホットペッパービューティーは、サービス全体で年間5000万件以上のネット予約が行われるなど、 多くのユーザの方にご愛用していただいています。 サービス内容・品質の改善のため、日々機能開発を行っているのですが、 長年の運用・改修により、少なからず技術的負債が蓄積しており、 機能追加開発速度とビ

    Spring + Railsによるサービス分割の取り組み
    lEDfm4UE
    lEDfm4UE 2017/02/19
  • Vue.js + Vuexで開発をしてみよう!

    Vue.js + Vuex = Magic コンポーネント指向とFlux architectureで始めるモダンフロントエンド こんにちは、フロントエンドエンジニアの蔀です。 ここ数年のフロントエンド開発の潮流の変化は急激で、雨後の筍のように色々なフレームワークが出てきていますね。 8月末には、Mediumでこんな記事が人気になりました。 The State Of JavaScript: Front-End Frameworks と銘打たれたこの記事は、React/Angular/Angular2/Ember/Vue/Backbone といった、近年流行しているJavaScriptフレームワークに関する興味、満足度、知名度などを調査して比較してくれています。 注目していただきたいのが、「Satisfaction(使ってみて満足したかどうか)」の項目です。 近年流行しているReact.jsと

    Vue.js + Vuexで開発をしてみよう!
    lEDfm4UE
    lEDfm4UE 2016/09/18
  • [速報] Google I/O 2016 基調講演レポート ~ スマートホームからAndroid N の新機能まで!Google が発信する10の発表 | PSYENCE:MEDIA

    [速報] Google I/O 2016 基調講演レポート ~ スマートホームからAndroid N の新機能まで!Google が発信する10の発表 釘宮愼之介 2016.05.19 1184 199603185197 こんにちは釘宮です。ただいまアメリカはマウンテンビューというところにいます。 Google が開催するクリエイティブ・カンファレンス『Google IO 2016』が日時間5月19日に開催されました。このイベントは全世界から7000人以上が参加する3日間の大規模なイベントとなっています。初日は基調講演としてGoogleの新たなサービスやプロダクトに関する発表がされました。 今回は現地に渡った @kgmyshin と @wangxuan の二人が速報レポートとしてお伝えします。 Google I/O 2016 基調講演ダイジェスト Google Assistantという概

    [速報] Google I/O 2016 基調講演レポート ~ スマートホームからAndroid N の新機能まで!Google が発信する10の発表 | PSYENCE:MEDIA
    lEDfm4UE
    lEDfm4UE 2016/05/20
  • iOS大規模リファクタリング

    こんにちは。Airシリーズ開発チームでiOSの開発リードを担当している永井です。 この度、Airレジから予約台帳機能を切り出して、Airレジとレストランボードの2つのアプリとして新たに5/10にリリースしました。 iPad版・iPhone版合わせて181,175行あったAirレジですが、今回内部的にもObjective-CからSwiftに全面的に書き換えています。 まだまだリファクタリングしていきたい課題はありますが、コード行数は70%も減り(つまり元々の行数から30%になりました)、SonarQubeで示される技術的負債も500dから21dに減り、かなり成功したと言って良いのではないかと思っています。 今回の取り組みの中で、良かったこと・再検討したいことがいろいろ発見できました。それらについてまとめてみるので、これからSwift採用を検討している方々の参考になれば幸いです。 取り組みのポ

    iOS大規模リファクタリング
    lEDfm4UE
    lEDfm4UE 2016/05/13
  • iOSアプリ開発者が理解すべきデザインガイドライン

    こんにちは。Airレジ開発チームでiOSエンジニアをしている山口です。 みなさんはiOSは好きでしょうか。私は開発者・ユーザーとして大好きです。統一感のあるデザインや使いやすさなど素晴らしいですね。その背景にはAppleが定めるデザインガイドラインの存在があります。各アプリケーションがデザインガイドラインに沿って開発を行うことで、iOS全体として統一感のある世界観が築かれています。 しかしながら、ただガイドライン通りにアプリを作っていくだけでは個性のないアプリになってしまいます。iOSらしさを保ちつつ個性のあるアプリを作るには、開発に関わるメンバーがガイドラインを意識し、コミュニケーションを取りながら開発をしていくことが重要だと思っています。 そこで今回は、そのガイドラインの観点からアプリ全体の構成・画面遷移を考える際に知っておくべき内容について書いていこうと思います。 iOSデザインガイ

    iOSアプリ開発者が理解すべきデザインガイドライン
    lEDfm4UE
    lEDfm4UE 2016/03/27
  • [ Android ] - これからの「設計」の話をしよう | PSYENCE:MEDIA

    はじめまして。 6/1より入社いたしましたAndroidエンジニアの釘宮です。よろしくお願いいたします。 今日はAndroidの設計について語ってみようと思います。 その前に 「良い設計とはなにか」という議論が「正義とはなにか」という議論のようにいつまでたっても結論がでないのは、環境やチームメンバのスキルセット、ステークホルダーによって目指すべきゴールが変わるためだと考えます。 つまるところ、設計に正解はありません。 そのため以下で話すことは、「これが設計の正解だ!!」というわけではなくて、「こういう設計の仕方するとうまくいくっぽい」くらいのノリです。 あと、特にMVCとかDDDとか人によって解釈のズレが起きやすいところなどは、冗長になるのを嫌って自分の解釈で言い切っています。ご了承ください。 設計の目的について ハードルが下がったところで、早速。 まず設計の目的ってなんでしょうか? この

    [ Android ] - これからの「設計」の話をしよう | PSYENCE:MEDIA
    lEDfm4UE
    lEDfm4UE 2016/02/21
  • 「AWSからGCPに切り替えたらコストが1/10になった」CETエンジニア 吉田啓二氏インタビュー - Tech Blog - Recruit Lifestyle Engineer

    前編(「ビッグデータは“リアルタイム”でこそ価値がある」)では、リアルタイムなビッグデータ解析プロジェクト「CET(Capture EveryThing)」が始まったきっかけから、いまのチームまで組織に焦点を当てました。 後編では、いよいよビッグデータ解析のシステムについて深掘りしていきます。 Amazonのクラウドサービスを活用して作り上げた現状のシステムを捨て、Googleで作る構成に変えようとしているそう。その意図とは。 クラウドサービスのコストパフォーマンスなど、エンジニアやアーキテクトには気になる情報が満載です。 「CET」で基盤構築や分析・集計アプリケーションの開発を行っている、吉田啓二さんに聞きました。 聞き手/構成/編集/写真:小川楓太(NEWPEACE Inc.) AWS格的に運用するのは厳しいかなという印象です —— 今回構築された基盤の具体的なシステム構成はどのよ

    「AWSからGCPに切り替えたらコストが1/10になった」CETエンジニア 吉田啓二氏インタビュー - Tech Blog - Recruit Lifestyle Engineer
  • Webページを監視して表示崩れが起きていないか検出できるE2Eテストを実装しました | PSYENCE:MEDIA

    お世話になります、フロントエンド担当をしている小原正大です。Webページの表示を監視して差異があった場合、どのページで表示の変化が起きているかを知ることが出来るプログラムを実装したのでそのことについて書こうと思います。 何につかったの? 僕がフロントエンドを担当しているサービス『料理サプリ』で大規模なフロントエンドコードのリファクタリング行う際に表示テストを自動化するために作成しました。『料理サプリ』はPC・スマホ合わせて大体350-400ページの表示パターンが存在する比較的規模の大きいサイトです。全ページに影響を与えるような作業は大規模な回収となり、今回のリファクタリングでは表示テストの計画などの段取りが必要でした。従来の人手によるQAでは細かいバグを見過ごしたり時間がかかり効率が悪いので、可能な限り自動化しようと考え実装しました。 実装の概要 この監視のシステムは以下の2つ実装を組合わ

    Webページを監視して表示崩れが起きていないか検出できるE2Eテストを実装しました | PSYENCE:MEDIA
  • 【フロントエンド】新規 Web アプリケーション開発案件をふりかえってみた | PSYENCE:MEDIA

    4 ヶ月あまり続いた新規開発案件がようやく落ち着きを見せたので、ここらで振り返りをしてみたいとします1)リリースまでに巻き取れなかった不具合や未実装箇所が幾つか残っているので、まだ気持ち的には終われていないのですが…。 サービスのおおまかなアウトライン コンシューマ ( 一般ユーザー ) 向けサービス ブラウザで動く Web アプリケーション ワンソースによるレスポンシブレイアウト サポートするブラウザは IE9 以降や Android4.x 以降のモダンブラウザのみ Ruby on Rails 多言語対応あり SEO 対策はそれなりに必要 わりとフワッとしか要件が決まっていないままスタートしたので、TRY & ERROR を繰り返しながらの開発 すごく大雑把ですが、だいたいこんな感じの Web アプリケーションです。これを踏まえてフロントエンドをどのように開発していくかを設計していきまし

    【フロントエンド】新規 Web アプリケーション開発案件をふりかえってみた | PSYENCE:MEDIA
  • Bootstrap と BEM を組み合わせた CSS 設計パターンについて考える | PSYENCE:MEDIA

    前置き - CSS 設計が難しい件について 誤解を恐れずに言うならば、CSS は変数も関数も条件分岐もない、ある種ゆるふわな言語(仕様)といえます。そのためプログラミング言語のように記述ミス一つで全ての挙動が止まるなんてことはありませんし、いくら冗長に記述しようがブラウザ上での挙動に差異が生まれることも殆どありません。ちょっと嗜めばそれっぽいものが作れてしまうので、マークアップエンジニアのいない小規模体制の組織であれば、サーバーサイドエンジニアやデザイナーが片手間で習得して実装してしまうというのも珍しいことではないでしょう。それでも良かったのかもしれません。これまでは…。 片手間で学習した知識というのはなかなか体系化されないものです。CSS も御多分に漏れずプログラミングのテクノロジーは日進月歩なため、その時は最新だった技術が僅か一年も経たないうちに廃れてしまい、バッドノウハウ化してしまう

    Bootstrap と BEM を組み合わせた CSS 設計パターンについて考える | PSYENCE:MEDIA
  • 1