はてなリモートインターンシップ2021の講義資料を公開します

8月から開催した「はてなリモートインターンシップ2021」も無事に終了しました。このうち講義パートのエンジニアリング講義とブートキャンプで使用したスライド資料を公開します。内容も簡単に紹介しますのでぜひご覧ください。

合宿らしい「交流」をテーマに「開発合宿 DX (デラックス) 」を開催しました

はてな20周年となる2021年6月の開発合宿は、テーマの1つに「モノづくりを楽しむ体験を通じて、他職種・他チーム間の交流を深める」ことを掲げ、デラックス (DX) 版として開催しました。oViceを導入したり社内報を活用したりして、リモートでもリアルに近い「…

遅れてやってきた令和バグ あるいはiOSアプリでの日付の扱い方

今年は2021年、あるいは令和3年です。同じ年でも、暦によって何年になるかが違います。iOSでは端末の暦を変更できますが、このとき日付を扱うAPIで思いも寄らないバグに遭遇しました。原因と対策についてまとめます。

Firebase AnalyticsをBigQueryで分析したいときに役立つテクニック

アプリ開発でFirebase Analyticsのデータを解析する際に、柔軟な分析のためBigQueryにエクスポートしたい方も多いでしょう。そんな「BigQueryやってみたい」方に役立つテクニックをいろいろと紹介します。

はてなの開発プロセスを改善する、すくすく開発会とプロジェクトテンプレート講義のご紹介

はてなには、開発プロセス改善などに関心のあるスタッフが集まる「すくすく開発会」があります。「すく」はソフトウェア開発手法のスクラムを由来とし、はてな全体の開発プロセスを改善する取り組みを続けてきました。そのうち、プロジェクトマネジメントの…

Amazon ECSのログストリームを見やすく階層的に整理できるawslogs設定

Amazon ECSでコンテナを動かすとき、ログドライバーとしてawslogsを利用してAmazon CloudWatch Logsにログを出力する際に、awslogs-stream-prefixパラメータには何を設定するとよいかについて考察します。

画像の表示で画面がズレないよう変更したことで、はてなブログの何が改善されたのか

はてなブログでは2021年6月に、はてなフォトライフの画像を貼り付けたときの表示方法を修正しました。最終的な見た目に変化はありませんが、画面のズレが起きなくなったことでCLS(Cumulative Layout Shift)の数値が改善され、視覚的安定性が向上しました。

既存の機能から設計を学び、調査力を向上させて、知見を共有しよう

はてなブックマークチームでは、既存機能などの設計をメンバーが能動的に調査して議論する「設計調査会」を定期的に開催しています。講義形式の知見共有と合わせて、チームの開発力や生産性の向上につながると考えています。

Xcode付属のSimulatorで複数の項目をまとめてドラッグする方法

iPadでは複数の項目を選択してドラッグすることができます。さてXcode付属のSimulatorでは、この移動をどうシミュレートできるのでしょうか? 調べてみました。

エンジニア向けのSaaS「Mackerel」で、イライラさせないテクニカルサポートのために改善したこと

Mackerelのカスタマーサポートにおいて実施した改善の裏側を紹介します。サポートを必要とする利用者に「イライラさせない」ことを目指し、エフォートレスなサポート体験を提供するため業務に利用するサービスを移行。サービスレベルの指標を新たに計測しつ…

RenovateとGitHub Actionsを導入し「なくてはならない存在」に | はてなで働く ikesyo にアンケート [#17]

はてなで働くエンジニアにアンケートシリーズ第17回は、マンガアプリチームのiOS/Androidアプリエンジニア、id:ikesyoです。ここ1~2年で導入を推進してきた「Renovate」という依存性アップデートの自動化ツール、GitHubが提供するCI/CD環境である「GitHub A…

はてなリモートインターンシップ2021のカリキュラムを発表します!

はてなリモートインターンシップ2021では、全3週間のうち前半1週間を講義フェーズとして全員が9科目を受講。後半2週間は開発フェーズとして、実際の部署に配属され4コースで実施します。学生の皆さんのご応募をお待ちしています。

一緒に働く人に「次も呼んでもらえる」ような振る舞いを大切に | はてなで働く yigarashi にアンケート [#16]

はてなで働くエンジニアにアンケートシリーズ第16回は、はてなブックマークチームのWebアプリケーションエンジニア、id:yigarashiです。スクラム運営の自律分散化、Embulkを用いたデータ転送の整備などについて話を聞きました。

GraphQL IDE の “GraphiQL” をカスタマイズして、開発ツールとして活用する

GraphiQLは、GraphQL APIの使いやすいGUIクライアントです。Reactで自作コンポーネントを柔軟に追加でき、状態を管理することなく拡張できて便利です。カスタマイズの方法と業務での実例を紹介します。

GitHub ActionsでGoのソースコードをクロスコンパイルするときに、ビルドが失敗する理由とその対策

Mackerelで公開しているGoのプログラムで、CIをGitHub Actionsへ移行した際に32bitバイナリの生成について調べたことを共有します。ビルド制約、システムコール、cgoをそれぞれ使う場合、どのようにワークフローを書けばビルドが通るでしょうか。

新しい技術を追いかけるのが好き | はてなで働く nabe1216 にアンケート [#15]

はてなで働くエンジニアにアンケートシリーズ第12回は、マンガサービスのiOS/Androidアプリエンジニア、id:nabe1216です。イベントではてなに関する話を聞いて入社のきっかけとなったこと、iOS/Androidアプリエンジニアの業務内容などについて話を聞きました…

4月27日(火)に Hatena Engineer Seminar #16 Mackerel チームの技術と働き方編 をオンラインで開催します

4月27日(火)に Hatena Engineer Seminar #16 をオンラインで開催します!Mackerelの仕組みや開発の裏側から、ユーザーを支えるMackerelならではCREの取り組みなど、はてなのエンジニアの業務内容について幅広く知っていただける内容となっています。

はてなリモートインターンシップ2021募集開始!今年はリモートでプロダクト開発も!

「はてなリモートインターンシップ2021」の募集を開始しました。3週間(15日)の全日程をオンラインで開催し、前半でWebサービス開発の技術を学び、後半は開発チームに配属されてサービス開発を実践します。はてなのサービスに興味があり、Webエンジニアとし…

「データドリブンな意思決定」が浸透しつつある | はてなで働く polamjag にアンケート [#14]

はてなで働くエンジニアにアンケートシリーズ第14回は、はてなブログのWebアプリケーションエンジニア、id:polamjagです。「意思決定をデータドリブンにしていきたい」という話などについて聞きました。

エンジニア新人研修の一環で株式会社はてな 社内 ISUCON を開催しました

パフォーマンス問題に対する調査・解決アプローチを学ぶためのエンジニア新人研修プログラムとして、 ISUCON のやり方を採用した社内研修「株式会社はてな 社内 ISUCON 」を開催しました。この内容について紹介します。

はてなリモートインターンシップ2021を開催します!

追記:募集開始しました 「はてなリモートインターンシップ2021申し込み」はこちら 追記ここまで こんにちは、CTO の id:motemen です。はてなは今年も、学生を対象としたエンジニア向けの夏のインターンシップ、「はてなリモートインターンシップ2021」を開…

Pull Requestから社内全チームの開発パフォーマンス指標を可視化し、開発チーム改善に活かそう

開発チームの改善を定量的な指標に基づいて進めるため、GitHubのPull Requestから社内全チームの開発パフォーマンスを表す指標を可視化しました。チーム単位で課題を分析したり、改善できているチームからヒアリングしたりといったことが、これによって可能…

OSSへの貢献をさらに良い形にしたい | はてなで働く itchyny にアンケート [#13]

はてなで働くエンジニアにアンケートシリーズ第13回は、ブックマークチームのWebアプリケーションエンジニア、id:itchynyです。現在の業務内容やテックリードの役割などについて話を聞きました。

Google Cloud の IAM で、開発体制や組織の文化に合わせて検討したこと

はてなでも、サービスごとに技術選択の多様化が進み「Google Cloud 上でサービスを構築する」という選択肢も十分ありえる状態になってきました。性質の異なる複数のサービスを複数の開発チームが展開する際に、開発速度を落とさず安心して Google Cloud を利…

開発合宿でのレコメンドシステム開発をうまく本番導入へ | はてなで働く kouki_dan にアンケート [#12]

はてなで働くエンジニアにアンケートシリーズ第12回は、マンガサービスのiOS/Androidアプリエンジニア、id:kouki_danです。入社したきっかけや現在の業務内容などについて話を聞きました。

【追記あり】 2月〜3月に、はてな2022年新卒エンジニア向け オンライン会社説明会 を実施します!

株式会社はてなでは、2022年卒の方に向けた新卒採用のオンライン説明会を開催します。初回は、2021年2月5日(金)12時(正午)から。3月にかけて複数回開催予定です。ご参加お待ちしています。

データ活用の知見や困り事を共有する「突撃! 隣のダッシュボード」会をやっている話

はてなではチームを横断したデータ活用を推進するため、2020年秋から「突撃! 隣のダッシュボード」という会を開催しています。チーム内にとどまりがちな知見や困り事を共有し、ダッシュボードについて議論を重ねることで、チームを超えたデータ活用の相談が…

Hatena Engineer Seminar #15 をオンラインで開催しました #hatenatech

「Hatena Engineer Seminar #15」を2020年12月23日(水)に開催しました。今回は2020年新卒入社メンバーによる、チーム開発における体制づくり、フロントエンドツールチェーン、タスクの計画とその実施内容などのトークを行いました。この記事では、3つの発…

はてなエンジニア Advent Calendar 2020完走しました!

2020年も無事に「はてなエンジニアAdvent Calendar」を完走できました! はてなブックマークを最も集めた「最多ブックマーク賞」を発表するとともに、全25エントリーを振り返って感想戦をお届けします。年末年始のお供にどうぞお読みください。良いお年を。

異常なオープンネス文化が特徴的 | はてなで働く nabeop にアンケート [#11]

はてなで働くエンジニアにアンケートシリーズ第11回は、システムプラットフォーム部のSRE・id:nabeopです。入社したきっかけや現在の仕事内容などについて話を聞きました。

2022年度 新卒採用を開始しました!

本日、2022年度新卒採用を開始しました。2022年度新卒採用は以下の4職種で採用を行います。 Webアプリケーションエンジニア iOS、Androidアプリエンジニア SRE デザイナー 京都・東京の両拠点での積極採用を行っています。皆さまのご応募をお待ちしています…

TypeScript で querySelector メソッドを使うときに型引数を指定する

こんにちは、エンジニア職の id:nanto_vi です。(この記事は、はてなエンジニア Advent Calendar 2020 の 12 日目の記事です。昨日は id:cohalz さんによる「Webサービスのモニタリングについてのチェックリスト」でした。) 結論 TypeScript で querySelecto…

【オンライン】12月23日(水)に Hatena Engineer Seminar #15 を開催します!

こんにちは、Webアプリケーションエンジニアの id:KGA です。 12月23日(水)に Hatena Engineer Seminar #15 をオンラインで開催します! 今回は2020年4月に新卒入社した3名のエンジニアによるトークをご用意いたしました。チーム開発における体制づくりや…

数字のバラ付きを考慮して意思決定する技術

こんにちは。MackerelチームでCRE(Customer Reliability Engineer)をしているid:syou6162です。主にカスタマーサクセスを支えるデータ基盤の構築や、データ分析を担当しています。 意思決定をする際には不確実性がつきまといますが、不確実性を信頼区間とい…

開発合宿をリモートで実施する工夫

はてなでは、日々の業務を離れた技術の検証やチャレンジの場として定期的に開発合宿を開催していますが、新型コロナウィルス感染症の影響により、これまでのように一つの場所に集まって開催することが難しくなりました。そこでリモートでの開発合宿を2回開催…

リモートワーク下で積極的に音声会話を | はてなで働く hogashi にアンケート [#10]

Hatena Developer Blogの「はてなで働くエンジニアにアンケート」シリーズ、今回ははてなブログチームのWebアプリケーションエンジニア、id:hogashiに話を聞きました。

コンテナ技術とスケールするWebサービス ─ ペットから「ポスト家畜」の時代へ

「コンテナ」をテーマに、いわゆる「ペットから家畜へ」という言葉で語られるWebアプリケーションの実行環境の変遷と、コンテナ技術がもたらした2軸のスケーラビリティについてまとめ、コンテナ技術によって「ポスト家畜」とも呼べる新たな時代が到来したこ…

Mackerelでは計画メンテナンスをどう実施しているか? RedisをElastiCacheに移行した裏側をご紹介

Mackerelでは、Amazon EC2で稼働しているRedisおよびRedis ClusterをすべてAmazon ElastiCache for Redisへ移行しました。最後の移行ではElastiCacheのオンライン移行を利用し、サービスを計画停止して実施しました。この裏側でどのように作業を進めたのかを…

MackerelのCREがカスタマーサクセスをいま学ぶ理由─3年間の試行錯誤をぜんぶ話そう

GoogleがCRE(Customer Reliability Engineer)という職種を提唱し、その後はてなでもCREが誕生して3年。5名のチームに成長したMackerelのCREでは今、カスタマーサクセスの考え方を取り入れようとしています。世界と日本でCREの実践事例や、これからCREを組…

SREはインフラ担当だけでなくチーム全体で取り組んでいくもの | はてなで働く cohalz にアンケート [#9]

Hatena Developer Blogの「はてなで働くエンジニアにアンケート」シリーズ、今回ははてなブログチームのSRE、id:cohalzに話を聞きました。

Rustの知見を深めたい! 開発合宿でmackerel-agentを再実装してみた

活躍分野が広がるRust開発の知見を得るため、ホストの情報をMackerelに送るmackerel-agentをRustで再実装する試みに、3人のはてなエンジニアが開発合宿の3日間で挑戦しました。まだ機能は十分でないものの動作するアプリケーションがRustで実装でき、今後に…

はてなインターンシップをリモートで開催する方法─精神と時のステイホーム

はてなサマーインターンシップ2020は、13年の歴史で初めてオンライン開催となりました。リモートの実施にはコントロールを効かせにくい難しさがありますが、日程・カリキュラム・コミュニケーションそれぞれで影響を検討し、課題を中心とした短期間の開催と…

はてなサマーインターン2020の講義動画と課題を公開しました

2020年のはてなサマーインターンでは、マイクロサービスをテーマとした1週間のカリキュラムを用意しました。その約2時間にわたる講義動画と、講義終了後に取り組んでもらった課題を公開しています。課題に挑戦する方がいましたら、ぜひ #hatenaintern2020 で…

頑張らなくていいチームだからこそ自分の強みを増やしていきたい | はてなで働く do-su-0805 にアンケート [#8]

Hatena Developer Blogの「はてなで働くエンジニアにアンケート」シリーズ、今回はシステムプラットフォーム部のSREであるid:do-su-0805に話を聞きました。

はてなブログのキャッシュ周りをきちんと改善したら、アプリケーションサーバの台数を半分にできた話

はてなブログでは2019年12月から、Varnishを中心としたキャッシュ周りのさまざまな改善を進めてきました。その結果、ブログ記事のキャッシュヒット率が1日平均で8%から58%に向上したり、アプリケーションサーバの台数が以前の半数以下に削減できたりといっ…

サマーインターンをオンラインで開催しました

2020年の「はてなサマーインターン」が、9月11日(金曜日) をもって無事に終了しました。時勢もあって1週間のリモート開催となり、カリキュラムも新たに作り直しました。想定以上のパフォーマンスを発揮してくれた開催中の様子は #hatenaintern2020 のハッ…

Hatena Engineer Seminar #14 〜魔法のiらんど編〜 をオンラインで開催しました #hatenatech

初のオンライン配信となった「Hatena Engineer Seminar #14 〜魔法のiらんど編〜」を7月15日(水)に開催しました。はてなで開発・運用を支援している「魔法のiらんど」リニューアルについて、企画視点での話から、バックエンド/フロントエンドそれぞれの開…

「マンガが快適に読める」を数値化し、SLOをマンガビューワに導入するまで

Webマンガサイトで利用される「GigaViewer」のチームでは、開発速度と信頼性のバランスをとるためSLO(Service Level Objective)を策定しました。マンガビューワで必要な「マンガが快適に読める」などのサービスレベルをどのようにSLI(Service Level Indic…

AWS Purpose-Build Database Week で Mackerel の時系列データベース内での ElastiCache について発表しました

MackerelにおけるAmazon ElastiCacheの利用事例について、はてなエンジニアでMackerel開発チームのastjが、AWSのオンライベント「Purpose-Build Database Week」で8月24日に発表しました。今回はとくにRedis Clusterに焦点を当てており、発表資料と概要を共…

Elasticsearchクラスタを再構築し、無停止で切り替えるベストプラクティス

オンプレミスなElasticsearchクラスタから、AWS上で再構築したAmazon Elasticsearch Serviceのクラスタに切り替える際、無停止であることと切り戻し可能であることを条件として、いくつかの手法を詳細に検討しました。