ソフトウェアエンジニアの在宅勤務(WFH)環境

軟體工程師的 Work From Home 環境

最近、パンデミックの影響で在宅勤務を導入する企業が増えていますが、私が勤めているLINE株式会社(日本)でも2月末から在宅勤務が始まりました。それに伴い、快適な作業環境を整えるために、自宅での作業効率を高めるための設備を次々と購入しました。この記事では、筆者が在宅勤務で使用している設備やその使用感などを紹介します。様々な理由で在宅勤務をすることになった読者の皆さんの参考になれば幸いです。 記事の構成 本記事では、各種設備を以下の4つのカテゴリーに分けて紹介します: 1. コンピュータ関連 2. ビデオ会議関連 3. エンターテインメント関連 4. その他 中には個人の趣味で購入した、一般的な在宅勤務には不要かもしれない設備もありますが、本文中では代替案も簡単に紹介します。 コンピュータ関連 使用設備: MacBook Pro 13インチ Dell U2718Q 4K モニター LG 27GL850-B QHD モニター Amazonベーシック モニターアーム Realforce for Mac 87キー キーボード ノートパソコンまたはデスクトップPC 優れたノートパソコンやデスクトップPCは、作業効率を大幅に向上させます。特にソフトウェアエンジニアにとって、テストやコンパイルの際に性能の良いコンピュータがあれば、かなりの時間を節約できます。 筆者は会社から支給されたMacBook Pro 13インチを使用しており、コーディングには十分な性能です。ほとんどのコンパイルやテストなどはクラウド上で行われるため、実のところパフォーマンスの問題による影響はそれほど大きくありません。 もちろんMacは少し高価ですが、会社からノートパソコンが支給されている場合は別途購入する必要はありません。もし自分で購入する場合でも、SSD搭載で2万台湾ドル程度のノートパソコンやデスクトップPCがあれば、一般的な用途には十分です。 モニター エンジニアにとって、1〜2台の大きなモニターは必須です。通常、コーディングの際には一台にコードを表示し、もう一台に参考資料を表示することで、画面を切り替える手間が省け、作業効率が向上します。筆者は27インチに慣れており [...]

Stax SR-009BK/SRM-727A 開封レビュー

Stax SR-009BK/SRM-727A 開箱

ソフトウェアエンジニアとして、コーディング中に良いヘッドホンがないなんてあり得ませんよね?というわけで、技術とは全く関係のない、世界限定180台のStax SR-009BKと静電型ヘッドホンアンプSRM-727Aの開封レビューをお届けします。 前書き パンデミックの中、家で退屈していたので、いろいろな通販サイトを眺めていたところ、Fujiya-Avicにたどり着き、また物欲が湧いてきました。なんと009BKがあり、しかも009より少し安かったのです…。前回D8000 proを試聴して以来、ヘッドホンをアップグレードしたいという思いがずっとあり、ついつい手が滑って727Aの整備済製品と一緒にポチってしまいました。 開封 そして昨日、自宅でZoom会議の真っ最中に、突然チャイムが鳴りました。急いで同僚に荷物が届いたと伝え、受け取りに行きました。クロネコヤマトが届けてくれたのは、中身がわかっている大きな箱です。 余談はさておき、会議が終わってすぐに開封しました。 009BKの外箱: 箱の中には木箱が入っており、持ち上げると意外なほど軽かったのですが、外観は非常に質感が高いです。 箱を開けて中のスポンジクッションを取り出すと、009BK本体が現れました。 手に入れたのは限定180台中の178番でした。 外観は非常に高級感があり、工芸品のレベルです。 727Aの外箱は比較的シンプルで、一般的な段ボール箱でしたが、開けるとすぐに本体が入っていました。 早速電源に繋いで試聴開始です。 感想 曲目: Eagles: Desperado, The Last Resort いきものがかり: SAKURA, YELL [...]

日本のLINEで3ヶ月働いてみた感想

日本 LINE 工作三個月心得

様々な縁があり、2019年末に日本に来て、2020年1月に入社した後、日本で3回目の給料を受け取ることになりました。大学卒業後、兵役を経て新卒として入社したため、長い間文章を書いていませんでした。最近はパンデミックの影響で在宅勤務(Work From Home)になり、自由な時間が増えたので、初めての、そして初めての海外勤務の感想を記録しておこうと思います。本記事では、主に日本での生活3ヶ月間の感想を、仕事だけでなく、仕事終わりの休日やレジャー生活も含めてお話しします。 なぜ日本のLINEを選んだのか 大学4年生の時、縁あってLINEにインフラエンジニア(Infrastructure Engineer)の空きがあることを知り、コミュニティの仲間に受けてみないかと誘われました。当時はGoogleの正社員登用プロセスもまだ終わっていませんでしたが、経験として面接を受けてみるのも悪くないと思いました。詳細な面接プロセスについては、こちらの記事「LINE Tokyo 面接体験記」を参考にしてください。まさか合格するとは思っておらず、当時は台湾の彰化にあるGoogleのオファーとどちらにするか非常に悩みました。最終的に、LINEの方が貯金できる額は少なく、既存の友人関係からも離れることになりますが、仕事内容と将来のキャリアの発展性を考慮して、LINEへの入社を決めました。 仕事の文化 LINEの仕事文化は、毎日スーツを着て、上司に絶対服従し、仕事帰りには上司の飲みに付き合うといった、個人的なイメージの中にある伝統的な日本企業とは異なり、むしろ外資系に近い感覚です。エンジニアは基本的にスーツにネクタイで出勤する必要はなく、同僚たちは皆カジュアルな服装で出勤していますし、退勤後に上司と飲みに行く接待もありません。 勤務時間はフレックスタイム制で、打刻は必要ですが、基本的には裁量労働制です。ほとんどの同僚は11時頃に出勤しますし、家庭の事情で外出できない時は在宅勤務も可能で、非常に自由です。ただ、私たちのチームには仕事人間が多いようで、退勤後もプルリクエストを送ったりメッセージに返信したりしている人を時々見かけますが、私個人は緊急事態でない限り、退勤後に会社の仕事を処理することはほとんどありません。 同僚との交流・コミュニケーション 同僚間のコミュニケーションは基本的に英語がメインです。チーム13人のうち7人が日本人ではないため、日本語ができない心配もありません。日本語ができない最大の欠点は、時々日本人の同僚と世間話をするのが難しいことくらいですが、チーム内の台湾人や中国人の同僚とは中国語で話せます。また、会社は無料の日本語、英語、韓国語講座を提供しており、興味があれば申し込んで参加することができます。 同僚同士の仲は非常に睦まじく、質問をすれば非常に快く答えてくれますし、一緒に解決策(solution)を探してくれます。同僚の考えを聞くことで、思いもよらない解決策が見つかることもあります。 職場環境 LINEの職場環境は非常に快適です。「LINE Fukuoka 職場環境」の紹介を参考にしてみてください。写真がいくつか掲載されていますが、東京オフィスも基本的には同じような感じです。一人一人にかなり大きな電動昇降デスクが与えられ、椅子はアーロンチェア(Herman Miller Aeron)です。ほとんどの人が2台の [...]

Calicoの基本アーキテクチャ紹介

Calico 基本架構介紹

Calicoは純粋なL3のデータセンターネットワークソリューションであり、KubernetesやOpenStackと非常に優れた親和性を持ち、Kubernetesでよく使われるCNIの一つでもあります。この記事では、Calicoの基本コンポーネントとアーキテクチャについて紹介します。 基本コンポーネント Calicoは以下の独立したコンポーネントで構成されています: Felix:各エンドポイントで動作するCalicoエージェント。 Orchestrator plugin:Calicoを異なるオーケストレーターに統合するためのコード。 etcd:データの保存に使用。 BIRD:ルーティング情報を配布するBGPエージェント。 BGP Route Reflector:大規模なネットワーク環境で必要となるルートリフレクタ(RR)。 以下、これらのコンポーネントを一つずつ紹介していきます。 Felix Felixは、エンドポイントを提供する各ホスト上で動作するデーモン(daemon)であり、多くの場合、VMやコンテナが動作しているホストを指します。Felixはルート設定やACLなどの機能を担当しており、基本的にはホスト上でネットワーク接続を提供するために必要な設定を受け持ちます。 プラットフォームによって、Felix [...]

RDMA over Commodity Ethernet at Scale – 論文解説

RDMA over Commodity Ethernet at Scale – 論文導讀

在上一篇文章 RDMA Overview 中簡單了介紹了一下 RDMA 這個技術,這次將為 Microsoft 在 2016 年 SIGCOMM 發表關於他們資料中心大規模應用 RDMA 所撰寫的論文 RDMA over Commodity Ethernet at Scale 做簡單的導讀。 Abstract Over the past one and half years, we have been using RDMA over commodity Ethernet (RoCEv2) to support some of Microsoft’s highly-reliable, latency-sensitive services. This paper describes the challenges we encountered during the […]

RDMAの概要

RDMA Overview

Latency problems are harder because the speed of light is fixed; you can’t bribe God —David Clark 近年來網路頻寬雖然大幅提升,kernel 處理封包的能力卻沒有顯著提高。為了更進一步提高頻寬跟降低延遲,RDMA 和 DPDK 等技術出現,跳過了 kernel 直接處理 packet。本篇將會介紹現今 RDMA 相關的技術,比較,以及一些問題。 High Level Overview RDMA 技術基本上都是把 transport layer offload 到網卡上,避免使用 kernel 做封包處理,把 CPU 從 critical path 中拿除。顧名思義,這可以讓設備直接寫入其他設備的虛擬記憶體,在可控制的環境中達成 10 毫秒左右的傳輸延遲。但是傳統的 RDMA 有兩個很大的缺點: 需要支援 RDMA 的 lossless network,也就是 Infiniband 因而需要在環境中額外放 Infiniband […]

LINE Tokyoの面接体験記

LINE Tokyo 面試心得

因緣際會之下在社群朋友的介紹下得知 LINE 有在找 Private Cloud 的 Infrastructure Developer Engineer。剛好 LINE 也使用 OpenStack 並且正在導入 Kubernetes,是我本身經驗比較多的領域,也即將在 2019 大學畢業,就抱著就算沒有上也能增加經驗的想法投了履歷。目前也已經面試完畢並且拿到 offer,決定來寫一篇介紹一下 LINE 面試過程以及一些心得給有興趣加入 LINE 的人參考。 面試內容 職缺:インフラ開発エンジニア(Private Cloud プラットフォーム) 翻譯成英文大概是 Infrastructure development engineer (Private Cloud platform) 面試方式:Skype Pre-test 面試前會有一次簡單的 pre-test,裡面會有幾題簡單的 coding 題目。寫完後後面會需要提供一些資訊,包括對各種 coding 相關 tool 的熟悉度,跟一些面試原因等很基本的問題。大概花個一個小時左右就能夠寫完了,不過寫到的內容後續面試可能會被問到,要注意一下。 第一次面試 第一次面試會是工程師來面試,問題的內容會比較 technical 導向。面試的問題就我來說基本上都是履歷上寫到的經驗,不過我的部分可能比較沒有參考價值,因為我經驗大多都注重在 OpenStack 上面,又因 LINE 的 private cloud 也是用 OpenStack 建的,因此大部分內容都是 […]

Podman の紹介

Podman 介紹

Podman 曾經是 CRI-O project 中的一部分,後來被分離出成為一個獨立 project, libpod。Podman (Pod Manager) 的目標是提供一個跟 Docker 相似體驗的 container CLI,提供給使用者創立和運行 container。 開始之前 我們先來唸一段 All System Go Replacing Docker with Podman 中演講的一段宣言 I promise To say container registries rather than docker registries I promise To say container images rather than docker images I promise To say containers or OCI containers rather than […]

CephとOpenStack – ベストプラクティス 第2部

Ceph and OpenStack – Best Practices Part II

上個禮拜介紹了 Ceph and OpenStack – Best Practices Part I,而這次要接續之前的建議再多介紹幾個 Ceph 跟 OpenStack 整合的最佳實踐。額外使用這些設定可以更加的整合 OpenStack and Ceph。 使用 RAW Image 在前一篇 Ceph and OpenStack – Best Practices Part I 中介紹了 RBD 本身有 layering 的功能,不過這個功能是有些限制的。上傳到 OpenStack 的 Image 必須是 RAW 格式才會利用到 RBD layering。所以會建議所有上傳上去的 image 都先轉成 RAW 格式。透過 qemu-img 指令可以很容易的轉換各種格式: qemu-img convert image.qcow2 image.raw 之後將 RAW 格式的 image […]

Ceph と OpenStack – ベストプラクティス 第1部

Ceph and OpenStack – Best Practices Part I

CephとOpenStackは、今やIaaSにおいて定番の組み合わせとなっています。2017年6月〜12月のOpenStack User Surveyによると、全OpenStackデプロイメントのうち、57%がCinderバックエンドとしてCeph RBDを使用しています。当然、CephをOpenStack GlanceやCinderのバックエンドとして使用する際には、設定で調整可能なベストプラクティスがいくつか存在します。本記事では、これらの調整方法と、なぜその設定を行うのかについて紹介します。Glanceでshow_image_direct_urlを有効にしてCeph RBDを使用する場合、デフォルトでRBD Layering機能が有効になります。これは、読み書き可能なスナップショットのようなものだと考えることができます。これにより元のイメージのクローンが作成され、Cephは元のイメージと異なる部分のRADOSオブジェクトのみを作成します。これには2つのメリットがあります。スペースの節約 — 元の[...]に対して異なる部分のみが作成されるため