Available for senior full-stack & platform rolesシニアフルスタック/プラットフォームポジションを検討中
Shogo Komori (Born: Shogo Hida)小森翔吾(旧姓 樋田)
Senior Full Stack Engineer · Go & TypeScriptフルスタックエンジニア(Go / TypeScript)
I build production cloud services and distributed systems — from an enterprise GHG-emissions analytics platform to AI-driven incident response that cut diagnosis time by 50%. 5+ years shipping in Go and TypeScript, with hands-on ownership across the full SDLC.温室効果ガス排出量分析基盤の構築から、診断時間を50%短縮したAI駆動のインシデント対応まで、本番運用を前提としたクラウドサービス・分散システムを構築しています。Go・TypeScriptでの実務経験5年以上、開発の全工程にオーナーシップを持って携わってきました。
Senior full-stack engineer with 5+ years building production cloud services and distributed systems, with deep expertise in Go and TypeScript. Proven record designing scalable, event-driven architectures on AWS, delivering 40% performance improvements through systematic optimization. Experienced sub-team lead with hands-on ownership across the full SDLC — from architecture design and CI/CD to incident response and documentation. Contributed 10+ merged pull requests to major open-source projects including Kubernetes, PyTorch, and Hugging Face Transformers. Native Japanese speaker, fluent in English (IELTS 7.5) — thrives in multicultural, high-autonomy environments.
5年以上の実務経験を持つシニアフルスタックエンジニア。Go・TypeScriptを主力言語とし、AWS上でのスケーラブルなイベント駆動アーキテクチャの設計、体系的な最適化による40%のパフォーマンス改善など、確かな実績を持つ。開発チームのサブリーダーとして、アーキテクチャ設計・CI/CDからインシデント対応・ドキュメント作成まで、SDLC全体にオーナーシップを持って従事。Kubernetes・PyTorch・Hugging Face Transformersなど主要OSSプロジェクトへ10件以上のPRをマージ。日本語ネイティブ、英語ビジネスレベル(IELTS 7.5)——多文化・高い自律性を求められる環境を得意とする。
02 · Career02・経歴
Experience職務経歴
Jul 2023 – Present2023年7月 – 現在Zeroboard Inc., Tokyo
Full Stack Software Engineer & Development Team Sub-Leaderフルスタックエンジニア/開発チームサブリーダー
Architected and deployed a cloud-native Green House Gas(GHG) emissions analytics platform for enterprise clients like Toyota Motor Corpotation using a Go/GraphQL backend with Clean Architecture (1,500+ LoC), TypeScript/Vue.js frontend, and MySQL. Shipped to production with zero defects in 3 months, processing environmental data at scale.
Built an emissions estimating system in Go processing historical data for Mitsubishi UFJ Financial Group, owning the full product lifecycle from stakeholder demos through QA to production within a 6-month deadline.
Optimized system performance by 40% through systematic load profiling and MySQL indexing / query optimization.
Led a solution-engineering sub-team (2 direct reports) through 100+ production incidents, holding biweekly 1-on-1s for growth coaching and progress tracking; designed CloudWatch + Datadog monitoring with custom metrics and alerts, achieving a <1-hour incident response SLA.
Enforced Clean Architecture, testing, and security-first standards across 300+ pull requests; mentored junior engineers.
Pioneered AI-driven DevOps: deployed Claude AI for automated bug investigation and alert analysis, cutting mean time to diagnosis by 50%.
Drove climate-tech impact — built scalable platforms enabling enterprises to measure, track, and reduce carbon emissions, directly supporting global decarbonization.
Partnered directly with Customer Success and enterprise clients like Toyota, Mitsubishi and Sofbank to understand business problems firsthand and translate them into technical specifications, driving a customer-centric development style from discovery through delivery.
Nov 2021 – Jun 20232021年11月 – 2023年6月Cykinso Inc., Tokyo
Software Engineerソフトウェアエンジニア
Delivered 3 full-stack healthcare products end-to-end across consumer and B2B segments using Ruby on Rails, React, and AWS (EC2, RDS, S3), owning complex technical decisions in a high-ambiguity startup environment.
Designed RESTful APIs and multi-tenant healthcare data schemas with role-based access control.
Implemented CI/CD pipelines and automated testing frameworks for reliable deployments.
Researcher研究員 — Mitsui & Co. Global Strategic Studies Institute株式会社三井物産戦略研究所Jun 2019 – Nov 20192019年6月 – 2019年11月
Political & Economic Affairs Specialist政治経済担当専門調査員 — Embassy of Japan in Guatemala在グアテマラ日本国大使館Feb 2016 – Feb 20182016年2月 – 2018年2月
03 · Independent Work03・個人開発
Featured Projects個人プロジェクト
Independent projects that turn specific claims from my resume into runnable, tested code — or, where noted, prove systems fundamentals in their own right.職務経歴の実績を動くコードとして再現・証明するため、あるいは注記のとおりシステムの基礎そのものを証明するために作った個人プロジェクトです。
GHG Compliance RAG SystemGHG規制対応 RAGシステム
A retrieval-augmented QA system over GHG Protocol, CSRD/TCFD, and internal emissions-accounting documents — every answer cites its source.
Role-based access control by department, Recall@K search-quality evaluation, and IP rate limiting for public deployment — extends the climate-tech domain expertise from Zeroboard into a standalone, production-minded system.
When an alert fires, it gathers logs, deploy history, and metrics, hands them to an LLM, and returns a structured root-cause report — before a human opens a dashboard.
A from-scratch, open-source generalization of the Claude-driven bug-investigation system I built and ran in production at Zeroboard, cutting mean time to diagnosis by ~50%. Runs free on local Ollama or on the Claude API; the public demo runs the same system prompt against a small in-browser model via WebLLM.
A replicated key-value store built on a from-scratch implementation of the Raft consensus algorithm — leader election, log replication, and persistence — with a live browser demo of elections in action.
Production experience with distributed systems doesn't automatically prove consensus-level reasoning. This is a correct, tested implementation of the algorithm behind etcd, Consul, and CockroachDB.
Push every post to followers' feeds at write time, or compute the feed on demand at read time? A synthetic 8,000-user network with a handful of celebrity accounts turns this textbook trade-off into a measured one — push cost spikes with follower count while pull and the hybrid real systems use stay flat.
System design interviews ask this exact question — push, pull, or hybrid — almost every time. This doesn't diagram the answer; it measures the real write/read cost against a graph shaped like the problem, and a test proves the three strategies never disagree on content, only cost.
A minimal S3-like object store built from scratch: consistent hashing places every object on a ring of storage nodes, and Dynamo-style sloppy quorum reads/writes — no leader, no single point of failure — keep it durable and available even when nodes fail. Live browser demo of the ring, replication, and a node-failure drill.
`raftkv` proves the other half of this problem — a leader and consensus guaranteeing strict order. Real object stores like S3 and DynamoDB bet the opposite way: no leader, durability from quorum overlap instead. This implements and tests that side of the trade-off, including the proof that killing a node doesn't lose data.
A minimal EC2-like fleet manager: instances (small/medium/large) get placed onto hosts by a best-fit bin-packing scheduler, and killing a host triggers a real relaunch attempt elsewhere — the fleet self-heals when capacity allows, and honestly reports what it couldn't save when it doesn't. Live demo of packing, host failure, and best-fit vs. round-robin placement measured side by side.
`raftkv` and `objectlab` are both about keeping the same data alive across replicas. Compute scheduling is a different problem: placing variably-sized, mutually-exclusive workloads onto capacity-constrained hosts efficiently — the algorithm family behind Kubernetes, Nomad, and Borg. This measures that trade-off directly: best-fit packs strictly more instances onto the same hosts than naive round-robin placement, proven against real launch sequences, not asserted.
Run a query unindexed and watch it scan; add the suggested index and rerun the same query to see the plan flip to a search — plus a natural-language-to-SQL panel that runs entirely in your browser, no server-side model or API key.
The reproducible version of a résumé claim — "40% performance improvement via load profiling and indexing" — that a visitor can trigger themselves, not just read. The AI panel runs client-side via WebLLM/WebGPU so the public demo never calls a metered LLM API.
Paste CREATE TABLE DDL plus a sample of real rows and it empirically detects normalization violations — a non-key column silently repeating the same paired value across rows — then suggests the table split that fixes each one. A bundled scenario injects a new requirement into a naive schema and its normalized twin side by side, so you can watch one absorb it cleanly and the other reintroduce the redundancy.
The design-time counterpart to sqllab's runtime query optimization — the reproducible version of a real lesson from a Zeroboard emissions dashboard: columns that turned out to be missing had to be added later, and the table needed renormalizing once that redundancy became a real problem. The AI panel explains findings the deterministic analyzer already made — it never invents violations of its own — and runs client-side via WebLLM/WebGPU like sqllab's.
Three fictitious new customers, each with a differently-shaped GHG data export — English, Japanese, category codes needing a lookup table — mapped by the same deterministic engine onto one canonical schema. It scores every mapping on header-name match and value shape, and flags exactly what it can't be confident about instead of guessing.
The reproducible version of "partnered directly with Customer Success and enterprise clients to translate business problems into technical specifications" — the Forward Deployment motion of turning someone else's messy export into a working, customized fit before assuming the platform is generic enough to work as-is. A bundled discovery-call note per customer, and a client-side WebLLM panel that explains (never invents) how that note resolves a flagged ambiguity.
A hybrid static-analysis + Claude AI tool that flags Clean Architecture violations — forbidden imports, layer boundary breaks, mixed responsibilities — as GitHub PR comments or via an MCP server for Claude Desktop.
Deterministic checks (imports, dependency direction) run as free AST analysis; only judgment calls that need real understanding go to the LLM. Turns "300+ PR reviews enforcing Clean Architecture" into reusable tooling.
A full-stack Instagram clone — signup/login, image posts, a following-based feed, likes, comments, 24-hour stories, direct messages, and notifications — built end to end on Go, Echo, and GORM.
Unlike most of the other cards here, this one isn't reproducing a single résumé line — it's reproducing the *stack*. My résumé lists "Backend & APIs: Go (Echo, Gorm)," and this app exercises that stack across a full multi-resource, auth-gated surface, the shape of real product work rather than a single-concept demo.
他の多くのカードと違い、これは特定の実務経験ではなく「技術スタックそのもの」を再現するプロジェクト。職務経歴書の「バックエンド・API: Go (Echo, Gorm)」という記載を、認証付き・複数リソースにまたがるフルCRUDの実プロダクトに近い規模で実証する。
GoEchoGORMReactTypeScript
Delivery Dispatch Optimizer配送ディスパッチ最適化
A same-day delivery dispatch problem — modeled on Amazon last-mile and Rakuten EC logistics — solved by chaining four algorithms: Dijkstra shortest paths over a congested road grid, bin packing for truck loading, nearest-neighbor + 2-opt for routing, and greedy time-window scheduling.
A naive load-order route and the fully optimized route run side by side over the identical truck assignment, with a step-by-step 2-opt swap animation — the optimization is watchable, not just a before/after number.
A transformer inference engine built from scratch in pure Go — no PyTorch, no ONNX Runtime, no cgo. The forward pass, a KV cache, int8 weight-only quantization, and a decode-only continuous batching scheduler, running a real Llama-2-architecture model.
Not tied to a résumé line — this one's aimed at the systems fundamentals a Google/Amazon/Meta-tier infra interview actually probes: why a KV cache is provably correct, not just faster (tested, not assumed); why attention can't batch like a feed-forward layer; why quantization is a real memory/compute trade-off. The benchmark panel reports live-measured tokens/sec across five configurations, including an honest result a hand-wavy writeup wouldn't show: int8 quantization saved memory but didn't clearly win on speed, since this Go implementation has no SIMD int8 path.
A Flutter mobile app for tracking a dog's health records, weight history, and GPS-logged walks — backed by a from-scratch Go API (`dogapp-api`) with JWT auth, Postgres persistence, and Claude-powered photo/video health checks.
Full-stack, end to end: the Flutter client and Go API are separate, independently tested repositories talking over a hand-specified JSON contract — EN/JA localization and a live GPS walk tracker (Haversine-computed distance) on the client, JWT-secured owner-scoped access control and bcrypt password hashing on the server. Auth tokens live in secure storage rather than plain SharedPreferences, and a rejected token triggers an automatic logout instead of failing silently — the kind of detail that only shows up once you're running something like this for real, not demoing it.