アプリなら、コメントが見やすい!
トップへ戻る
なごみ系Wikipedia
tech.uzabase.com
こんにちは。NewsPicksエンジニアの雲越です。 NewsPicksでは、記事のレコメンドを始めとする機械学習を組み込んだシステムがいくつか動いており、中にはAmazon SageMakerを使って実装されているものもあります。 今回はそんなシステムの一つである記事分類システムが、どのようにSageMakerを使っているかについて紹介します。 どんなシステム? NewsPicks編集部によってオリジナル記事が投稿されたり、URLピックという機能やRSSによって外部メディアの記事が取り込まれたりすると、NewsPicks内に記事が登録されます。 この際に、その記事のタイトルとサマリー(本文を要約した文章)からどのカテゴリ(金融やキャリアなど)に属するのかを分類して返しているのが、今回紹介する記事分類システムです。 モデル学習についてはSageMaker Training Jobを使ってい
ニューズピックスの西薗(にしぞの)です。一人目のQAエンジニアとして入社したのが去年の6月なので、そろそろ一年です。かれこれ5年ほどはQAエンジニアとして働いていたものの、「一人目QA」も「自社サービスのQA」も「組織を作る」も全て初めてのことで、入社以来、なかなかに苦労しました。いろんな方の助けをいただきながら、進んだり戻ったりしつつ、なんとか少しずつ成果が見えてきた今日この頃です。 本稿では、この一年でやってきたことを4つのフェーズでまとめておこうと思います。 1.成果を急ぎ、苦手なことを頑張った 入社して暫く、まずは各チームのリーダーに話を聞いて回り、QA組織の目標を立てました。バグチケットがとっ散らかっており、さらにあっちこっちからバグ報告が来るので、優先度を考える余裕もなくなんとか時間を作って対処している……というような話を聞いて、そこの交通整理をすることにしました。他にもいくつ
はじめに こんにちは、@ko2icです。今回はAndroidのアーキテクトとして書きます。 ニューズピックスのモバイル開発は古い技術で古いアーキテクチャをいまだに使っていると思っていませんか?たとえば、Androidは昔のブログでMVPを利用しているとの記述が...。 そこからほぼ発信できていなかったのでそう思われるのも無理はありません。ただ、そんなわけはありません、日々、改善を続けています。 ちなみにiOSは、SwiftUIでThe Composable Architecture(TCA)をメイン機能であるニュースフィードで利用するなど、なかなかのチャレンジングなことをしています。他社でもSwiftUIの事例はたくさん聞きますが、ニューズピックスほど多様な一覧アイテム(カルーセルタイプやそれ以前に複数デザインがあり)で上タブ(横スワイプ)があり、メニューをスワイプで開き、縦・横ともにスク
こんにちは。NewsPicksでエンジニアやっております崔(チェ)です。現在は Data / Algorithm チームで検索エンジン開発を担当しております。弊社は、検索エンジンとして Elasticsearch を Amazon EC2 に乗せて構築しておりますが、メンテナンスに消極的だった部分があり、これからはマネージド化や検索精度向上など積極的に取り組んでいきたいと考えております(伸びしろしかない!)。今回は、その中でも色んなタスクのボトルネックだったアルゴリズムを変更した話をしたいと思います。ただ、アルゴリズムの詳細よりもそれの変更のために行ったインフラ的な内容にフォーカスしております。ご興味ある方は是非読んでいただけると嬉しいです。 はじめに 検索精度向上施策として、実は直近、いくつか細かな改善はしております。ただ、ほとんどはクエリを改善したのであって、そもそも形態素などトークン
こんにちは。 Product Team の相川です。 現在はProduct TeamでINITIALというプロダクトの開発をしております。 昨年の5月頃から、チーム作りに関わる機会があったので、チームの立ち上げからどんなことをやっていたのか、ふりかえりと共にお伝えしていきたいと思います。 経験者と話す 弊社にはフェローという役職のエンジニアが在籍してます。 フェローというのは、突出した技術力で開発チームを引っ張ってくれる人たちという位置づけなのですが、数多くのプロジェクトを経験してることから、技術に閉じないことも日頃から相談しています。 tech.uzabase.com 私の場合は、フェローの1人である板倉さんと定期的に1on1を実施してもらい、チーム作りをする前に 「チーム作りの心得」や「チームビルディングのプラクティス」 を教えてもらい、チーム作りを始めてからは 「チーム作りで悩んでる
こんにちは。 Product Team の相川です。 現在はProduct TeamでINITIALというプロダクトの開発をしております。 前回からアジャイルについてブログを発信していこうと思い、ブログを書き始めました。 前回はユーザーストーリーについて書かせてもらいましたが、今回はそのユーザーストーリーを小さくすることと大きくすることについて説明します。 tech.uzabase.com ユーザーストーリーは小さい方が良い まず前提から話すと、ユーザーストーリーはできるだけ小さくしておいた方が良いです。 ユーザーストーリーを小さくしておくと以下のようなメリットがあります。 小さくリリースするので早くフィードバックをもらえる 見積もりがしやすい スコープの調整がしやすい ストーリーを出す時点での考慮漏れが減る 小さくリリースするので早くフィードバックをもらえる 当たり前ですが、ユーザースト
はじめに こんにちは。Product Teamの中嶋です。 今回は、日々のペアプロでProduct Teamの皆さんが、普段どういったことを気をつけてペアプロをしているのかをご紹介したいと思います。 慣れてない側としてのコツ わからない時は、「わからない」を口に出す 実況中継をするように、自分の頭の中を言葉にするように心がけます。 難しくても、頑張って声に出してみます。逆に話せないと「あ、自分これ分かってないな」って気付けます。 入社当初はそもそも「"一人実況"をしていない。しなければいけない」という認識がありませんでした。 しかし「(ペアプロ中に) 何を考えているのかわからない時がある」というFBを受け、それ以来「これをやりたいので、まずここから書きます」と宣言するようにしています。 難しいと感じる場合は、ペアじゃなくて、モブで慣れていくといった方法もあります。 チームメンバーは入ったば
はじめに こんにちは。Product Teamの中嶋です。 前回の記事では、Product Teamが普段どんなペアプロをしているのかを書かせていただきました。 今回はペアプロとXPの価値の一つである「フィードバック」について、自分なりに言語化していこうと思います。 ペアプロは最小のフィードバックループを形成する XPの価値の一つに「フィードバック」があります。*1 XPチームはできるだけ早く、できるだけ多くのフィードバックを生み出そうとする。フィードバックのサイクルを数週間や数か月ではなく、数分や数時間に短縮しようとする。フィードバックが早く手に入れば、その分だけ早く適応できる。 『エクストリームプログラミング』p. 18 アジャイル開発は変化に適応することが大事です。フィードバックを頻繁に得ることで、変化に適応できる機会を得られます。 フィードバックというのはプラクティスのいたるところ
はじめに はじめまして。Product Teamの中嶋です。今月からチームシャッフル*1でSPEEDAのR&D機能の開発を担当しています。 Product TeamではフルタイムでのペアプロとTDDを常に実践しています。 この話を社外でお話すると「どんな風にやっていくのかが想像つかない」とよく言われます。 私も前職で一時的にペアプロを導入することはありましたが、それを常にやり続けるというProduct Teamのペアプロ文化が入社するまで全く想像できませんでした。 そこで本記事ではProduct Teamがどのようにペアプロをしているのかをお届けしようと思います。 ツールについて まずはどんなツールを使用しているかを箇条書きにしてみます。 コミュニケーションツール Gather Slack miro ペアプロツール Anydesk(リモートデスクトップ) VSCode LiveShare
Product Teamの野口です。 ユーザベースのB2B SaaS事業を推進するProduct Teamでは、四半期に一度キックオフを行っています。 そんな一日の様子をレポートします。 Product Teamがどんなチームなのか、普段の仕事とはまたちょっと異なるキックオフの一日をお見せすることで感じてもらえるといいなと思っています。 キックオフのはじまり Zoomには、既に大勢が集まっている。 僕が所属しているユーザベースのProduct Teamの人たちだ。Product Teamには、SPEEDA、FORCAS、INITIAL、MIMIRといった多数のB2B事業を推進するエンジニアたちが集まっている。 今日は、それらの人たちが一同に会して一日がかりで行うキックオフの日なのだ。 きっと、キックオフチーム*1が充実した内容を考えてくれていると思う。 だから、とても楽しみだ。 キックオフ
こんにちは。 NewsPicks Web Product Unit の芥川(@aku11i)です。 NewsPicks の新Webフロントエンド基盤でNext.js・TypeScriptを使用した開発を行なっています。 今回、プロジェクトに reCAPTCHA (v3) を導入しました。 読み込みタイミングなどパフォーマンスに気を遣った実装をすることができましたので紹介したいと思います! 実装方針 reCAPTCHA を導入するにあたり、次のような方針を立ててみました。 読み込みタイミングを制御する ページの初期レンダリングのタイミングでは reCAPTCHA が不要なパターンもあります。 そのため必要なタイミングで非同期で読み込めるようにし、他のリソースへの影響を抑えるようにします。 外部ライブラリを使用しない 今回は自前で実装してもシンプルなコードを維持できる見込みがありましたので、他
NewsPicksの高山です。 2020年と2021年は「開発生産性」またはほぼ同義の「開発者体験」に注力した2年でした。特に2021年は、自分でも少しウザいぐらいに登壇やブログやインタビューでこの話をしていました。(後半からは「開発生産性」から派生してKotlinの話が主でした) tech.uzabase.com codezine.jp hatenanews.com zine.qiita.com zine.qiita.com tech.uzabase.com hatenanews.com 今回のブログでは、2021年のNewsPicks開発組織のパフォーマンス計測の現状と、界隈の動向についてまとめていきます。 背景 『LeanとDevOpsの科学』によると、一般的にアジャイル開発で良いとされる開発スタイルを多く取り入れている企業は、収益性や市場占有率なども高い傾向にあるということでした。
こんにちは、Uzabaseの松並です。 ユーザベースのエンジニアカルチャーをゆるっとお伝えするPodcast、Meet UB Tech #8 のテーマは「ユーザベースの技術ブランディングを考える」。Podcast番組「Meet UB Tech」の運営メンバーでもある、ユーザベース Communications Teamの山田、AlphaDrive CTOの赤澤、NewsPicksエンジニア/パーソナリティのイイダのトークをお届けします。 open.spotify.com #8 のゲストと聞きどころはこちら。 テーマ: ユーザベースの技術ブランディングを考える 出演者: 山田聖裕(ユーザベース Communications Team) 赤澤剛(AlphaDrive CTO) イイダユカコ(NewsPicksエンジニア/パーソナリティ) トークテーマ Q1. Podcastをはじめた理由 Q2
NewsPicksの高山です。 この記事はUzabase Advent Calendar 2021の23日目の記事です。昨日は我らが赤澤剛さんによるAWS Organizationの記事でした。 去る2021年10月12日に突然NewsPicksのサービスでFacebookログインやFacebookへの投稿ができなくなりました。この状態は12月13日まで2ヶ月もの間継続していて、ユーザーさんには不便を強いてしまいました。 米Facebook本社とメールでやりとりしていましたが、メール返信に何週間も待たされ、Facebook日本法人に助けてもらってようやく解決に至ることができました。 この苦労話はいくらでもできるのですが、今回はセキュリティの切り口で書いていきます。 Facebookの「データ保護評価」 7月にFacebookから「データ保護評価」についての発表がありました。 develop
はじめに AWS Organizationsとは AlphaDriveのOrganization管理例 AWS Organizationsと組み合わせて導入したサービス AWS Organizations × AWS SSOで楽かつセキュアにアカウント管理 Security Hubでのセキュリティ設定状況を一元管理 AWS Resource Access Managerで組織内にリソース共有 SCP(Service Control Policy)で不要なアクションを制限 まとめ カジュアル面談に関して はじめに AlphaDrive/NewsPicksのアカザワです。 AlphaDriveではCTOとしてエンジニアリング組織の立ち上げ、拡大や新規事業の創出を支援するSaaS Incubation Suite の開発をしています。また、NewsPicksでは法人向けサービスの NewsPic
ユーザベースのPodcast「Meet UB Tech」では、SPEEDAやNewsPicksなどのサービスを開発するエンジニアチームのカルチャーをゆるっと配信しています。 本記事ではMeet UB Tech #6 「エンジニアのキャリアと組織」から、要点をピックアップしてお届けします。 出演者: 林尚之 @t_hyssh (ユーザベース B2B SaaS Business 執行役員 CTO、UB Datatech 代表取締役) 赤澤剛 @go0517go (NewsPicks 執行役員 法人領域開発担当、AlphaDrive CTO) イイダユカコ @becyn (NewsPicksエンジニア/パーソナリティ) CTOとCEOの違い イイダ: 今日はゲストに、ユーザベースのSaaS事業でCTOを務めつつ、今回新しくUB Datatechというグループ企業のCEOに就任された林さんにお越し
CODE BASE OKINAWA、株式会社UB Datatech、株式会社ユーザベースが共催するTechイベント「Tech BASE Okinawa」を、 沖縄コンベンションセンターにて2021年12月18日(土)に開催します。 イベントサイトはこちら Tech BASE Okinawaは、新しい技術の学びを体験し、「気づき」を得られる沖縄最大級のエンジニア向けTechイベントです。 基調講演では、テック業界を代表する技術者の和田 卓人氏がキーノートスピーカーとして登壇します。 その他に、沖縄でトップエンジニアとして活躍されている方々からのトークセッション・参加者によるLT大会など様々なコンテンツをお届けします。 お昼時間は、会場にてお弁当をご用意しています。また、セッション後は参加者・登壇者が交流できる懇親会があります。 【対象者】 ・新たな出会い、気づきと発見をしたいエンジニアの方
こんにちは。NewsPicksのアルゴリズム開発チームの崔(チェ)です。2020年4月新卒入社し、現在は検索エンジン周りの開発に携わっております。今回は、開発環境に必要なインフラを構築しようとしてどはまりしたお話をお伝えしようと思います。もし同じポイントでハマっていたり、NewsPicksでは何に挑戦できるか気になっている方に少しでもお役に立てれば嬉しいです。 前置き 私は文系大学 → 情報系大学院(自然言語処理) → エンジニアのキャリア持ちなのですが、NewsPicksに入社してからは様々なタスクに挑戦してきております。その中でも、今年下半期からは全くの未経験の検索エンジンのメンテナンス及び精度向上タスクに挑戦させていただいております。 NewsPicksでは検索のためElasticsearchを使用中なのですが、開発環境に精度検証に必要なKibanaという便利なツールがなかったため、
こんにちは!ユーザベースでTech Brandingを担当している山田です。 ユーザベースではSPEEDAやNewsPicks、FORCAS、INITIALといったプロダクトを開発していますが、それを支えるエンジニアカルチャーを紹介する新たな取り組みとして、Podcastをスタートします! open.spotify.com #1 のゲストと見どころはこちら。 タイトル: 「NewsPicksアプリのリアーキテクチャ / Server-side Kotlinについて聞く!」 出演者: 石井幸次(NewsPicksエンジニア) 赤澤剛 @go0517go (AlphaDrive CTO) イイダユカコ @becyn (NewsPicksエンジニア/パーソナリティ) トークテーマ このあいだのお休み、何してました? NewsPicksのリアーキテクチャについて Kotlinを選定した理由と、最近
NewsPicksでCTOをしている高山です。 NewsPicksではサーバーサイドの主要な開発言語としてJavaを利用してきましたが、今後Kotlinをメインにしていくことを目指して取り組みを始めました。 今回はその背景や取り組み内容を紹介します。 NewsPicksとKotlin 2013年から開発されているNewsPicksではJava+Springという技術スタックのモノリス(通称NewsPicks本体)がシステムの中心ですが、マイクロサービスやサテライトサービスにおいては2017年からKotlinを利用してきました。 そしてついに、2021年の8月にNewsPicks本体においてもKotlinでコードを書けるようにしました。 まずはこれまでのNewsPicksのサーバーサイドKotlin利用を挙げてみます。 NewsPicks Academia 2017年に作られた社内のサーバー
こんにちは。NewsPicks プロダクトチームの文字です。今日はプロダクト開発組織のチームビジョンを作ったら、すごいパワーが生まれた話をさせて頂きます。 「経済を、技術でもっとおもしろく。」 今年の春、NewsPicks のプロダクトチームでは、こんなチームビジョンを作りました。実は NewsPicks のタグラインは「経済を、もっとおもしろく。」なので、会社の掲げるタグラインをほぼ踏襲しているように見えます。しかし一見凡庸なこのビジョンが、実はとても大きなパワーを秘めていたのです。 1/ なぜビジョンをつくったのか そもそも、何故こんなチームビジョンを作ったのでしょうか。 NewsPicks をリリースしてからこれまで、プロダクトチームでこのようなビジョンは掲げたことがありませんでした。しかし、次の理由から改めて「我々がどこを目指しているのか・どんなチームでありたいのか」を言語化する必
Uzabase Saas Product Divisionフェローの矢野です。 この記事は、Rich Hickey(プログラミング言語Clojure作者)のプレゼンテーションSimple Made Easyへと繋がっていく、Ben MoseleyとPeter Marksによる「Out of the tar pit」というシステム設計について論じた論文の内容について説明したもので、ユーザベースのSaas Productでのテック発表の一つとしてプレゼンしたものを、ブログとして再度まとめたものです。プレゼン自体は25分くらいでしたので、おそらくこの記事の方がプレゼンよりも詳しいと思います。 ソフトウェア危機 プログラミングとシステムデザインの方法論は、『構造化プログラミング』の時代から徐々に発達してきた、歴史の流れがあって、今見えている最高に人気のある手法も、そのような歴史の流れの末端です。直
初めまして。2020年4月NewsPicksに新卒エンジニアとして入社した崔(チェ)です。 実は私は、大学では語学を専攻し大学院から情報系に進学したもので、入社当時コーディング歴2年という浅い経験しかありませんでした。 そんな中、むしろ変な癖のついてない今だからこそ基礎的な技術書を読んで学んでいけばいいと 『リーダブルコード』 をオススメいただきました。 今回はその 『リーダブルコード』 を読んで現場でのコーディングについての知見を得た話を書いていきます。 内容整理 『リーダブルコード』 は、大きく 「理解しやすい・可読性の良いコードの書き方(特に会社で開発する際)」 と 「テストコードの重要性」 の話に分けられます。 理解しやすいコード書こう 1. そもそも読みやすいコードって何? 『リーダブルコード』 では、読む時間が短いコードではなく、理解する時間が短いコードが良いコードだと述べてい
こんにちは。NewsPicksでソフトウェアエンジニアをしている森田です。 今回は業務の中で実際におこなった Node.js の CPU プロファイリングについてご紹介します。 なぜプロファイリングをおこなったのか 現在私が運用・開発しているWebサービスの Webフロントは React で動いています。 あるとき、ありがたいことに多くのアクセスがあった際に Reactを配信するために Node.js (Express) が動いている Webサーバー のCPU利用率が異様に高くなる現象が発生しました。 より多くのリクエストを捌くためにどの処理がCPUヘビーになっているか調査をする必要がありますが、そのなかで Node.js で CPU プロファイリングをすれば原因が特定できるのではないかということで下記で説明するCPUプロファイリングを行いました。 プロファイリング方法 今回ためしたプロフ
こんにちは!NewsPicksエンジニアの森川です。今回はNewsPicksのオンコール(=障害対応)体制の変遷と試行錯誤をご紹介したいと思います。 オンコール1.0 ~ 全員野球時代 ~ NewsPicksにはエンジニア全員が入るslackチャンネルがあり、ここで周知事項の共有や雑談、問い合わせがされています。昔はこれに加え不具合の報告や監視システムからのアラート通知もこのチャンネルに流れるようになっており、アラート通知は気づいたエンジニア皆で拾う、言わば全員野球のような形で障害対応がされてきました。 チームやサービスの規模がまだ小さく、メンバーの多くがシステム理解度が高い状態であれば、これで十分、というより変に監視体制の整備や役割分担にコストをかけずスピード重視で動ける、最適な状態だったのではと思います。 2018〜2019年にかけて、事業の拡大に伴いエンジニアが急増しました(私もここ
こんにちは。 NewsPicksエンジニアのmarshallStonesです。 NewsPicksではiOS/Androidアプリケーションを開発するチームに所属しています。 レビューやお問い合わせなどからユーザーの皆様から導入を希望されておりましたPicture in Pictureを Androidアプリで実装するにあたって、苦労した点、工夫した点などを共有させていただきたいと思います。 Picture in Pictureモード移行時におけるtips Picture in Pictureモード時の挙動は、PictureInPictureParamsを使用して設定することが可能です。 PictureInPictureParamsに設定したい値を登録し、enterPictureInPictureMode(PictureInPictureParams)を使用してPicture in Pic
こんにちは。このブログでは初めまして。2020年の2月にNewsPicksに入社した高山です。 今回は僕がNewsPicksのCTOになってからの1年でやったお仕事について書いていきます。 CTO最初のミッション NewsPicksは2013年に誕生し、5年ほどの壮大な創業期の間にたくさんの新しい領域に挑戦しており、僕が入社したときには既に事業面でもシステム面でも「それなりの複雑さ」という感じでした。 前任CTOの杉浦さん(今はグループ内でアメリカでの新規サービスの立ち上げをしています)からバトンを受け取って最初のミッションが「DX Criteriaを上げること」だと聞いたときにそのあたりの事情を全て察しました。😅 結論から先に書くと、1年で大幅改善を達成することができました!(左が2020年末、右が2019年末) 2019と2020のDX Criteria比較 DX Criteriaに
はじめに こんにちは、UZABASE SREの鈴木(@sshota0809)です。 今回は、Grafana の Backend plugin という仕組みを利用して、データソースを BigQuery とした監視設定を行う方法を紹介します。 目次 はじめに 目次 TL;DR はじめに 現在のログ収集構成 やりたかったこと Grafana Backend plugin を利用した BigQuery ベースの監視設定 Grafana と Backend plugin Grafana Backend plugin BigQuery プラグイン プラグインのインストール グラフの描画 アラート設定 ハマったポイント 出力されるエラーログのエラー内容がわからない 問題 解決策 GCP への認証が通らない 問題 解決策 Backend plugin で利用できるカラム名に縛りがある 問題 解決策 Gra
はじめに こんにちは、SaaS Product Teamのヒロオカです。 SPEEDAではSpring Webfluxの採用が行われおり、一部リアクティブなシステムが動いています。 今回は、R2DBCという、リアクティブな非同期でRDBにするための仕様とSpring(Reactor Project) による実装およびサポートを利用して、APIの実装を試してみたいと思います。 R2DBとは 前述していますが、R2DBCはRDBアクセスに対して、リアクティブな非同期APIを提供するための仕様です。 以下のような特徴を持っています。 Reactive Streams specificationに基づいている リアクティブなAPIを利用してRDBにアクセスできる 1コネクション1Threadのモデルより、スケーラブルである R2DBCはオープンな仕様であり、Service Provider Int
次のページ
このページを最初にブックマークしてみませんか?
『UZABASE Tech』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く