そーだいなるらくがき帳

そーだいが自由気侭に更新します。

データモデルのイベントの期間の設計のコツ

アプリケーションを開発するときに期間を表すデータを扱うことは珍しくない。 例えばイベントの開催時間、タスクの予定時間などである。 実際にイベントの開催をDBに保存する場合によく見るテーブルは以下のようなものだろう。 CREATE TABLE events ( id SER…

行動する技術 - ネクストアクションの極意

学ばないとAIを活用できる人とそうでない人の差が広がる、という話を前回書いた では、実際に学ぶためにはどうすれば良いのだろうか。という話を今回はする。 soudai.hatenablog.com 今回の大きなテーマは内省のサイクルを回すために必要なネクストアクショ…

AI時代になぜ人が学ぶのか

来週、学生たちに向けて『AI時代に学ぶ意味』というテーマで講演を行う予定で、その要点をここにまとめておく。 AI時代に学ぶ意味 概ね、理由は以下のとおり。 良い質問をするために知識が必要 AIの出力を評価する 抽象的なアドバイスを活用する これらを実…

一年の計は元旦にあり ~ 2026年版 ~

ここ数年、決意表明の場としての記事を書けていなかったので、今年は紅白を聴きながらこの記事を書いている。 完成する頃には2026年になっているだろう。 2026年にやること 筋肉量を維持したまま減量 事業を成長させる 単著を出す inputのやり方を変える 格…

2025年に読んで良かったと思う本

この記事はそーだいなるアドベントカレンダーの4日目の記事です。 adventar.org 今年はKindleベースで262冊が既読。 結構漫画アプリに移行した作品も多いけど、昨年よりも38冊多いペースで読めた。 そこで今年読んで良かったと思う本をいくつか紹介する。 サ…

2025年のふりかえり

今年の振り返りをまとめる。 この記事はそーだいなるアドベントカレンダーの25日目である。 adventar.org アウトプットについて 昨年がこちら。 ブログ 15本 登壇 36回 続・商業誌書いた PostgreSQLカンファレンスやった PostgreSQLアンカンファレンスをやっ…

グループキャンプで語り合うためのポイント

この記事は「キャンプ×エンジニア」アドベントカレンダーの20日目です。 adventar.org 定期的にエンジニア仲間とグループキャンプをしています。 グループキャンプはソロキャンやファミリーキャンプとは違った楽しさがあります。 ということで今日はエンジニ…

実績は土台を作って意思決定で積み上がる - AI時代に崩れないキャリアの築き方

最近、1on1で同じ話を何度かしたので、ここに整理して残しておく。 生成AI・LLMが当たり前になりつつある今、「これから自分のキャリアをどう築けばいいかわからない」という相談を受けることが増えた。 新卒から自分と同世代*1まで、悩みの種類は違っても不…

組織は意思決定しない、意思決定は人がする。

組織は意思決定しない。意思決定するのはいつだって組織の中にいる"人"だ。 という話をすることがある。そのときに下記の記事を思い出した。 組織は意思決定しない。意思決定するのは組織の中にいる"人"だって話を書いた名ブログを見たことがあるのだけど、…

言語化のコツ - AIも人間も5W1Hで上手くいく

5W1H(Why/What/Who/When/Where/How)は、日常のコミュニケーションやプロジェクトの設計・開発に有効な普遍の型です。 さらに、AI(LLM・エージェント)とのやり取りでも威力を発揮します。 過去にもテキストコミュニケーションのコツとしてSBIモデルコミュ…

DBリファクタリングにおける戦略と実践方法

成長で肥大化したDB負債を安全に解消するための戦略選定から実践的な手法までを紹介。 方針策定から観測・自動テスト・整合性チェック、トリガー/生成列/アプリ/CDC/キューまで実践手順を解説。

コードを読む、コードを書くの最初の一歩目 ― 目の前の「知らない」と向き合って成長する

ソフトウェアエンジニアとして仕事を通じて成長するコツを書く。 前回、やや抽象的な話を書いたので、今日は実際に自分がやってきて 効いた具体的 な方法を紹介する。 soudai.hatenablog.com 若手やこれから伸びたいエンジニアに届けば嬉しい。 目の前の「知…

ユーザーにとって、理由や背景は関係ない - 『だって仕事でしょ』と『所詮仕事でしょ』

若手との1on1でよく話す内容を、備忘も兼ねてここに残しておく。 「だって仕事でしょ」と「所詮仕事でしょ」 仕事への向き合い方には、大きく2つのベクトルがある。 「だって仕事でしょ」 仕事なのだから、やるべきことをやるという立場 「所詮仕事でしょ」 …

Microsoft MVP for Data Platformを受賞しました

9度目のMicrosoft Most Valuable Professional for Data Platformを受賞しました。 Azure Database for PostgreSQLというわけで1年間、PostrgerSQLのアウトプットが評価されました。 この1年はPHPカンファレンス名古屋でベストトークを獲れたり、PostgreSQL …

3年目のCTOと1年目のCOOを振り返る

リンケージのCTOになって3年目、さらに去年の10月にCOOも兼任するようになった。 それを踏まえたふりかえりを書く。 # 前回 soudai.hatenablog.com やってきたこと 前回のブログの続きになるが、CTOというよりはとにかくなんでもやる係だった。 その結果、…

頑張らなくてもいいから、成果で応えよう

自分がよく言うんだけど、ちゃんと意味を説明してないとすげーパワハラワードに見えるのでちゃんと説明する。 頑張らなくていいんで結果で答えてくれる?— そーだい@初代ALF (@soudai1025) 2024年11月23日 頑張らなくてもいい 「もっと頑張ってよ」って言われ…

GithubのCopilot Agentで便利ツールを作った

週末にやった感じ、GithubのCopilot Agentがかなり良かったので感想を書く。 前提 今回作ったツールで似たようなやつはいっぱいあって、llm ってやつが便利なんだけどPythonだし、重厚過ぎてちょっとしたことに入れるにはハードルが高いし、Serverには入れに…

PHPerKaigi 2025で感じた登壇者の世代交代

先日開催されたPHPerkaigi 2025に一般参加*1し、技術コーチしている先のメンバーの登壇を支援する機会がありました。 それを通じて、今回感じた感想は「登壇者の世代交代」です。 顧問先のブログはこちら。 techblog.cartaholdings.co.jp 今回特に目を引いた…

PHPカンファレンス名古屋2025でベストトークを獲ってきた

どうも @soudai1025 です。 初めての名古屋開催のPHPカンファレンス、最高でしたね。 大成功のイベントだったと思います。 自分も 久々のベストトーク賞を獲ることができて、感無量です。 ということで懇親会までの待ち時間で感想戦を書きます。 CfP戦略 今…

PostgreSQL Contributorになった

表題のとおり、PostgreSQL Contributorになりました。 グローバルでの貢献が認められたということで、素直に嬉しいです。 コントリビュータに名前が載ることになりました! https://t.co/vzqCPmRQV0— そーだい@初代ALF (@soudai1025) 2025年1月28日 PostgreS…

2024年のふりかえり

今年の振り返りをまとめる。 アウトプットについて 昨年がこちら。 ブログ 10本 登壇 37回 商業誌書いた PostgreSQLカンファレンスやった PostgreSQLアンカンファレンスをやった 今年の結果がこちら。 ブログ 15本 登壇 36回 続・商業誌書いた PostgreSQLカ…

PostgreSQLで時間枠を適切に扱う設計

はじめに Googleカレンダーのような時間枠を扱うシステムを設計する際、開始・終了時刻を管理するロジックは容易ではない。 しかし、PostgreSQLには 範囲型 があり、この機能を活用することで、開始時刻(begin_at)と終了時刻(end_at)を1つのカラムで扱え…

履歴テーブルから最新の1件を取ってくる方法

例えば次のようなテーブルがあったとする。 -- PostgreSQL CREATE TABLE history ( id SERIAL PRIMARY KEY, user_id INTEGER NOT NULL, data TEXT, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); -- MySQL CREATE TABLE history ( id INT AUT…

仕事を任せるコツとやり方

チームで仕事を進めるうえで、仕事を任せるというのはとても重要だ。 そうしないと事業はスケールしないし、マネージャやリーダーはチームのボトルネックになってしまう。 そこで自分が仕事を任せるうえで大事にしていることを書く。 1タスク単位の話からプ…

朝食から学ぶアジャイル開発

失敗から学べることがアジャイルの本質。 最近学んだのでホテルの朝食ビュッフェからアジャイル開発を伝授する。 ビックバンリリースを避ける バイキング形式であるあるなのだけど、初手で取りすぎて後から食べようと思ったデザートなどの余力が残せない。 …

テキストコミュニケーションのコツ

これは元々社内ブログの記事なんだけど、テキストコミュニケーションについていろんなところで話すことが多いのでここに残す。 結論 背景をしっかり整えてから本題を説明するようにしよう 省略しない お互いのスコープやフォーカスを最初に整理する 仮説と事…

理想の自分を演じることで、理想に近づく

X*1で反響があったので記事にする。 もし、自分がプログラマー人生をやり直すときに1冊だけ本を読ませることができるなら、やっぱこの本を自分に勧める。今はWebでも読めるのでみんなにも読んでほしいな。https://t.co/6ueWEWUB3J pic.twitter.com/c468Szbm8…

40歳になるので30代でやってよかったことをまとめた

来週で40歳にあるので30代の振り返りとしてこれを書く。 そんな30代を全力で走ってきた中で、これは30代でやってよかったな。 もっと早くやってもよかったな。というようなことを書く。 最初に行っとくと一般的にやったほうが良いということは基本的にやった…

Microsoft MVP for Data Platformを受賞しました

8度目のMicrosoft Most Valuable Professional for Data Platformを受賞しました。 この一年は例年のように登壇したり、PostgreSQLアンカンファレンスを相変わらず1年間続けたりしましたが、特にオフラインのイベント登壇が多かったですね。 更にそれに追加…

JSONのフォーマットが正しいのにphpでjson_decode()できないときはBOMを疑う

表題の件で深夜にハマったのでメモとして残す。 JSONとしても正しくてもBOM付きのファイルからJSONを読み込むとエラーになる 結論としてはUTF-8+BOMのファイルは json_decode() の際にBOMのせいで失敗する。 保存するときにBOM無しのフォーマットを指定する…