as a builder

ソフトウェアエンジニアリングやると究極的には一行もコードを書かなければバグが混入することもないしなっていう気持ちになることがある。 それはテコを効かせるエンジニアリングの考え方として理に適っているので納得している。 早すぎた最適化とかは「や…

言葉を尽くす

大抵の誉め言葉を嬉しいとは感じない。どれもこれも社交辞令に聞こえる。なぜ社交辞令に聞こえるかといえば、着眼点がずれていたり、解像度が低かったりするから。 これも本当にズレている・見えていないだけのこともあれば、当人の認識は的を外していないけ…

株式会社はてなに入社しました

株式会社はてなに入社しました。半年ぶり3回目になります。 前回: 株式会社はてなに入社しました - Sexually Knowing 参考: 株式会社はてなに入社しました - hitode909の日記 お知らせ 4月1日はエイプリルフールです

入社以来未だオフィスに踏み入れていない自分の転職とオンボーディングについて

前回までのあらすじ 転職した: 新しい職場で半年経った面接を受ける1年前 (2019年初頭) にカジュアル面談に行った時にオフィスを訪れて以来、面接から入社後に至るまで自分は一度も現職のオフィスに踏み入れていない。 転職から入社 転職活動 新しい職場を決…

DDD is overratedについて

DDD is Overrated | Stefan Tilkovについて。 DDD is overratedの自分なりの受け取り方 DDDだけが設計手法や考えではないんやで 必要なら(DDDにおけるaggregateやvalue objectのような)概念に対する名前を自分たちで付けてもええんやで 自分の考え 筆者が言…

新しい職場で半年経った

from: 株式会社はてな 退職エントリ to: 株式会社Classi 社の開発者ブログに書いたエントリ 決め手 やっていること・やりたいこと チーム・機能横断の基盤システムの設計と開発 開発者ブログの編集長業 プロダクトチームに出向しての草の根活動 事前の印象と…

Google Formでお手軽に自分のヘルスチェックをしてみる

気分によってパフォーマンスが左右されるな〜と数年前くらいから自覚するようになり、自分の生産性とどういう相関があるのか・ないのかを知りたいと考えた。 生産性は普段の仕事のアウトプットで評価すれば良いだろうから、あとは気分を記録すれば良いだろう…

2020の振り返り

去年 作ったもの aereal/cdk-dynamodb-expression: DynamoDB expression builder for AWS CDK TypeScript (AWS CDK) tagged template literalでDynamoDBの式を書いたらexpressionとexpressionAttribute{Name,Value}を返す aereal/go-dynamodb-attribute-conv…

たいへんな仕事は仲間を募ると良い

重い仕事・比較的やりたくない仕事・とっかかりが見つからない仕事など、アサインされたけれどどうにもやる気が出ない仕事に出くわすことはしょっちゅうあると思う。 そういう時におすすめしたいのが「誰か一緒にやりませんか」とペアプロ・ペア作業相手を募…

Re: ネットワーク越しリトライ考

moznion.hatenadiary.com サーバが脆弱という意味では弱者だけれども、一方でreadinessとかの豊かな情報が欠けているという意味ではクライアントもか弱い存在で、このミスマッチが根本的に問題を難しくしていると思う 素朴なモデルだとクライアントは自身で…

ひどい目に遭いそうなところからテストを書く

blog.sushi.money 僕も最近は正常系から書くことが多いです。こうすると悪い設計に早く気付きやすいという利点があると感じています。 ここでは単体テストのような開発者向けのテストを想定していて、E2Eテストのようなテストでは必ずしも当てはまらないでし…

AWS CDKやGo関連で最近作ったものたち

cdk-dynamodb-expression aereal/cdk-dynamodb-expression: DynamoDB expression builder for AWS CDK AWS CDKでDynamoDBの式を書く時に便利なグッズ。 usageより: import { DynamoAttributeValue } from "@aws-cdk/aws-stepfunctions-tasks"; const builder…

やたらと短いエイリアスは使わない

Gitもシェル (zsh) もよく使うコマンドをエイリアスとして設定して任意の入力で呼び出すことができる。 このエイリアスについていくつか派閥があると感じていて、おおまかには: エイリアスをまったく使わない 入力の手間を減らすため極限まで短いエイリアス…

組織をプロダクトと捉えてみる

※組織の話は詳しくないので自信はないけれど、こう思ったという話を書きます ※現在の所属組織の社内ブログに書いた内容を一部修正して転載しています プラットフォームのプロダクトマネジメント メルカリのSREであるdeeeetさん (eは4つ) のこの記事が良かっ…

AWS API Gatewayのdocumentation partに関するメモ

Documentation part AWS API GatewayのREST APIはOpenAPIに準拠したドキュメントの生成もサポートされている *1。API GatewayのREST APIはリソースやメソッドなどの部品から成る。特別な定義なしでも、これらAWS上のリソースが持つ各種プロパティからデフォ…

ISUCON 10の予選に参加しました

id:masawadaとid:side_tanaと一緒にはやいTシャツ屋さんで参加しました。初期スコアが最高スコアでした。察してください。 チームでやった主なこと: New Relicの導入 Web Transactions SQL Logs デプロイ自動化 デプロイするたびにNew Relicのdeploymentsを…

AWS CDKとは何か、IaCの変遷を踏まえての紹介

概要 これまで業務・プライベートの双方でAWS CDK (Cloud Development Kit)というInfrastructure as a CodeツールをDeveloper Previewのころから着目し利用してきたので、その特徴を競合と比較しながら説明します。 概観を掴んでもらうことを目的とするので…

最高のアーキテクトになる

が、今後5年のテーマかなーと思いはじめた。ここでいうアーキテクトは「ソフトウェアの誕生から運用を通したライフサイクル全体を通して良い感じにするためにあらゆる手を尽して準備する役割」くらいの意味で言っている。 「ひどい目に遭わないよう準備する…

各チームの大小様々なやっていることを共有する会をやったら予想外に盛り上がった話

前職で掲題のような取り組みを提案して始めてみたら予想以上に盛り上がったので書いておく。かなり低コストに始められるので以下に書くような課題感を持つところではおすすめできると思う。 どんな会か 会の名前は「今月のホットトピックス」と銘打った。前…

go-sql-caller-annotation: GoでSQLに呼び出し元の情報をコメントとして埋め込む

Go

github.comというのを書いた。ご利用ください。スロークエリを解析する時に「このクエリ、アプリのどこから呼んでいるんだろう?」と調べたいことがよくある。 だいたい遅いクエリって長くて複雑だったりするのでいちいち横に縦にスクロールして全容を把握し…

退職する時に同僚からフィードバックをもらう

退職するにあたって、人事評価とかそういった枠組みをすべて取り払って去る自分に対して言い残したことがあれば伝えてほしいなと思い、自分がどう見えていたかをGoogle Formによるアンケートというかたちで同僚に乞い、ありがたいことにたくさん送ってもらえ…

心配ゴム用 (^ω^)ニニニニニつ ビヨーン

gyazo.com const buildBiyon = (max) => { let incr = 1; let count = 0; return () => { if (count === 1) { incr = 1; } if (count >= max) { incr = -1; } count = count + incr; return "ニ".repeat(count); }; }; (() => { const biyon = buildBiyon(5)…

Kiritoru: 見ているページをScrapboxでブクマをAndroidの共有メニューから簡単にできるように

scrapit.vercel.app……というのを作った。ソースコード: GitHub - aereal/scrapitblog.sushi.moneyPCのブラウザではこういうブックマークレットでブクマしている一方、Androidで見ている時にぱっとやる方法がなくて、ブラウザのブックマークに入れておき後でP…

イニシャルで特定される都道府県

anond.hatelabo.jpルール: ヘボン式に倣う 広域地方公共団体の区別はしない 大阪府なら大阪、広島県なら広島、とする (含めると都や道などが2020年現在で識別されてしまうため) 使ったコードは以下: #!/usr/bin/env ruby require 'abbrev' prefs = DATA.each…

AWS CDKアプリを作る時のテンプレートリポジトリを作った

AWS CDKの昨今 最近は仕事でもプライベートでもAWSのリソース配備にはAWS CDKを使っている。 ちなみに最近はCDK for Terraformが出るなど、AWSに限らないツールキットを指向している雰囲気があるので「仕事は {ここにAWS以外のクラウドプロバイダが入る} だ…

公開されたシンボルにJSDoc/TSDocを書くことをESLintでルール化したい

公開しているライブラリほどじゃないにせよ、チームで開発しているTypeScriptで書いたコードにちらほらドキュメンテーションしていきたい。 それESLintで とりあえず今までろくに書いていなかった部分はいまさっき書き足すPull Requestを作ったけれど、今後…

react-type-safe-render: 第二引数にnullを許容しない安全なReactDOM.renderの型定義を書いた

@types/react-domで `ReactDOM.render` の第2引数 (container) はnullを許容しており、`document.getElementById` の返り値の型に合わせているそう。 しかしランタイムがnullを許容しているわけではなくnullを渡すと実行時例外になる。TypeScriptを使ってい…

株式会社はてなを退職

2020年8月14日付けで退職する運びとなった。 入社が2012年なので勤続丸8年を迎え社内でも古株の方になってきつつある。Web業界にしてはわりと長くいたほうだと思う。 自分自身でもこんなに長く籍を置くとは思っていなかったので驚いている。退職を決めた理由…

JWEは毎回ランダムなInitialization Vectorを使用するので得られるトークンは毎回異なる

タイトルですべて言い切ってしまった。JWE (= JSON Web Encryption) にはInitialization Vectorというフィールドが含まれており、これは暗号化処理ごとにランダムな値が使われる。 なので、同じペイロード・同じ秘密鍵を使って暗号化しても暗号化したトーク…

cloud.google.com/goのリクエストがX-Rayでトレースできないので土日を潰して調べて完全に理解した

cloud.google.com/goはGo向けのGCPのAPIライブラリ。一部を除き単にHTTPリクエストを送っているのでX-Rayでトレースする *1 のは造作もないだろうと思ったら思いがけず難航し、だらだら調査していたら2日かかってしまった。詳しいメモと結論はScrapboxにまと…