# MH4GF / Hirotaka Miyagi / 宮城広隆 > Building [Liam ERD](https://liambx.com), Software Engineer at ROUTE06, inc. > Tokyo, Japan ## What I can do Web Frontend (React, Next.js) / Backend (Ruby on Rails, Go) / GraphQL / Cloud (AWS, Terraform) ## Work Experience ### [ROUTE06, Inc.](https://route06.co.jp/) - Current - 2022 - Software Engineer, Tech Lead - React, GraphQL, Rails, AWS ### [Bit Journey, Inc.](https://bitjourney.com/) - 2022 - 2021 - Software Engineer(Freelance) - React, GraphQL, Rails ### [DXER, Inc.](https://dxer.co.jp/) - 2022 - Software Engineer(Freelance) - React, Go, GraphQL ### [ResortWorx, Inc.](https://resortworx.jp/) - 2021 - 2020 - Software Engineer(Freelance) - Vue, Rails, AWS ### [Timee, Inc.](https://timee.co.jp/) - 2021 - 2018 - Backend Engineer - Rails, AWS ## Find me on - [X](https://x.com/mh4gf) @MH4GF - [GitHub](https://github.com/MH4GF) @MH4GF - [Zenn](https://zenn.dev/mh4gf) @mh4gf - [sizu.me](https://sizu.me/mh4gf) @mh4gf ## About ### 好む振る舞い この資料は、宮城広隆が「自身が働く上で良しとする振る舞い」を言語化しまとめています。 他の方に強制するものではなく、宮城と働くイメージをしやすくする用途を想定しています。 ### 取扱説明書 ref: https://github.com/konifar/about-me/blob/main/readme/取扱説明書.md ### MH4GF / Hirotaka Miyagi / 宮城広隆 | Social | Account | | ------------ | ----------------------------- | | X | https://x.com/MH4GF | | GitHub | https://github.com/MH4GF | | Bl... ## Articles - [AIエージェントの性能は導入後のチューニング継続量で決まる](https://mh4gf.dev/blog/ai-agents-win-by-continuous-tuning) - [Obsidian CLIをClaude Code hooksでさらに活用する](https://mh4gf.dev/blog/obsidian-cli-hooks-with-claude-code) - [Claude Codeのツール呼び出しを記録・分析し、ハーネスの自己改善をさせる](https://mh4gf.dev/blog/tool-use-steering-for-claude-code) - [Obsidian CLIでAIエージェントがObsidianをよりパワフルに操作できるようになった](https://mh4gf.dev/blog/obsidian-cli-with-claude-code) - [Claude CodeのPlanモードで、ステートマシン図を書かせたら仕様が明確化しやすくなった](https://mh4gf.dev/blog/plan-tools-state-machine) - [最近のClaude Codeでの開発フロー](https://mh4gf.dev/blog/2025-11-context-for-coding-agent) - [コードリーディングツールとしてNeovimを使い始めた](https://mh4gf.dev/blog/neovim-init) - [Rulens: Automating AI-Friendly Coding Guidelines from Your Linting Rules](https://mh4gf.dev/blog/rulens-introduction) - [このサイトで llms-full.txt を提供し始めた](https://mh4gf.dev/blog/llms-full-txt) - [2024年の振り返り](https://mh4gf.dev/blog/2024-summary) - [デスク裏にApple Magic Keyboardをマウントした](https://mh4gf.dev/blog/mount-magic-keyboard) - [DifyでのAPIアクセス実践 - Obsidianから呼び出しURL記事の要約をノートに保存する](https://mh4gf.dev/blog/generate-url-summary-with-dify-and-obsidian) - [Next.js App RouterでPagefindを使うときのあれこれ](https://mh4gf.dev/blog/pagefind-with-app-router) - [2024年にWebエンジニアがWordpressテーマ開発をした備忘録](https://mh4gf.dev/blog/2024-development-wordpress-theme) - [GitHub Scheduled ReminderによるCI失敗時の通知](https://mh4gf.dev/blog/github-scheduled-reminder) - [ワークチェアを手放し、ステッパーとスツールに移行した](https://mh4gf.dev/blog/stepper-and-stool) - [axe-core/playwrightとmarkuplintを導入しアクセシビリティの自動テストをできるようにした](https://mh4gf.dev/blog/axe-core-playwright-and-markuplint) - [TPS40 (GREY/SILVER DAISY) Build Log](https://mh4gf.dev/blog/tps40) - [Next.js App Router製ブログサイトでのツイートの埋め込み](https://mh4gf.dev/blog/embed-tweet-with-app-router) - [Biomeの個人スポンサーになった](https://mh4gf.dev/blog/sponsoring-biome) - [2023年の振り返り](https://mh4gf.dev/blog/2023-summary) - [Next.js App RouterでView Transitions APIの活用](https://mh4gf.dev/blog/view-transitions-api) - [github-nippou の Web 版を App Router + Go + Vercel で作った](https://mh4gf.dev/blog/github-nippou-web) - [2023 年 7 月にできた OSS コントリビュート](https://mh4gf.dev/blog/2023-7-oss-contributions) - [2023/7/9 キャリアの指向性(脳内メモ)](https://mh4gf.dev/blog/2023-7-9-thinking-in-career) - [ブログを Next.js App Router で構築し直した感想](https://mh4gf.dev/blog/rebuild-with-app-router) - [2023/2/17 キャリアの指向性(脳内メモ)](https://mh4gf.dev/blog/2023-2-17-thinking-in-career) - [2022年の振り返り 技術と仕事と生活](https://mh4gf.dev/blog/2022-summary) - [Kaigi on Rails 2022に参加・登壇しました](https://mh4gf.dev/blog/kaigi-on-rails-2022) - [GitHub CLIでよく使うコマンド](https://mh4gf.dev/blog/frequently-used-gh-commands) - [(internal) Testing Markdown Renderer](https://mh4gf.dev/blog/testing-markdown-renderer) ## External Articles - [【連載57】"パズル的思考"がキャリアをつくる──制約を楽しむエンジニア論](https://www.tech-street.jp/entry/2025/08/01/111851) - [Valibot Schema Driven UI - ノーコードWebサイトビルダーを実装してみよう!](https://talks.mh4gf.dev/20250524) - [AI生成コードの「70%問題」を突破するTypeScript Lintルール設計](https://talks.mh4gf.dev/20250519) - [sassc-railsを利用している我々は、Sassの@importの非推奨化をどのように乗り越えていくか](https://kaigionrails.org/2022/talks/mh4gf/) - [チームの性質によって変わる ADR との向き合い方と、生成 AI 時代のこれから](https://speakerdeck.com/mh4gf/how-to-deal-with-adr-depends-on-the-characteristics-of-the-team) - [Playwright でテストを書いててよかった!と思えた事例紹介](https://speakerdeck.com/mh4gf/playwright-detesutowoshu-iteteyokatuta-tosi-etashi-li-shao-jie) - [Why Surrogate Keys Win: A Practical Guide to Database Key Selection](https://liambx.com/blog/why-surrogate-keys-win) - [Getting Started with One-to-One Relationships in PostgreSQL](https://liambx.com/blog/getting-started-with-one-to-one-relationships-in-postgresql) - [PostgreSQL Materialized Views: From Basics to Practical Examples in Mastodon](https://liambx.com/blog/postgresql-materialized-views-from-basics-to-practical-examples-in-mastodon) - [Introducing Liam ERD](https://liambx.com/blog/liam-erd-introduction) - [Announcing Liam ERD Integration with tbls](https://liambx.com/blog/liam-erd-with-tbls) - [ER diagram viewable from mobile devices](https://liambx.com/blog/liam-erd-mobile) - [Liam ERDで綺麗でインタラクティブなER図を自動生成する](https://zenn.dev/route06/articles/liam-erd-introduction) - [Valibot Schema Driven UI - ユーザーがノーコードで自由に UI を組み立てられるエディタを Next.js と Valibot で構築する](https://tech.route06.co.jp/entry/2024/09/26/122250) - [jscodeshift + OpenAI API でソースコード内の日本語文字列を一括で翻訳する](https://tech.route06.co.jp/entry/2024/08/20/121720) - [チュートリアル: Yjs, valtio, React で実現する共同編集アプリケーション](https://tech.route06.co.jp/entry/2024/07/03/154219) - [Playwright - 高速なフィードバックにより0→1フェーズでも生産性に大きく寄与するE2Eテストツール](https://findy-tools.io/products/playwright/33/109) - [モノレポでマージキューと必須ステータスチェックを運用するためのTips](https://tech.route06.co.jp/entry/2024/06/12/121511) - [valtioに依存するReactコンポーネントをStorybookで表示する](https://zenn.dev/route06/articles/valtio-with-storybook) - [AWS Amplify Auth v6へのマイグレーションで対応した破壊的変更](https://tech.route06.co.jp/entry/2024/04/08/122004) - [urqlのDocument Cachingを安全に運用する](https://tech.route06.co.jp/entry/2024/03/13/134852) - [to B プロダクトで Vite + React Router を採用して半年後の感想](https://speakerdeck.com/mh4gf/impressions-after-6-months-of-using-vite-plus-react-router-e448b113-96f4-479a-adea-7d003e5d3fda) - [Playwright で一番小さく始める VRT と、次のステップの選択肢](https://speakerdeck.com/mh4gf/playwright-de-fan-xiao-sakushi-meru-vrt-to-ci-nosutetupunoxuan-ze-zhi) - [GraphQL成熟度モデルをROUTE06のtoBプロダクトに当てはめてみる](https://tech.route06.co.jp/entry/2024/01/29/120647) - [@storybook/testing-libraryのconfigure()はpreview.jsで呼び出す](https://zenn.dev/route06/articles/5a505fd0f471ab) - [VSCodeで閲覧しているファイルから、GitHubのコミット内のパーマリンクを取得する](https://zenn.dev/mh4gf/articles/4ff18b864ef359) - [GitHub Actions のみで、actions/cache も使わない最軽量の VRT](https://zenn.dev/mh4gf/articles/tiny-vrt-with-github-actions) - [GitHubのCODEOWNERSで一部サブディレクトリだけ別のオーナーを指定する](https://zenn.dev/route06/articles/codeowners-specify-different-owner) - [学習しながらアーキテクチャを進化させていくためのモノレポ](https://speakerdeck.com/mh4gf/xue-xi-sinagaraakitekutiyawojin-hua-saseteikutamenomonorepo) - [Amplify Hostingのプレビュー環境でパラメータストアの秘匿情報を取得する](https://tech.route06.co.jp/entry/2023/09/22/102742) - [pnpm workspace実践ノウハウ](https://speakerdeck.com/mh4gf/pnpm-workspaceshi-jian-nouhau) - [Plainのフロントエンドにおける技術選定(2023年8月版)](https://tech.route06.co.jp/entry/2023/08/08/115253) - [StoryBook v7.0 へのアップデートで非推奨になった型](https://zenn.dev/route06/articles/storybook-v7-deprecations) - [Amplify Hostingのプレビュー環境をGitHub Actionsでデプロイする](https://tech.route06.co.jp/entry/2023/06/30/120807) - [GitHub Actionsで実行するstorycap / reg-suit の高速化](https://tech.route06.co.jp/entry/2023/03/29/080000) - [ようこそMiyagi-san!](https://creators.spotify.com/pod/profile/route06-radio/episodes/Miyagi-san-e1uhamq/a-a99ql7p) - [GraphQL Code Generator v3 Roadmapで推されているclient-presetを紹介する](https://zenn.dev/mh4gf/articles/graphql-codegen-client-preset) - [graphql-codegenとzodのz.brandでCustom ScalarのNominal Typingを実現する例](https://zenn.dev/mh4gf/articles/nominal-typing-with-graphql-codegen-and-zod) - [graphql-rubyで入力値の柔軟なバリデーションを実現する@constraint directiveを導入する](https://zenn.dev/mh4gf/articles/graphql-ruby-constraint-directive) - [Next.js上のGraphQLクライアントから秘匿情報を安全に扱いつつAPIリクエストを行う](https://zenn.dev/mh4gf/articles/urql-client-working-with-credential-in-nextjs) - [Rails+Next.jsでGraphQLを導入する時に考えたこと](https://tech.timee.co.jp/entry/2022/09/29/110000) - [GitHub Apps / GitHub Actionsを使って別のリポジトリにファイルをコピーするPRを作成する](https://zenn.dev/mh4gf/articles/copy-file-to-another-repository) - [GitHub Container Registryへのdocker loginでGitHub CLIの認証情報を利用する](https://zenn.dev/mh4gf/articles/ff4a36eb2580a3) - [graphql-rubyで、queryだけのリクエストの場合リードレプリカに接続する](https://zenn.dev/mh4gf/articles/f3c606fce193f8) - [ActiveModelSerializersを利用しているRailsプロジェクトでgraphql-rubyを導入・共存させる](https://zenn.dev/mh4gf/articles/1110e9e962ad3f) - [dependency-cruiser-report-actionでPRの変更ファイルの依存関係を可視化してコメントする](https://zenn.dev/mh4gf/articles/12fcdcba14e576) - [フリーランスエンジニアになって半年が経った](https://note.com/mh4gf/n/n1f263fb3c4ee) - [[@svgr/webpack] Next.js / Storybook でSVGをコンポーネントとして扱う](https://zenn.dev/mh4gf/articles/64456281f65fbe) - [ProseMirror Guide(日本語訳)](https://zenn.dev/mh4gf/articles/d25ef1ff30b5a6) - [docker-composeで立ち上げているminioをvirtual-hosted styleで接続する](https://zenn.dev/mh4gf/articles/873e34b95bbbdf) - [2021年 ソフトウェアエンジニアとしてできたことと振り返り](https://note.com/mh4gf/n/nf131e1c3bc7b) - [2021年、在宅ワークで買ってよかったもの](https://note.com/mh4gf/n/n639f13c6a62b) - [「民藝の100年」を観に行った](https://note.com/mh4gf/n/n85ec2fd70fc7) - [code-serverを立ち上げた](https://note.com/mh4gf/n/n4c9bc6fcb9a6) - [モニターアームを黒に塗る](https://note.com/mh4gf/n/n443283dd240b) - [Vercel上のNuxt.jsで`Could not load Nuxt configuration.` が出た](https://zenn.dev/mh4gf/articles/674cfdcf1e5d89d75d09) - [株式会社タイミーを退職しました。](https://note.com/mh4gf/n/n901dafda3ffa) - [現在持っている技術の棚卸し 2021年](https://note.com/mh4gf/n/n678b2a5dfb89) - [M1 MacでDocker/Ruby on Rails/Go/Nodeの開発環境構築メモ](https://zenn.dev/mh4gf/articles/d917c809991808) - [2020年 ソフトウェアエンジニアとしてできたことと振り返り](https://note.com/mh4gf/n/n0831d457d2ee) - [新規事業の決済機能としてStripeを導入する上で考えたこと全て](https://tech.timee.co.jp/entry/2020/12/10/131108) - [Rails + RSpec + OpenAPI3 + Committeeでスキーマ駆動開発を運用するTips](https://tech.timee.co.jp/entry/2020/07/05/150312) - [RedashをFargate, Datadog, Terraformで構築/運用する](https://tech.timee.co.jp/entry/2020/04/20/175821) - [rubocop --auto-gen-config で、LineLengthのMaxを変更せず指摘に該当するファイルをexcludeする](https://qiita.com/mh4gf/items/4611f60aa99905686c84)