こんにちは。 Findy で Tech Lead をやらせてもらってる戸田です。 既に皆さんも御存知かと思いますが、弊社では開発生産性の向上に対して非常に力を入れています。 以前公開した↓の記事で、弊社の高い開発生産性を支えている取り組み、技術についてお話させていただきました。 tech.findy.co.jp ありがたいことに、この記事を多くの方に読んでいただき反響をいただいております。 そこで今回は、↑の記事でも紹介されている「Pull requestの粒度」について更に深堀りしてお話しよう…
はじめに ついにLoggol(ロゴル)の正式版をリリースすることが出来ました。それに合わせてLoggolブログも開始です。まず最初の記事として、そもそも何故このサービスを作ったのかについて書いてみようと思います。理由は複数あり、それらが複合的に混ざることで実際のサービス化を決心しました。 1. WAFの技術を活かせる 私はLoggolの開発以前より、継続して2つのクラウド型のセキュリティサービスの開発・運用に携わってきました。1つはWAFであるScutum、もう1つは脆弱性検査ツールであるVAd…
先に書いておくと,職場の人にも辞めます宣言をして,オープンに転職活動を開始することにしました.という記事です.2025 年 2 月には現在の所属を去る予定で,諸々を進めて行こうとしています.何らかご縁ありましたらよろしくお願い申しあげます. さて,かつて 2014 年 1 月,自分が学部 4 年生で強いうつ状態かつ"無い内定"の憂目にあっているときに書いた記事を読み直しました.はじめての就職を前にして,就職というのは何なのかを偉そうに書いています. 昔とブログデザインを変えた関係でめちゃくちゃ読…
ようやく涼しくなってきましたね。もう少し漸進的に気温が下がってほしい。プロダクト開発部部長の塚本@hihats です。 前置き この二、三年くらいは個人的にシステム思考への傾倒があり、以前ここに書いた変化に適応するソフトウェアアーキテクチャと組織構造への道程も、Qiitaに書いたソシオテクニカルアーキテクチャ概要もその系譜の記事だった。今回は、エレガントパズルという書籍を読んでいて、そこかしこにドネラ・メドウズ公の話が出てくるので改めて私もシステム思考について記事を書こうと考えていた。 そんな折…
先日のことですが、Querie.meでこんな質疑がありました。これは非常にご尤もなご意見であり、実際この問題提起に近いシチュエーションを見かけたことは五本の指では数え切れないくらいあります。ということで、今回の記事では元々の問題意識ともいえる「見せかけの回帰」について、久しぶりにちょっと復習を兼ねて書いてみようと思います。
GitHub Actions で CI している皆様、こんにちは。 GitHub Actions 便利ですよね。使わない日がないというくらい毎日お世話になっています。 さて、CI といえば良く問題になるのが実行時間。 長い待ち時間は開発効率を下げますし、プライベートリポジトリだと Runner の費用も嵩んでしまいます。 時間を短縮する方法は色々ありますが、一手目によく行われるのが依存パッケージのキャッシュじゃないかなと思います。 例えば Go で開発していると、依存パッケージは ~/go/pk…
こんにちは。AI・機械学習チームの氏家(@mowmow1259)です。 エムスリー福岡オフィスの一人目のエンジニアとして福岡で働いています。 マクドナルドの月見バーガーが好きで、今年も発売開始当日に食べに行きました。 私が所属するAI・機械学習チームでは基本的に2週間から1ヶ月程度で新規プロダクトをリリースするなど、高速にプロダクトを開発しています。 その過程で、「この書き方は落とし穴があるから使わない方がいい」といった開発に際したベストプラクティスが溜まっていきます。 そういったベストプラクテ…
こんにちは。サーバーサイドエンジニアの三村(@t_mimura39)です。 本日はRuby・Railsの話に限定せず、Amazon CloudFront を利用している方に役立つ情報をご提供します。 目次 はじめに 「X-Forwarded-For」を活用する方法 「CloudFront-Viewer-Address」を活用する方法 Railsエンジニアへ 注意点 おまけ 参考資料 はじめに 弊社は基本的にAWS上にRailsアプリケーションを構築しているため、CDNが必要になるとまず選択肢とし…
はじめに GuardDuty Malware Protection for Amazon S3は何が嬉しいのか GuardDuty Malware Protection for Amazon S3のコスト GuardDuty Malware Protection for Amazon S3によるスキャンコスト オブジェクトタグの使用コスト S3 API コールのコスト GuardDuty Malware Protection for Amazon S3の運用する上で直面した課題と解決策 AWS …
どうも Security Engineering の西川です。好きなポケモンはクワッスです。カミナシ社内に遂にポケモンカード部ができまして、部員同士切磋琢磨し始めています。いつか企業対抗ポケモンカード大会をするのが夢です。 さてさて、皆さんは AWS WAF(Web Application Firewall、以下 WAF)を使っていますか?サービスに WAF を導入する際は一定期間 COUNT モードで運用することがセオリーとされています。では、COUNT モードから BLOCK モードに切り替…
.mobi TLDにおいて、WHOISを利用して不正サーバ証明書発行を行う攻撃手法が明らかになり、話題となっている。この実験者は、実際に 所有してない *.mobi ドメインの証明書発行が出来そうな事を確認している(不正発行の直前で実験を停止)。簡単に流れを眺めたので、メモとして記録しておく。 詳細 詳細の記事はこちら labs.watchtowr.com箇条書きで流れを書くと 前提 .mobi TLD の whoisをホストしていたドメインが "whois.dotmobiregistry.ne…
こんにちは、ファインディでFindy Team+(以下Team+)を開発しているEND(@aiandrox)です。 普段はバックエンドの開発をメインで担当しているのですが、3ヶ月間フロントエンドの開発に挑戦する機会がありました。短い期間でしたが、フロントエンドテックリードから直接指導してもらいながら実装をすることで、フロントエンドの開発を一人でできるくらいに慣れることができました。 今回は、その経験と学びについて書いていきます。 フロントエンドに挑戦する前の自分について フロントエンドに挑戦する…
みなさんこんにちは、イノベーションセンターの益本(@masaomi346)です。 Network Analytics for Security (以下、NA4Sec) プロジェクトのメンバーとして活動しています。 この記事では、2024年9月14日に開催されたセキュリティ・ミニキャンプ in 愛知 2024で、講師として参加したことについて紹介します。 ぜひ最後まで読んでみてください。 NA4Secについて セキュリティ・キャンプについて 参加者から講師に 担当した講義について 講師をしてみて …
技術的負債をうまくマネジメントすることは重要です。なぜなら、持続可能な長期的な利益の確保こそが競争戦略における目標であり、技術的負債への対応力はその目標に近づくための重要な組織能力だからです。EMとして組織の成果の最大化を目指す上で避けては通れない課題です。また技術的負債への対応は、単に技術的な課題ではなくそれらを包含するプロダクトの課題です。どうやって解決するかだけでなく、なぜ、いつ、どのくらいやるべきかを、事業責任者などのステークホルダーと合意して初めて対応を進めることができます。こうした課…
先日、社内有志で開催していたDB自作本 Database Design and Implementation の輪読会ならぬ輪実装会がついに完結を迎えました。 RDBMSをゼロから、毎週一人ずつ、1章分を実装してPullRequestを出しつつ資料も準備して発表をこなすという一見ハードな勉強会で、完走できるか不安もありつつスタートしましたが、やってみるとめちゃくちゃ楽しく最後まで完走できました。 本記事ではみなさんに「うちでもやってみたい」と思ってもらえることを願って、読んだ本の推しポイントや、…
はじめに こんにちは。newmoでソフトウェアエンジニアをやっている@tenntennです。 本稿では、2024年9月24日(火)にファインディ株式会社主催の「Goのイテレータ深堀りNight」というイベントで登壇してきましたので、その報告と内容について紹介します。 findy.connpass.com 「Goのイテレータ深堀りNight」は、2024年8月にリリースされたGo1.23の機能の1であるrange over func(通称イテレータ)について、6人の登壇者がさまざまな角度で10分の…
こんにちは。クラウド基盤本部、PDX(Platform Developer eXperience)所属のびきニキです。突然ですがみなさん、以下の記事は読まれましたか? developer.hatenastaff.com Hatena Developer Blogの連載企画「卒業生訪問インタビュー」では、創業からはてなの開発に関わってきた取締役の id:onishi、CTOの id:motemen、エンジニアリングマネージャーの id:onkが、いま会いたい元はてなスタッフを訪問してお話を伺ってい…
株式会社カケハシは「日本の医療体験を、しなやかに。」というミッションを掲げた、医療系のスタートアップです。現在は薬局向けのSaaSを主軸としたビジネスを行っており、多くのエンジニアがチームを組んで開発に取り組んでいます。その開発チームのひとつ「yabusame」は、特徴的なチーム編成もあって社内外で注目を集めています。 メンバーの椎葉光行(@bufferings)さん、小田中育生(@dora_e_m)さん、荻野淳也(@ogijun)さん、種岡篤志さん、平松拓(@hirataq__)さんは、それぞ…
はじめに こんにちは。データ部ML Product Devチームに所属している谷澤です。 ML Product Devチームは「機械学習を活用した競合優位性のあるプロダクト開発」をミッションとし、プロダクト開発チームと協力して日々開発を行っています。 現在参加しているプロジェクトではOCR技術を使用しており、アノテーションにはOSSのLabel Studioを利用しています。中でも機械学習モデルの推論結果を用いてアノテーションを支援する機能が非常に便利で重宝していましたが、特定の画像群で支援機能…
2024/8/28 - 2024/9/23 に開催されたプログラミングコンテストMN-Core Challenge #1に参加し、なんと優勝することができました! この記事ではコンテストの振り返りと各問題に対する自分の解法の簡単な解説を行います。 MN-Coreについて 概要 MN-CoreシリーズはPreferred Networksが開発しているアクセラレータで、高いピーク性能・電力効率を実現するためかなり割り切った設計になっています。 数千個あるPEがすべて同期して動作する、条件分岐やルー…
チームメンバーや他社のエンジニアとの 1on1 の中で、「憧れている人とかいますか?」という話をすることがある。この質問はわりと継続して聞いているなと思ったので雑に書いておきたい。 チームメンバーとの 1on1 で聞くのは半年ごとくらい。目標設定など、たまにはちょっと中長期の話でもしますかってタイミングで話している。いわゆる"キャリア"の雑談である。 自分は「1年後/3年後どうなっていたいか?」みたいな質問がすごく苦手で、うまく答えられたことがない。どうなりたいかを明確にするのは大事なことだと思…
こんにちは、CARTA HOLDINGSの中のfluctという事業部でデータエンジニアをしているyanyanです。 先日、CARTA HOLDINGSが毎年開催しているエンジニアを志望する学生向けの夏インターン「Treasure」が今年も開催されました。Treasureに関する詳しい説明は以下の記事にまとまっています。 techblog.cartaholdings.co.jp Treasureとは ざっくりTreasureについて説明すると、「3週間でWebアプリケーションの開発について学び、チ…
こんにちは。 id:Pocke です。マネーフォワードでは Rails を用いた Web アプリケーションの開発と、RBS という Ruby の静的型システムの開発を行っています。 最近 RBS の開発をする中で、「不要な処理を削除すると実行速度が遅くなる」という不思議な現象に遭遇しました。この記事ではその現象を解説しようと思います。 なおこの記事は Ruby の知識を前提としないように執筆されており、Ruby の知識が必要となるところには注釈を加えて補足しています。 普段 Ruby を書かない…
「デイリーポータルZ」代表の林雄司です。これまではウェブマスターとか編集長と名乗って、一企業のなかでサラリーマンとしてサイトを運営していましたが、2024年1月にとうとう独立してしまいました。これからは、自分でコンテンツを作るだけじゃなく、営業とか経営をして、きちんとお金を稼がないといけません。デイリーポータルZは、これまで大きな企業のもとで運営してきましたが、正直なところ20年余りずっと赤字でした。独立して赤字だとサイトを続けられないので、なんとか自分でも稼ごうといろいろやっていますが、けっこ…
社内で書いた内容から、一般化できる話だけを抜き出して書いた記事です。 TL;DR 意思決定者は、 仕様が複雑になればなるだけ、指数関数的かつ継続的にコストがかかることを理解する必要がある。 ユーザーの要求や利便性について優先順位をつける必要がある。 それらを揃えた上で「いっちゃんいいバランスで顧客要望に応える」必要がある。 コストについて サービスあるいは機能の一生 サービスあるいは機能は以下のライフサイクルを辿る 初回リリース以前 初回リリース以後、クローズ以前 クローズ 実は一番コストがかか…
はじめに 先般 MN-Ccore Challenge なるものが開催され、私もスキマ時間に気分転換的にちょこちょこ挑戦していたのですが(本業関係者への言い訳)、とても面白いアーキテクチャだなと思いました(順位はまあその力及ばず微妙な感じでしたが)。 普段 FPGAプログラミングが多い私ですが、いろいろ新しい観点で脳に刺激を頂きました。 今更私なんかが考察する余地もない気はしますが、折角なのでプログラミングではなく、プロセッサアーキの方を少しだけ感想程度に記録しておければと思います。 いろいろ資料…
「全ての企業のサービスを成長させる」をミッションに掲げ、WebサイトやアプリのUI/UX改善をはじめ、技術力でサービスやプロダクトの成長を支援してきた、リクルートグループのニジボックス。そんな同社が今注力するのは「データ人材」の育成です。具体的には、BIエンジニア、データエンジニアなど、データ領域でリクルートとともにプロダクトを「共創」できる専門家集団の立ち上げを進めています。その背景には、リクルートでプロダクトのデータ利活用が急速に進んだ結果、「共創」ニーズに対して人材が圧倒的に不足している、…
はじめに こんにちは。データシステム部/推薦基盤ブロックの佐藤 (@rayuron) です。私たちはZOZOTOWNのパーソナライズを実現する推薦システムを開発・運用しています。推薦システムごとにKPIを策定していますが、データの欠損やリリース時の不具合によってKPIが意図しない値を取ることがあるため定常的に確認する必要があり、これをKPIのモニタリングと呼んでいます。 先日、推薦システムの実績をLookerでモニタリングするというテックブログで推薦システムのKPIをモニタリングする方法を紹介し…
こんにちは。イノベーションセンターの鮫嶋です。本記事では、今年で入社2年目の新人が、2024年8月に開催されたセキュリティカンファレンスBSides Las Vegas 2024で登壇するまでの道のりについてご紹介します。 Team NA4Secとは BSides Las Vegasに登壇してきました BSides Las Vegasまでの道のり リサーチにかかわり始めたきっかけ どんな活動をしてきたか JSAC2024に参加して BSides Las Vegas 2024で登壇! 振り返って …
モノタロウのプラットフォームエンジニアリング部門 コンテナ基盤グループの宋 明起です。 私たちは、アプリケーション開発者からコンテナシステムの認知負荷を取り除き、アプリ開発に専念できるコンテナ基盤の構築と基盤を改善し、開発者はより楽に、より安全にアプリケーションのデプロイと運用できるように支援しています。 背景 基本設計 方針 構成 サンプル モニタリング サンプル 障害 障害1. Memory overflowエラーが発生 障害2. 大量のログが欠損になっている (refresh_interv…
ミーティングのファシリテーションをする時にミーティングのルールや心構えを音読するようにしてみていて、思ったよりいい感じなので雑に書いておきたい。 たとえば月1の開発チームのミーティングでは、次のようなルールを明記して読み上げている。 ドキュメント・Slackへのコメントを歓迎します。事前・MTG中いつでも質問・意見を入れてください あまり厳格にしすぎずハードルを上げない 議事録はみんなでMTG中に書く 最初に声に出してアナウンスすると、それに応えて意識した行動を取ってくれる人が増えているように思…
はじめに こんにちは。株式会社ZOZOのSRE部プラットフォームSREチームに所属しているはっちーと申します。 本記事では、Kubernetesクラスター上にモックリソースをサクッと構築する「モック構築ツール」を紹介します。ZOZOの事例をもとにした説明となりますが、Kubernetesクラスター上での負荷試験やフロントエンド開発などの効率化において広く一般的に活用できるツールのため、OSSとして公開しています。GitHubリポジトリは以下です。 github.com 本ツールは、私個人のOSS…
こんにちは。税理士ドットコム事業部の @komtaki です。 先日、税理士ドットコムの local 環境に「クラウドネイティブ時代のリバースプロキシ」Traefikを導入しました。プロキシサーバーの候補として最初に思いついたのは nginx でしたが、最終的には、設定ファイル不要で compose.yml だけで完結する Traefik に決めました。 そこで本記事では、Docker を前提としたコンテナのラベルでの設定方法など、導入の過程で調べた Traefik を使うために必要な情報をまと…
TL;DR(前編のみ) 「リソース効率重視」、「フロー効率重視」と呼ばれる開発スタイルは、それぞれソロ開発(個人分担制)とアンサンブル開発(1つのタスクを複数人で協働する方法)を指すのが一般的 短期的には、ソロ開発はスループットの高さ(開発アウトプットの総量)、アンサンブル開発はリードタイムの短さ(1タスクが完了する速さ) に長所がある どちらがいいかは状況次第だが、アウトプットでなくアウトカムを見て判断すべき 目次 TL;DR(前編のみ) 目次 僕はなんでこれを書いているのか 2つの開発スタイ…
始めに 対象者 作成するアプリケーション構成 運用を見据えた構成とは 構成概要 各スタックの説明 ① SampleInfrastructureStack ② SampleContainerRepositoryStack ③ SampleTaskDefinitionStack ④ SampleServiceStack ⑤ SampleServicePreferenceStack ⑥ SamplePipelineStack 動作確認 正常にデプロイが完了する場合のCodeDeployの挙動 ロールバ…
今回は2024/09/21,22に行われた技育祭2024 (秋)にて登壇した @pei0804のセッション文字起こしをお届けします!🍁 資料はこちらから: ビジネスに必要な全てを担い、 自分の専門性を見つけ出す フルサイクル開発者のあり方@技育祭 秋 / how-find-own-speciality-in-full-cycle - Speaker Deck ビジネスに必要な全てを担い、自分の専門性を見つけ出すフルサイクル開発者のあり方 今回は「ビジネスに必要な全てを担い、自分の専門性を見つけ出…
デジタルペンテスト部の北原です。 今回は、Windowsでのツール開発者にとっては重要なハンドルの内部について解説します。 Windowsでは、ファイルやプロセスから始まりすべてのリソースはオブジェクトとして扱われ、ファイルの削除やメモリの確保にはハンドルを取得する必要があります。 ツールやアプリケーションの開発者にとっては、日常的にハンドルを操作する機会がありますが、通常の利用者にとってはあまり意識するものではありません。 本記事では、Windows OSでのハンドルの役割と、OS内部でどの様…
Parquetは便利なファイル形式で、列志向のフォーマットとしてはデファクトの1つと言っても過言ではないでしょう。 ですが、jsonやcsvとは違い、ファイルを見ただけでどんな構造かわかるものではありません。 この記事は、Parquetの具体的な構造について記述します。 はじめに この投稿は、Parquetの構造について、バイナリを見ながら確認するものです。 ただし、Parquetの大枠に注目した投稿なので、delta encodingやrun-lengthなど、個別の圧縮方法については取り扱い…
先日「アジャイル入門」的な内容でお話しする機会があったのだけど、その中で「アジャイルかどうかは、どうすればわかる?」ということに悩んでいる方が多く、「難しいな〜」と思いながら以下のリストを(一つの提案として)ひねり出した。 毎日、何度も「完成品」を「最終受益者(エンドユーザ)」に届けているか? 毎日、学んだことを計画に反映し、最善の計画に更新しているか? 計画変更のコストは、ゼロ(に限りなく近い)か? 1〜3への答えが「No」なら、日々、少しずつ、この状態に近づいているか?(そのための努力を続け…
2024年9月13日、物流代行事業を展開する関通は、ランサムウエアによる社内システム障害が発生したと公表しました。同社のサービスで保有していた情報が流出した可能性もあることから、同社サービスを利用する多数の企業から関連する公表がされています。また同事業を行う倉業サービスも不正アクセスによるシステム障害が発生したと公表を行っています。ここでは関連する情報をまとめます。 物流代行事業者でランサム被害 2024年9月12日18時頃にシステム障害を検知し、その後一部サーバーにおいてランサムウエアの感染が…
ガバメントクラウドを活用した標準準拠システム同士のデータ連携はオブジェクトストレージによるファイル連携となっています。 ここで、ガバメントクラウドの CSP に AWS を選択した場合で、データ連携用オブジェクトストレージとして S3 を共有する方法を考えてみたいと思います。 なお、ガバメントクラウド上の標準準拠システムからオブジェクトストレージへのアクセスは閉域が要件となるため、以下の 2 パターンのエンドポイント経由で S3 へアクセスする必要があると考えています。 ゲートウェイエンドポイン…
こんにちは、CTOの id:motemen です。Hatena Developer Blogの連載企画「卒業生訪問インタビュー」では、創業からはてなの開発に関わってきた取締役の id:onishi、CTOの id:motemen、エンジニアリングマネージャーの id:onkが、いま会いたい元はてなスタッフを訪問してお話を伺っていきます。id:motemenが担当する第11回のゲストは、サイボウズ株式会社でソフトウェアエンジニアとして活躍しているid:itchynyさんこと、濱田健さんです。itc…
読まなくても良い漫才パート ボケ「いきなりですけどね、freee人事労務の給与計算ロジックでいつも使ってる DB instance があるらしいんやけど」 ツッコミ「あっ、そーなんや」 ボケ「うちのオカンがね、reader instance なのか writer instance なのかをちょっと忘れたらしくてね」 ツッコミ「どうなってんねそれ」 ボケ「でまあ色々聞くんやけどな、全然分からへんねんな」 ツッコミ「分からへんの?いや、ほな俺がね、どっちの instance なのか、ちょっと一緒に考…
はじめに こんにちは!ソフトウェアエンジニアの種岡です。 皆さん、システム設計に取り組んでいますか? 設計は、プロジェクト成功への道筋を描く、航海の羅針盤です。 目的地を見据え、それに向かって進むための確かな指針となります。 設計の質がしっかりしていれば、開発という大海原でも迷わず進むことができます。 設計はプロジェクトの土台を築く、創造的かつ重要なプロセスです。 夢を描き、それを形にする試行錯誤の楽しさ、これこそが設計の魅力だと思います。 この記事は秋の技術特集 2024の11記事目です。 こ…
みなさまお元気ですか 暑さも少し落ち着いてきて、ようやく外に出てもいいかなという気になってきました。季節の変わり目体調には気をつけていきたいですね。 実は、一ヶ月くらい前に Linux PC を自作して Mac から移行しました。そのときの考え、その後の感想を残しておきます。 また、学んだことや作業のログを細かく残しておきたいと思います。(どこかの誰かが不安に思ったときに同じ失敗や疑問を経験した人がいて安心してもらえたら嬉しい) Ubuntu のインストール画面 (ベストオープンソースと開発しよ…
本日は人生の数ある選択肢のなかから、こちらのブログを読むという行動を選んでくださいまして、まことにありがとうございます。 はじめに プログラミングの世界には多くの指針や原則が存在します。Chris Zimmerman氏の「The Rules of Programming」(邦題:ルールズ・オブ・プログラミング ―より良いコードを書くための21のルール)は、不変の知恵を凝縮した一冊です。これらの原則は、多くの開発現場で活用できる有益な内容となっていると思いました。 The Rules of Pro…
RustのWebアプリケーション開発に関する書籍を共著で執筆しました。1年くらい執筆していましたが、出版時期などが定まってきたので内容の紹介を込めて告知の記事を書きます。9/26刊行予定です。予約よろしくお願いします。 RustによるWebアプリケーション開発 ↓AmazonのURL(アフィリエイトなし) www.amazon.co.jp 数年前に書籍を執筆した際に、「次はWebアプリケーションの実装に関する本を書きたい」と記事に書き残していたのを今見つけたのですが、有言実行できたようです。 ど…