私はその車を捕まえました。

2026/05/10 5:31

私はその車を捕まえました。

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

著者は、シニアなエンジニア称号を追うことからの哲学的転換を説き、興味深い技術的仕事に真の満足を見出すよう提唱している。「2 年で新人からシニアまで」という固定目標(メンターの激励に触発されて設定した)に基づき、著者は外部で検証可能なラダー(ASE → SE → SSE → Staff SE)を通じた急激な昇進を図った。この目標は、Specific(具体的な)、Measurable(測定可能な)、Time-bound(時間制約のある)という要素のほとんどを満たしているが、Relevance(関連性)に欠けており(SMART よりも SMT の側面が強かった)、幸運が決定的な役割を果たした:高視認性のプロジェクトへの携与、昇進を望むマネジャー、他者のメンタリングによる加速である。著者は 2 年目の時点では昇進申請書を提出したが、3 ヶ月後には「 shipping された小規模プロジェクトが不足している」という理由で却下され、その後感情的に再調整を行い、マネジャーとの間で年中サイクルの更新版計画に基づき、2026 年 1 月に Senior Software Engineer の称号を正式に獲得した。直ちに LinkedIn で発表した声明は、すぐに Slacks での更新へと移行し、これが著者を frustrate させた。報酬額は上昇したが、必要な多大な労力や尊重には追従しておらず、日常のコーディング、デバッグ、同僚関係、責任範囲は大きく変わらず留まっていた。初期的な昇進はエゴ驅動(自己中心的)であり益をもたらさなかったため、著者は組織的なマイルストーンよりも、複雑なバグを解決すること、「アハ!」瞬間を体験すること、チューティングによる成功、コミュニティとの関わりといった内在的報酬を優先するようになった。この経験は、実質的なスキル進歩を反映しない急速な昇進の価値を問う業界全体の傾向を浮き彫りにし、興味深い仕事、コラボレーション、コミュニティ、 Scholarship(学術的探究)、厳密さへの価値認識の再調整、そして組織図からの承認ではなく自己改善からの承認を求めるよう促している。

Text to translate:

The author advocates a philosophical shift away from chasing senior engineering titles toward finding genuine satisfaction in interesting technical work. Setting a fixation goal—"New grad to senior in two years" inspired by a mentor—the author pursued rapid promotion through an externally validated ladder (ASE → SE → SSE → Staff SE). This goal was analyzed as mostly Specific, Measurable, and Time-bound but lacking Relevance (more SMT than SMART), with luck playing a key role: high-visibility projects, a manager eager to promote, and mentoring others accelerated the push. Despite submitting a promotion packet at the two-year mark and being denied after three months due to a lack of shipped small projects, the author recalibrated emotionally and successfully earned the Senior Software Engineer title in January 2026 following an updated plan with the manager for the mid-year cycle. The immediate LinkedIn announcement was quickly followed by a slower Slack update, which frustrated the author. Although compensation increased, it did not match the immense effort or respect required; daily coding, debugging, peer relationships, and scope of responsibility remained largely unchanged. The initial advancement was ego-driven rather than beneficial, leading the author to prioritize intrinsic rewards like solving complex bugs, experiencing "aha!" moments, tutoring success, and engaging with the community over organizational milestones. This experience highlights a broader industry trend questioning the value of rapid promotions when they do not reflect actual skill progression, prompting a recalibration to value interesting work, collaboration, community, scholarship, and rigor—seeking validation from self-improvement rather than an org chart.

本文

2026 年 4 月 22 日

大学を卒業し、最初のソフトウェアエンジニアとしての役職についたのが 2023 年 7 月でした。その後、2 年半の時が過ぎた 2026 年 1 月に第二次の昇進を果たし、シニア・ソフトウェア・エンジニア(SSE)という称号を授かりました。この事実自体にブログ記事としての価値があるかといえばそれは未必のことです(ウーバーに入社したインハウスキャリアの IC が登壇する優れたポッドキャストを聴き、「25 歳でシニア」という話は非常に感動的でしたが)。ただ、自分の経験を共有したいという強い思いから綴ることにしました。

本稿の中で特に興味深い議論の一つは、キャリアの初期段階にあって「シニア」であることの利点に関するものですが、まず強調しておきたいのは、私のキャリアにおいて学ばなければならない難しい教訓がまだ山ほどあるということです。また、所属する会社は肩書きを安易に与えるような組織ではありません。採用された時期とは無関係な一般的な基準で判断しても、私がこの地位を獲得したことは確かです。次に注目すべきはその獲得方法であり、最も興味深いのは、それに対する私の感情です。本稿はこの点について記述いたします。

※注釈:私の会社における内部昇進制度が外部で知られている他の組織の制度とどの程度対応しているのかについては正確には把握しておらず、詳細な調査も手間がかかるため、ここではあくまで当社内の階層構造のみを記述します:

  • 関連ソフトウェアエンジニア(ASE)
  • ソフトウェアエンジニア(SE)
  • シニア・ソフトウェアエンジニア(SSE)
  • スタッフ・ソフトウェアエンジニア(Staff SE)
  • その他

固執心(Perseverance)

私が深く尊敬し、至今も慕っている優れたメンターがいました。在学中に同社でインターンシップに参加した際にその方と共働しており、現在もその方々の直下で働けることを幸運に思いしています。その方は非常に聡明であり、社内においてスタッフクラスとして期待される総合的な資質を備えておりました。私がインターンだった頃は SE レベル、本格的な業務を開始する頃にはちょうどシニア SE に昇進されていたばかりです。ご自身も卒業して二年目という若さでした。

その事実を知った際の私の最初の反応は、胸が高ぶり、誇らしさを覚え、深く感謝するといったもの(実際そうであったことを確認しました)でしたが、第二の反応は自分でも同じ目標を達成したいという渇望でした。それは極めて強烈なものでした。具体的には期間への執着へと結びついていきました。新卒からシニアまでの二年での到達は非常に急進的な歩みですが、私の場合、「なぜ私がそれができないのか」という思い込みがさらに悪化していました。彼を追いかけるつもりはありませんでしたが、彼は明確な基準を示してくれました。「彼ならできるのであれば、自分もできると信じるべきだ」。それが新たな目標となりました。それ以外の選択肢など何も見えませんでした。三年?五年?そんな期間設定などは全く不十分と感じていました。

不適切な目標

この目標を冷静に検証してみましょう:就職から二年以内に「シニア・ソフトウェアエンジニア」の称号を獲得すること。 これは SMART(Specific, Measurable, Attainable, Relevant, Time-bound)の原則を満たしていると言えるでしょうか?

  • 具体的(Specific)? はい、非常に明確で二値的な定義となっています。
  • 測定可能(Measurable)? はい、明確な評価基準が存在します。
  • 達成可能(Attainable)? 理論的には可能です。しかし、私のコントロール范围外の要素も含まれるため、この目標の本質的精神とは相反するかもしれません(つまり、技術的・実存的には「非」)。
  • 関連性(Relevant)? その対象は何か?より長期的な目標やコアバリューですか?記事の主題こそそこにあるべきですが、結論としては:いいえ、そうではありません。
  • 期限付き(Time-bound)? はい、あります。

つまり、これはむしろ SMT(Specific, Measurable, Time-bound)に近い……。残念ながら、私が最初にこの目標を抱いた時点ですら少しは気づいていたのです。「もしかしたら、“昇進に値する仕事”が割り振られないかもしれませんね」。あるいは現在の経済状況の下では昇進審査が極めて厳しく行われ、単に勤続年数(テニュア)を理由に意図的に弾かれる可能性さえあります。しかし私は頑固だったため、それを受け入れなければならないと決めていました。

短期間での昇進には最低限の幸運が必要です。私はいくつかの点で恵まれた境遇を得ておりました:

  1. 縁起のよいプロジェクト: 非常に重要な大規模プロジェクトがチームに突然割り振られ、締切が迫っていました。よりシニアなエンジニアたちは既に他の重要プロジェクトで手一杯だったため、主要なタスクは私に回ってきました。これを完璧に遂行し、期日通りに提出できれば、このプロジェクトを軸としたシニア昇進の打診を受けることは十分に可能でした。
  2. 好機を掴むマネージャー: 私の直接上司は人を昇進させるのが好きであり、議論を開き、最終的に挑戦することを快く受け入れました。同部署には全くそのような姿勢をとることのできない他のマネージャーがいることも知っていました。
  3. メンタリングの要件: シニアへの昇進には一定の指導(メンタリング)が義務付けられていますが、チーム内で教えを乞いたいと願うメンバーが何人かおり、私は彼らから学びました。

エゴ

二年目の年度サイクルが始まった頃、上司の方々と共に私の昇進の可能性を比較的高く見ていましたが、結果はいかに厳しいものであったか。昇進申請書類を提出し、決定待ちの日々を送った後、残酷にも三ヶ月が経過したところに、「昇進拒否」の通知が届きました。フィードバックとしては、「もう少し不足していた」という内容であり、技術的な能力に対して疑念は全くなく、「もう少し小さな規模のプロジェクトを数個リリースしてほしい」と助言されました。半年後の中間サイクルで再び挑戦するのは合理的な判断でしょう。

心の中で我に返ることができませんでした。 私にとって、二年か二年半かのわずかな違いは無意味でした——基準は既に設定されており、クリアできませんでした。「この昇進もまた追求すべきでしょうか?何を求めているのでしょうか?」 すぐに自分が少しばかり酷い人間であったことに気づきました。私は徐々に立ち直り、マネージャーと計画を立てて中間サイクルまでの準備を整えました。そして実行し、遂に昇進を果たしました。

はい、興奮しましたし、誇らしさも感じました。LinkedIn に投稿し、「自分はなんと素晴らしいか」「頭脳が明晰だ」と宣言し、知人から承認を得ようとしました。私のタイトルが Slack の表示に反映されるのに数週間かかったことは、私を狂わせるほど不快でした(実際にその遅れは憤りを買いました)。 自分を省察した人生を送るよう努めて以来、そのような称号をめぐる病理について少し恥ずかしいと感じ始めました。光沢が消え去ると、私は本当に自分や目標に対する進歩に意味のある方法とは異なるものを執拗に追いかけていたことに気づきました。

第一に、新しい肩書きに伴う報酬の上乗せはありましたけれども、それは追加の努力に見合うものではなかったのです。 第二に、日常業務に変更はありませんでした。依然として重要な範囲のプロジェクトを引き継ぎ、企画し、コーディングし、プロンプト作成し、デバッグし、ペアプログラミングを行いました。私が話している時には以前同様(少しすぎるかもしれませんが)人々は聴いてくれました。同僚たちの尊敬を既に獲得していたのに、なぜ組織図からの承認が必要だったのでしょうか?

非信徒にとってシニアエンジニアとは何か

おめでとうございます、あなたはシニア・エンジニアとなりました。では次にどうすればよいでしょうか?スタッフ職に就きましょうか?プリンシパルにはならないのでしょうか?CEO にはなりませんか?大統領になるべきではないでしょうか?神様にはなりませんか? (あなたという読者を想定して)かつてあなたがキャリアや学業で最も幸せだった時のことを思い出してみましょう。学位を授かった式典で、礼装を着た人物があなたにその証を与える瞬間ですか?教授がテスト結果の分布をプロジェクターに映し出し、あなたの点が最上位であることを認識した時でしょうか。これらの瞬間には良い気分や誇りを感じたかもしれませんが、本当に「幸せ」だったでしょうか?「満足」していたでしょうか?

私が満たされたと感じたいくつかの瞬間:

  • 長期間悩ませるひどいバグを解決した時: それは誰もが既に見てきた別のものと思っていたが、私は直感してそれが違うことに気づき、引きずり続けて正解を見出しました。デプロイ後にバグが修正されたことを確認したとき、涙が出るほどでした。
  • 大学時代 graph theory(グラフ理論)の証明に週単位で悩み続けた時: その証明を結びつける Aha! の瞬間を迎え、そこに喜びを感じました。
  • 数学個別指導をしていた時: 最初の試験で非常に悪い成績を取り家庭教師をつけられた生徒がいました。双方のスケジュールが合う唯一の七日の午前九時に週三回会い、高校時代から埋め込まれていた欠如を丁寧に発見し埋めるために教え込みました。長除法まで教えました。追加課題の一つは非常に難しく、泣いてしまうほどでした。彼女は期中試験で A を取り、最終的にクラスで B となりました。そのテスト結果の A を見た時の感覚——それはそれ以来、あらゆるプロフェッショナルな文脈において近づくことのできないほどのものでした。
  • 先月初旬のカンファレンス: 私は田舎に住んでおり、テクノロジー文化が存在せず、またリモートワークであるため同業者とつながる機会が希薄でした。数百人の実践者が集まり、ソフトウェアの技芸に関する異なる技術やアプローチについて対話や議論をする雰囲気の中で、「自分は見てもらえている」と感じました。

これからの未来において、私はこれらのことこそを求めています。いつスタッフ職に就任すべきでしょうか。それはもう関係ありません。毎日最善を尽くして仕事に取り組むので、最終的には肩書きも与えてください。しかし、方向性としては再調整が必要でした。「面白さのある仕事」「協働」「コミュニティ」「学術的探究」「厳格な態度」。これからの人生で私が感動を与えようとするのは自分自身のみです。

同じ日のほかのニュース

一覧に戻る →

2026/05/09 21:00

スイス・インターネット・アーカイブ

## Japanese Translation: インターネット・アーカイブは、デジタル保存とすべての知識への普遍的アクセスというミッションを設立者ブルースター・カールが 30 年前に定めた、独立した非営利財団としてスイスのセント・ガレンに本部を置く「Internet Archive Switzerland」を立ち上げました。このハブは、カナダやヨーロッパなどを含むグローバルネットワーク内で活動し、セント・ガレンに千年以上の学術的アーカイビングとイノベーションの伝統を持つことを活用して、レジリエントな地域図書館を創出します。初期の取り組みでは、危機にあるグローバルなアーカイブを保存すること、および現在の生成 AI の波に関連するデジタルコンテンツを収集することに注力します。重要なパートナーシップとして、ダミアン・ボース教授を率いるセント・ガレン大学工学部のコンピューターサイエンス学科との連携により、急速に進化する AI モデル向けの基準を確立する専門的な「Gen AI Archive」を設立します。これらの取り組みはさらに発展し、2026 年 11 月にパリで開催予定のユネスコ会議において、危機にあるアーカイブに対する保護方法について議論される予定です。実行責任者であるローマン・グリースフェルダー氏は、セント・ガレンが文化遺産に関して「安定性とイノベーションは両輪」と述べ、ユニークに安定性とイノベーションのバランスを維持していると指摘します。新しい財団は、より広範なグローバル使命に奉仕する地元のデジタル歴史保存にとって強力な先例を設定します。詳細は https://internetarchive.ch/ でアクセス可能です。 ## Text to translate: The Internet Archive has launched Internet Archive Switzerland, a new independent non-profit foundation based in St. Gallen dedicated to digital preservation and universal access to all knowledge—a mission established by founder Brewster Kahle 30 years ago. Operating within a global network that includes Internet Archive Canada and Europe, this hub leverages St. Gallen's thousand-year tradition of scholarly archiving and innovation to create a resilient regional library. Initial work will focus on saving endangered global archives and collecting digital content related to the current generative AI wave. A key partnership with the University of St. Gallen's School of Computer Science, led by Professor Damian Borth, will establish a specialized Gen AI Archive to set standards for rapidly evolving AI models. These efforts will be further explored at a UNESCO conference in November 2026 in Paris regarding protection methods for endangered archives. Executive Director Roman Griesfelder notes that St. Gallen uniquely balances stability with innovation, stating, "stability and innovation go hand in hand" regarding cultural heritage. The new foundation sets a powerful precedent for local digital history preservation serving a broader global mission, accessible at https://internetarchive.ch/.

2026/05/10 2:52

Show HN: Go で作成した、Clojure に似た言語を公開します。起動までの時間はわずか 7 ミリ秒です。

## Japanese Translation: Let-go は、Clojure に類似する言語のために設計されたバイトコードコンパイラおよび仮想マシンであり、同ファミリー内で最小で最も起動が速い選択肢を目指しています。コードを外部インフラストラクチャなしで動作するスタンドアロンのバイナリまたは WebAssembly アプリケーションに直接コンパイルします。主要なパフォーマンス指標には、約 10MB のバイナリサイズ、約 6-7ms のコールドスタート、低いアイドルメモリ使用量(約 14MB)が含まれ、これにより Babashka、GraalVM native、Joker、標準的な JVM 環境と比較して著しく小さく高速化しています。 このツールは、`core`、`core.async`、HTTP、JSON などのほぼすべてのコア Clojure ライブラリ(マクロ、プロトコル、トランスデューサー、永続データ構造など)をサポートし、標準的な `clojure-test-suite` の 95.4% を通過する強力な互換性を提供します。`core.async` チャンネル、HTTP サーバー、JSON/Transit、IO、およびバイナリプロトコル経由の Babashka pod の読み込み(データベース、AWS、Docker など)を含む「ボックスセット」機能をサポートしています。高度な機能としては、Go との相互運用性があり、Go アプリケーションへの埋め込みをサポートし、機能マッピングと双方向の呼び出しを可能にします。 展開オプションは柔軟です:ユーザーは Homebrew または Go モジュールを使用して自己完結型のバイナリを作成したり、ターミナルエミュレーションを含むブラウザ実行のための WebAssembly にコンパイルしたり、Emacs、VS Code、Neovim などのリッチなエディタサポートのための nREPL サーバーを利用できます。非常に効率的ですが、標準的な Clojure/Java ランタイムに見られる特定の機能(Refs/STM は atoms+channels で置き換えられ、Spec、`deftype`、読み込みタグ付きリテラル `#inst` など)は除外されています。 ## Text to translate: ## Summary: Let-go is a bytecode compiler and virtual machine for a language resembling Clojure, designed to be the smallest and fastest-starting option in the family. It compiles code directly into standalone binaries or WebAssembly applications that require no external infrastructure to run. Key performance metrics include a ~10MB binary with approximately 6-7ms cold starts and low idle memory usage (~14MB), making it significantly smaller and faster than alternatives like Babashka, GraalVM native, Joker, and standard JVM environments. The tool offers robust compatibility by supporting nearly all core Clojure libraries (including `core`, `core.async`, HTTP, JSON) and features like macros, protocols, transducers, and persistent data structures, passing 95.4% of the standard `clojure-test-suite`. It enables "batteries included" functionality with support for `core.async` channels, HTTP servers, JSON/Transit, IO, and Babashka pod loading (e.g., databases, AWS, Docker) over a binary protocol. Advanced features include Go interop, allowing embedding in Go apps with feature mapping and bidirectional calls. Deployment options are flexible: users can create self-contained binaries via Homebrew or Go modules, compile to WebAssembly for browser execution with terminal emulation, and utilize an nREPL server for rich editor support (Emacs, VS Code, Neovim). While highly efficient, it excludes certain features found in standard Clojure/Java runtimes, such as Refs/STM (replaced by atoms+channels), Spec, `deftype`, and reader tagged literals like `#inst`.

2026/05/10 6:46

リスト風の Rust

## Japanese Translation: RLisp は、Rust のパフォーマンスと安全性を享受しつつ、LISP の S 式構文の可読性をもたらすための独自のソリューションを提供します。`rustc` を介して直接ネイティブバイナリにコンパイルされるため、ランタイム環境やガーベジコレクターの使用は不要となり、所有権、借用、ライフタイム、ジェネリック、トレイト、パターンマッチングなど、Rust のコア機能を完全にサポートしています。インストールは簡単で、GitHub リポジトリをクローン(`git clone https://github.com/ThatXliner/rlisp.git`)し、`cargo install --path .` を実行するだけです。このツールには、LISP ファイルを変数化するためのコマンドラインユーティリティ(`rlisp compile`)、ビルド(`rlisp build`)、実行(`rlisp run`)が組み込まれています。開発者は非対応の機能のために生の Rust コードをそのまま使用するために `(rust "...")` フォームを採用でき、マクロは Runt のプロシージャルマクロに依存せず、`(quasiquote)`、`(unquote)`、`(unquote-splicing)` などの慣れ親しんだ LISP 構造体を利用してコンパイル時の変換を実行できます。`&rest` でキャプチャされた可変引数は `unquote-splicing` を使用してマクロ出力に平坦化できます。言語は `(while ...)`、`(loop ...)`、`(for ...)` などを含む標準制御構造と解像度付きイテレータをサポートし、型注釈を受け取る typed クロージャ(例:`((x i32) (y i32)) -> i32`)および引数を明示的に移動するための `move` キーワードを提供します。可視性修飾子は Rust の慣習に従います(`pub`、`pub(crate)`、`pub(super)`)。このプロジェクトは MIT ライセンスでリリースされており、マクロ開発を簡素化し、バランスの取れた括弧の構造的編集を可能にし、Rust セマンティクスを低い構文障壁で提供することを目的としています。

私はその車を捕まえました。 | そっか~ニュース