はてなで働くエンジニアにアンケートシリーズ第23回は、Mackerel開発チームのアプリケーションエンジニア、id:lufiabbに話を聞きました。
- アドベントカレンダーの盛り上がりを機にオフィスを訪問
- 所属チームの枠を超えた「Goサブ会」で知見を共有
- リモートワーク主体のため会話の機会を多くすることを意識
- 初めてのユーザーインタビューで事前にしっかり準備した
- 「相手の“気になり”を理解」してから話をする
アドベントカレンダーの盛り上がりを機にオフィスを訪問
── Q1. はてなidとその由来を教えてください
『エストポリス伝記』というゲームの海外版タイトルの一部+ bb
が由来です。もともとゲームの攻略情報を掲載していたサイト用にドメインを取ったのですが、estpolis
で取ると怒られるかなと思って、より一般的な名前だった海外版のタイトルにしました。
初めてドメインを取ったのがうれしくてずっと使っていたところ、ある程度広まって変えづらくなったので、今でも使っています。後ろの bb
は、lufia
というはてなidが取れず、キー入力しやすい場所の文字を適当につけただけで、特に意味はありません。
── Q2. いつどんなきっかけで入社されましたか?
入社は2018年12月ですが、知り合いだったid:yashigani_wさんからそれよりだいぶ前に「カジュアル面談を受けてみないか」と誘われていました。当時はコロナ禍より前だったので、はてなが主催していた勉強会などにも参加していて、技術力の高い人が多くて印象が良かったですね。
直接のきっかけは、Mackerelのアドベントカレンダーが盛り上がっている様子をとても好ましく思っていたので、話を聞いてみようと京都オフィスへ遊びに行ったことです。ランチを食べながら技術の話ができて、とても楽しかった記憶があります。
所属チームの枠を超えた「Goサブ会」で知見を共有
── Q3. 現在の仕事を教えてください
Mackerelチームで、MackerelのWebコンソール、外形監視やAWS/Azure/GCPインテグレーションの背後で動いているクローラ、mackerel-agentなどOSSとして公開しているコンポーネントの開発をしています。
Mackerelチームでは、それぞれのメンバーが得意な領域はあるものの、フロントエンドやバックエンドなどの領域を分けていません。なので、以前はReactでMackerelのコンソール画面を作っていました。最近は、Azureインテグレーションのメトリック取得部分で使っている従来からのazure-sdk-for-goのうち一部がEOLとなるので、新しいバージョンへのアップデート対応などに携わっています。
GitHubで公開しているOSSにissueやPull Requestが届いた場合は、修正やレビューなどもしています。
チーム外の活動では、昨年夏ごろに「Goサブ会」が発足したので、id:stefafafanと2人で会のオーナーをやっています。「サブ会」とは所属チームの枠を超えた集まりのことで、他にはScala、SRE、セキュリティ会などがあります。
Goサブ会では、Goに関連する社内外で話題の記事やアップデート情報などをキャッチアップし、社内へ知見を共有しています。また、Goを使った開発をするうえで迷わないような下地作り(テンプレートリポジトリの作成など)を行っています。
リモートワーク主体のため会話の機会を多くすることを意識
── Q. チーム内の立ち位置を教えてください
アプリケーションエンジニアの一人として活動しています。チーム歴も長くなってきましたし、ここ1年半ほどはエンジニアリングメンター制度のメンターを受け持っていますので、なるべくチーム全体を見るように心掛けようとはしています。
── Q. 1日の仕事の流れを教えてください
だいたい10:00から10:30あたりから活動を始めます。12:00までは特に予定がなければ自分のタスクを進める時間ですが、まずはGitHubを眺めてコードレビューすることが多いかもしれません。12:00から1時間は、エンジニア3名のメンターを任せてもらっているので、毎日1on1の枠として確保しています。毎日は多いかなとは思うのですが、リモートワーク主体となったので、会話の機会を多くすることを意識しています。
午後の流れはその日によりますね。定例ミーティングはそれほど抱えていませんが、最近はチームでタスクに取り組むことが多いので、何人かで集まって仕様について会話したり、ペアプロで開発を進めたりします。
初めてのユーザーインタビューで事前にしっかり準備した
── Q. 最近うまくいったことは何ですか?
昨年(2022年)11月ごろ、Mackerelのユーザーさんへのインタビューを実施させていただきました。個人的には業務としてインタビューするのは初めての経験でしたし、せっかく時間を取ってもらっているのに途中で話題が尽きたら申し訳ないなと思っていたので、事前にインタビュースクリプトをしっかり用意しておきました。
いろいろと話してくれるユーザーさんだったというのが大きいとは思いますが、終わってみれば用意していた時間いっぱいを使って、どのようにMackerelを使っていてどんな課題があるのかも伺えました。インタビュー結果をふまえて新しい企画なども立てられているので、初めてにしてはうまく立ち回れたんじゃないかなと思います。
もうひとつ、Azureの仕様でAPIから取得したリソース名などの大文字小文字がブレることに気付かず実装してしまったことにより、同じリソースが複数登録されてしまう問題がありました。長くなるので詳細は省きますが、この対応で必要になったAPIを普段でも便利なものに落とし込めたし、「何が問題でどういった対応方法を検討したか」をドキュメントに残せたので、負債ではあるけどその中でもうまくやれたかなと思います。
── Q. 最近うまくいっていないと感じることは何ですか?
やりたいことはいろいろあるのに、手が足りなくて、なかなか思うように動けていないところでしょうか。ベロシティを超えてタスクが積まれることはないので、タスク量としてはしんどくないのですが、困っているユーザーさんがいることが分かっているのにすぐに対応できていない点については心苦しさがあります。
特に今の時点では、
- Azureインテグレーションで新しいAzure SDKやAPIに追従できていない
- OpenTelemetryでMackerelへメトリックを投稿するときにタグをうまく扱えない
の2つはずっと頭の隅にあります。とはいえ、どちらも改善の計画はあるので、来年の今頃はもう少し気が楽になっているかもしれません。
「相手の“気になり”を理解」してから話をする
── Q. 普段大切にしていることは何ですか?
普段、Mackerelチームのメンバーとして振る舞うときは、相手の意見を理解することを一番大切にしています。
今のはてなではリモートワークが主流となっていて、便利ではあるけれども意見がぶつかった際などに難しさがあるなと感じます。どうしても自分の意見を言いたくなる時はあるのですが、各メンバーそれぞれで良いと思うことを言っているはずです。なのでまずは、話を聞いたり質問したりなどを通して、相手の“気になり”を理解した上で、話をするようにしています。
他にも細かいところでは「人の話に割り込まない」「ネガティブな感情を表に出さない」ことや、リモート会議をするときはオフィスにいるとしても、リモートの人が見ているだけにならないようなるべく自身の端末から参加するなど、相手が不快にならないように気をつけています。
── Q. はてなはどんな会社ですか?
優秀な人が多く、フラットな会社だということでしょうか。チーフ、シニア、テックリードといったロールは存在しますが、どの立場であってもプロダクトに対して自由に参加できます。
Mackerelチームの話でいえば、最近はid:yset0さんがOSS周りやAzureインテグレーションのクローラを見通しよくリファクタリングしてくれたりとか、 id:azukiazusaさんが強いモチベーションでアクセシビリティ関連の改善をしてくれたりなどがあって、いい環境だなと好ましく思っています。
はてなのWebアプリケーションエンジニアには、自分の担当サービスに積極的に関わっていく姿勢が求められます。技術の進歩のスピードが速いこの業界では、品質の高いコードを書くだけでなく、新しい技術へのキャッチアップも必須。技術はエンジニアの共通言語であり、他職種と連携するための道具です。技術に対する向上心を持つ仲間を募集しています。ご連絡をお待ちしております!
▼ Webアプリケーションエンジニア職 転職・中途 - 採用情報
▼ Webアプリケーションエンジニア職 新卒採用 - 採用情報