2 ポイント 投稿者 GN⁺ 2023-07-24 | 1件のコメント | WhatsAppで共有
  • ブログ記事を読んだあるセキュリティ企業から採用オファーを受け、IT職として入社することになった体験の共有
  • 自転車のヒルクライム中に偶然出会った CEO と技術・サイクリングの話でつながりが生まれ、その後SNSで連絡を取り続けた
  • 面接では 学歴・年齢・推薦状 を尋ねられず、能力とネットワーキングに対する考え方だけを評価された
  • 入社後は DevOps/SysAdmin としてデータセンター構築とネットワークプログラミングを担当し、Fortinet NS4資格を取得
  • 会社の要件に合わせて Grafana + Prometheus ベースのクライアント向けネットワーク機器監視システムを自ら構築

採用の背景と入社までの経緯

  • イタリアでは労働者の能力より資格・学歴のほうが重視されるという通念があり、雇用主は「何ができるか」より先に「どんな学歴・資格を持っているか」を尋ねる傾向がある
    • この記事はその通念を完全に覆すものではないが、同じ市民に少しの希望を与えることを目的としている
  • 自転車のヒルクライム 中、追い抜いた人物についていって会話しているうちに、彼がスポーツ分野に技術を取り入れる複数企業のCEOだとわかった
    • 彼はイタリア代表、Inter、Lazio などのサッカー選手のユニフォーム内に入る スマートセンサー を開発していた
    • デジタル権利と技術の重要性について似た考えを共有し、SNSで連絡を取り続けた
  • 数か月後、彼がブログ記事、特に "My network home setup - v4.0" を読んだあと、ネットワーキングを仕事にしたことがあるかとメッセージで尋ねてきた
    • 数日後、彼の友人(現在勤めている会社のCEO)から連絡があり、面接を提案された
  • 面接では学歴・年齢・推薦状は聞かれず、何ができるか、そしてネットワーキングやインターネットについてどう考えるかだけを質問された
    • 妥当な給与のよい契約を提示され、自分の力量不足への不安と別の採用オファーとの間で数日悩んだ末に受諾した
    • 勤務環境と同僚に満足しており、新しい技術の習得と経験を前向きに評価している

担当業務

  • DevOps または SysAdmin として働き、Fortinet NS4資格を取得、NS5も進行中
  • 会社の業務は、他社のデータセンターをゼロから構築または再構築することで、自分はネットワークプログラミングを担当している
  • 会社の他部門は 手作業 を担当
    • ケーブル認証、スイッチ配線、データセンタールーム/ラックの構築など
    • セキュリティ監視機器やVoIP電話機の設置も行う

監視システムの構築

  • ネットワーク業務以外に会社から求められたのは、クライアントのネットワーク機器向け 監視システム の構築
    • さまざまなハードウェアを監視し、問題発生時に通知を送信する
    • 例: サーバーのディスク容量逼迫、IP監視カメラのオフライン、WANパケットロスなど
  • 自宅ですでに使っていた Grafana + Prometheus の組み合わせを採用
  • Prometheusをデータベースとして使うのは難しい作業
    • 純正 exporter、SNMP exporter など各種 exporter が必要
    • すべてのカスタムGrafanaダッシュボードを自作しなければならない
  • PRTG や Zabbix のようなより簡単な監視システムもあるが、Prometheus + Grafana ほど完全にカスタマイズ可能で、柔軟かつ強力で、しかもオープンソースなものはない
    • Grafana に統合されたアラートシステムも利点として考慮した

ハードウェア構成

  • タイミング、ハードウェアコスト、遠隔運用を考慮してハードウェアエンクロージャとビジネスモデルを選定し、1つの19インチラックユニット の中にシステム全体を構築
  • ラックユニット内部の構成
    • WireGuard で構築したVPNを OpenWrt 搭載の Mikrotik 750 で稼働
    • Raspberry Pi 4B に Grafana と Prometheus をインストール(監視システム)
    • Raspberry Pi 3B に Pi-Hole と Unbound をインストール(プライバシー重視のDNSを提供)
    • 単一の外部電源供給のためのUSBハブ
    • 短いUSBケーブル
    • カスタムイーサネットポートとケーブル
  • ハードウェアにより詳しい同僚たちの助けで最初のユニットを完成させ、クライアントのラック内に設置
  • システム内部の部品は強力な耐熱両面テープで底面に固定

名称と電力効率

  • 会社名が SYSTI であるため、name + monitoring を組み合わせて SYSMI、Pi-hole DNS は SYSDNS と命名
  • Raspberry Pi ソリューションは非常に低消費電力で動作し(通常20W未満)、発熱もないため パッシブ冷却 が使える
    • 一般的な x86 サーバーの 150/200W 級システムとは異なり、クライアントの電気料金負担にならない

ダッシュボード画面

  • 最初のダッシュボード例として次の画面を提示
    • HA構成の Fortigate 2台
    • Synology(RS815+)
    • ESXi サーバー上の Windows マシン
    • 接続状態(connectivity)
    • Pi-Hole ダッシュボード
    • ルールの例
  • 問題発生時および解決時に送信される 通知メール
    • クライアント向けでは送信者が 'SYSMI' ではなくクライアント名で表示されるため、どのクライアントで問題が起きているか識別できる

結論

  • この環境での最初の取り組みを3〜4か月で完了し、とくにソフトウェア面では今後も大きな改善の余地がある
  • 最初のアプローチとしては、同僚の助けもあって満足できる結果だったと評価している
  • 今後はソフトウェアや、今後直面する問題・不便についてさらに書く予定

1件のコメント

 
GN⁺ 2023-07-24
Hacker Newsのコメント
  • 雇用主が「何ができるか?」よりも「どんな学位や経歴があるか?」を尋ねる問題は、CS学位を持たない人だけの問題ではない。
    大きく成長できなかった小さなスタートアップで働いた開発者も、大規模プロジェクトの経験がなければ見せられる実績や職歴に乏しくなり、実際の能力や仕事の質とは無関係に、報酬の低いポジションから抜け出しにくくなる。
    オープンソースや製品を作って証明しろとも言われるが、フルタイムの仕事と両立するなら、ほとんどすべての余暇を使うことになり、延々と自分を証明し続けようとして無理をする悪循環が生まれる。

    • 「小さなスタートアップ経験」があまり評価されないのは、エンジニアにとってほとんど別ルートのように感じられる。
      15年以上エンジニアとして働き、創業者として成功した買収も経験したが、FAANGの面接を取るのは難しい。一定規模への対応ツールを直接扱った経験や、部門横断プロジェクトを率いた経験がなければ、そうした経歴は大して意味を持たなくなるからだ。
      ジュニア以降の役割では経験そのものが価値の一部なので理屈は通るが、漠然と有能だというだけでは足りない。逆に、FAANG出身者がスタートアップに行って「とりあえず動くようにしよう」という考え方へ切り替えられなかった、という話もあるので、難しさは両方にある。
    • あまり人気のない「隣の芝は青い」的な意見かもしれないが、だからこそFAANGのLeetCode式面接には利点もある。
      時間とインターネットさえあれば、誰でもLeetCodeでデータ構造やアルゴリズムの経験を積めるが、実際の秒間トランザクション規模のスケーリングを一人で体験するのははるかに難しい。LeetCodeは人工的ではあるが、コードやインフラが時間・空間の観点でどうスケールするかを理解する能力は、ある程度測れている。
    • たいていのオープンソースプロジェクトも大規模ではなく、コントリビューターとして参加しても小さなパッチしか扱わないことが多いため、大規模経験とは見なしにくい。
    • そもそも大規模プロジェクトとは何で、なぜそれを実績と見なすべきなのかが分からない。
      不可能だと思われていた状況にある技術を適用する道を切り開き、世界最大級のプロジェクトや上場企業の雇用主の下でも働いたことがある。
      では自分は71万8千ドルのGoogleソフトウェアエンジニアなのか、それとも10万ドルのジュニアコーダーなのか? 法の曖昧さを利用して、最終的には活動を制限する新法まで作らせる能力には、いったいいくらの値を付けるべきなのか?
      Google、Facebook、Microsoft、Appleの創業者たちは皆、大学の学位なしで始めたが、最終的には上場し、活動を制限する法律まで生まれた。学位は就職を容易にする代わりに収入の潜在力を制限し、学位がなければ上場や規制立法を引き寄せる確率が高まるようにも見える、ちぐはぐな世界だ。
    • それだけでなく、エンジニアは技術スタックによっても固定される。
      企業、正確には採用担当者たちは、シニアエンジニアは別のプログラミング言語を学べないと考えているようだ。「強いGo経験」を求めるが、Goを使う職場で働かなければ、そんな経験を得る方法がない。
  • 以前このテーマで記事を書いたことがある: https://simonwillison.net/2021/Jul/17/standing-out/
    2012年に書いた技術記事が1本あるだけの古いブログでも、コーディングができ、文章が書け、技術的な問題を解決できることを示せるなら、採用の初期段階では今でも強いアドバンテージになる。
    採用で最初のフィルターは「この人は実際に仕事ができるか」であり、FizzBuzzもそれを見ようとしている。ブログ記事や古いGitHubリポジトリは、そのフィルターを飛び越えさせてくれる良い方法だ。

  • ほぼ20年間ブログを続けてきたが、収益化もしておらず、読者も多くなく、Googleからの流入も多くない。それでもかなり役に立った。
    2008年にiOS開発について書いたおかげでManningの編集者から声がかかり、本を書くことでフルタイムのiOS開発へ移る助けになった。
    FogbugzやCitydeskの拡張について書いた記事はFogcreek/Trelloへの応募に含めたが、それ自体で採用されたわけではなくても、面接を得る助けにはなったと思う。
    サイトを見た人たちから、カンファレンス登壇、ポッドキャストのゲスト、Smashingへの寄稿を依頼されたこともある。大きくはなくても少しずつ認知を高めてくれたし、30年以上のキャリアの中でブログはかなり大きな要因だったと思う。

    • 業界アナリストとして多くを書いてきたし、記事やブログもたくさん書いたが、おそらく長期の仕事を得るうえで決定的要因だった。
      間接的だったかもしれないが、その会社の人たちを知り、向こうも自分を知るようになった理由は、まさに文章を書いていたからだ。
    • ブログのリンクが気になる。
  • 現代のITには問題が多いと思う。毎日新しい技術があふれ出てきて、追いつくのは不可能で、言語・フレームワーク・ツールが多すぎる。
    25年働いてきた立場からすると、LinkedInの履歴書に10個や20個もの技術の「エキスパート」と書かれているのを見ると非常に懐疑的になる。現実的に不可能だからだ。
    その一方で企業は、複数分野の「グル」と長い経験を求めるが、これも非現実的な期待だ。
    ごく少数の天才を除けば、どの分野でも専門性を得るには、時間、プロジェクト、実務、そして多くの失敗が必要になる。実際の仕事では技術力だけでは足りず、学ぶ意欲、要件や制約に応じて技術を評価する能力、誠実さ、正直さ、自己管理能力、好奇心、独創性、論理力も重要だ。
    結局のところ仕事とは、すぐに古くなりうる1つのツールを完全に知ることではなく、技術、リソース、資金、時間の制約、人間関係のあいだでバランスを取ることなのだ。

    • 圧倒される感覚がある。現状維持のためにも走り続けなければならず、今では1つの言語のベストプラクティスを深く知ることよりも、壊れやすい設定ファイルの連鎖をつなぎ合わせることのほうが、ますます重要になっているように思える。
    • 労働者への圧力が強まるのは、企業が健全な社会のために足並みをそろえているからではなく、それが収益性につながるからだ。
  • 新しい仕事を得たのは祝うべきことだけれど、ブログやウェブサイトだけのおかげではなく、両方とも個人的なつながりが一緒に作用したのだと思う
    元の投稿では自転車に乗っていてCEOに出会い、彼が推薦してくれたし、私の場合は求人投稿が載ったコミュニティで積極的なメンバーとして築いた評判があった
    ブログは、CEOがあれこれ説明しなくてもあなたを理解しやすくしてくれたし、私にとってはコード例がその役割を果たした。考え方の合う会社には通じるが、別の発想を期待する会社にはむしろ不利になることもある
    最近もコミュニティでの評判のおかげで面接になったが、コードをぜひ見たいと言われた。見せられるのは15年ほど前かそれ以上前の、あまり知られていない言語のコードだけだった。最近の仕事は公開されておらず、会社のコードを個人の端末に保存していなかったからで、まだ返事は来ていない

    • 細かいフィードバックだけれど、文の始まりで大文字を使っていないので、少し読むのが遅くなって面倒だった
      内容は興味深く、最後まで読んで推薦もしたけれど、全部小文字だったので途中で読むのをやめそうになった。文頭を大文字にする習慣を勧める。単に「普通」だからではなく、人はそのほうが読みやすいと感じるので、それが標準になったのだ
  • 採用は本来こうあるべきだと想像するが、スケールするものではないと思う
    愛していて情熱を持てることをやっているうちに採用される形で、内発的動機は職人技への愛情から生まれる
    面接した多くのエンジニアは、採用プロセスをハックしようとしているように感じられた。大きな組織では面接を「突破」することが長期の仕事につながるかもしれないが、中堅企業やスタートアップではそれは始まりにすぎない

    • ああ、父親・庭師・芸術家・ビールを飲む人・ビデオゲームをする人としても技術職の給料がもらえたらいいのに
    • 同意する。このやり方は中小企業には向いているし、イタリアではほとんどの会社が中小企業なのだから、実際の知識に基づく採用が成長戦略の中心であるべきだと思う
      ところが現実は残念ながら、「知り合いの知り合い」だったり、「この紙が私にxyzができると言っているのだから証明は不要だ」という形の採用のほうが多い
    • プロフェッショナリズムとは、やりたくない日でもその仕事をすることだ
      どれだけ仕事を愛していても、退屈な作業やそういう日はいつでもあるからだ
    • ITを愛し、経験もあるが仕事がなく、私の環境では人種差別が状況をさらに悪化させている
  • Raspberry PiがmicroSDカードを食い潰す問題は多かった。6か月から1年以内に壊れるという具合だ
    しばらくはmicroSDで起動してからHDDに切り替えてしのいでいたが、どう対処しているのか気になる。より長持ちする特殊なmicroSDカードがあるのかは分からない

    • フラッシュストレージにはSLC、MLC、TLC、QLCがある。SLCはセルあたり1ビット、MLCは2ビット、TLCは3ビット、QLCは4ビットだ
      長持ちするものが欲しいならSLCカードが必要だ。Digikeyのような専門販売店や、一般流通チャネルの「Industrial」ラベル製品で見つけられるし、AmazonにもKingstonとSamsungの8GB産業用カードがある
      ただし容量は小さく、価格は高い。Pi向けではない一般的なディストリビューションを使うと、ログなどで書き込みが多くなることがあるので整理が必要だ。Piでいくつかの一般的なサービスだけを動かすなら、DietPiも見てみる価値がある
    • 標準的なフラッシュディスクはウェアレベリングを使うが、microSDカードには通常ない
      ドライブレコーダー、ボディカメラ、産業用アプリケーション向けに設計されたSDカードを見てみるとよい
    • 数年前にその問題を深く調べたが、多くのカードは書き込み中の突然の電源断に耐えられない
      解決策として見つけたのは、酷使に耐えるようファームウェアが設計されたATPのmicroSDカードだった。価格は3倍くらいになるようだ: https://www.digikey.com/en/product-highlight/a/atp/industria...
      今なら、もっと安くて丈夫な代替品があるかもしれない
    • 読んだ限りでは、良いmicroSDカードを使うことに加えて、電源ユニットが大きな違いを生むことがあるらしい
      Pi Holeを同じmicroSDで6〜7年動かしていて、一度ソフトウェアの問題で再インストールした以外は動き続けている。高耐久カードではない普通のSDカードだが、電源ユニットはadafruit製で、期間の大半はUPSにつないでいた
    • Raspberry Piを2台、何年も24時間動かしているが、microSDの故障は一度もない
  • 新しい仕事はおめでとう。ブログを読んでみて、本当にうまくいってよかったと思う。ただ、イタリア市場が厳しいという点には同意しにくい
    イタリアでは、まともな学位を取る苦労をするよりも、上に行く道をだまして通るほうがずっと簡単だ。私は実際にそうして、非専門職のコールセンターのアウトバウンド担当から10年以内に、評判の良いファッション業界の役員級ポジションにまで行った
    研究職や一部の高度なコンサルティングのように学位確認を強制するところを除けば、肩書きに十分な重みがあり、実績と適切な人脈が十分なら、学位証明を求められない可能性が高い
    初期のうちは適切な間隔で転職し、業界団体に参加して理事会にも入ろうとし、適した環境でブログをたくさん書き、知人を多く作り、難しい状況を無償で助け、技術をよく知る戦略家としてできる限り目立つのがコツだ
    適切なタイミングでは、積み上げた評判だけで最初の人事プロセスを通過できるし、後ろ盾が十分に有名なら誰も学位を尋ねない。いったんそうして通過すれば、その後は肩書きと名前の重みが前へ押し出してくれ、認知された権威を疑おうとする人はいない
    これを繰り返して肩書きと名前の重みが疑いようのないものになれば、すばやく上に行ける。海外でやるのは難しいが、イタリアでそうした肩書きを得れば海外でもやりやすくなる
    海外に出ようとしたとき、資格証明を求められて失敗したところもあれば、聞かれずにスイスやフランスの仕事を得られたところもあった。アングロサクソン圏の仕事は避けたほうがよい。実際に確認され、はったりがばれる可能性が高い
    最後の助言は、できるだけ高い年収を狙い、5年以内にインフレを何度も上回れるくらい頻繁に転職することだ。年15万ドルを超えると、学位を尋ねる人はほとんどおらず、年収・肩書き・経験だけが重要になる

    • 「イタリアの求職市場はそんなに悪くない。上に行く道をだまして通れるから」という話なのか。たしかに見方が変わる
  • 雇用主が「何ができるか?」よりも「どんな学位や経歴があるか?」を尋ねるのは、文化的な違いだと見ている
    イタリアの文化は階層的で、信頼は人間関係の上に築かれるため、良い履歴書の権威や良いネットワークがあるほうが機会を得やすい。南ヨーロッパではかなり一般的なやり方だ
    北ヨーロッパの人やアメリカ人などは、より平等主義的で、信頼を築く際に課題ベースのアプローチを取り、それに応じて人の価値を評価する。もちろん、常にここまで白黒はっきり分かれるわけではない

    • これは普遍的なことだと思う。別の読み方をすれば、結局は社会的なつながりと誰を知っているかの問題だ
      大学や学校の価値も、ほとんどは似た業界の人たちとの社会的なつながりを作ることにあると思う
      成功したいなら、より多くの人と意味のあるつながりを持つ必要があり、そうすれば機会は増える。方法がわからないなら、簡単な近道は何かを公開することだ。文章を書き、発表し、教えよう。1:1だけではすぐに広がらないので、一度に多くの人と接点を持てる機会を探すべきだ
    • Canada と USA の両方で働いたことがあるが、USA は「何ができるか?」に近く、Canada は「どんな資格や学歴があるか?」に近かった
  • 最近はブログを書いていない期間がもう10年を超えるが、以前はブログのおかげで出版契約を得たり、O'Reilly カンファレンスの議長を務めてほしいと依頼されたりもした
    興味のあるテーマでブログを書くことを誰にでも勧める。個人的な成長にも役立つし、適切な一人が読んで興味深い機会について連絡をくれるだけでも、十分に価値がある