seri::diary

日常

「社内での評価」にこだわるか「自分の満足」を優先させるか問題

現職に入社してから1年と6ヶ月が経った.自分が同じ会社に1.5年勤務しているというのは割と長い方である.ただ,この間何も変化がなかった訳ではなく2回のチーム異動があったりもした.しかし今後も特になにもない限りは現職で勤務を続けるつもりである.

それとは別に,ここ数年ずっと悩み続けている問題がある.それは普段の自分の労働において「社内での評価」と「自分の満足」のどちらを優先するかという問題である.

平たく言えば,昇進するために我慢してでもやりたくないことをやるか,自分が価値があると信じる行動を優先するかという問題である.なぜこのような問題について悩み始めたかというと,社内での評価を気にせず仕事をしていると給料が上がらなくなってきたと感じ始めたからである.自分としては大きな成果を出せたと思った期でも評価がパッとしないことが増えた.先に断っておくと,これは現職の評価制度が問題という訳ではなく前職からである.少なくとも20代の頃は何もしなくても給料が年々伸び続けたのでこのようなことを考えたことがなかった.より正確には「社内での評価」なんてものを考慮する余裕すらないぐらい目の前の業務をこなすのに必死だったり夢中だったりしたからだと思う.それでも結果的にどんどん自分ができることは増えたし給料も増え続けたので悩むことはなかった. しかし30代半ばになってきた辺りから状況が変化してきた.評価面談の度に「自分の手応え」と「社内での評価」にgapを感じるようになってきた.自分としては「このObjectiveのこのKR達成のためにこのような貢献をした」だったり「こういう取り組みをして社の開発生産性向上に貢献した」という具体的なactionを示すことができてはいたものの,そのactionに対する自己評価が「社内での評価」とは悪い方にズレるケースが増え始めた.はっきり言えば「給料が思ったように上がらない」状態である.

この事象の原因について,ずっと原因を自己分析をしてきたり歴代のマネージャと議論してきたが,今のところ明確な原因と対策は分かっていない.逆に明確な原因が分かるとしたらそれは現職の人事評価制度がリバースエンジニアリングされているということになるのでそれはまずいのだが,自分が次の期の評価のタイミングで「社内での評価」を上げるためにどうしたらいいのかが分からないでいる.

そもそも自分は「社内での評価」をこれ以上上げたいのだろうか?先に現職での立ち位置を雑に説明しておくと,Management roleではなくIndivisual Contributor roleのSoftware Engineerとして社に所属しており,今のところManagement roleにシフトするつもりは特に無い.社員ladderはそれなりに高い方に来ているがまだ上のladderがある段階である.そのような立ち位置の人間に会社から求められている事と,自分のSoftware Engineerとして進みたい方向にズレが来ているという可能性がある.可能性がある,というよりはほぼ確信している.だから,マネージャから求められていると思われるactionを増やして社内での評価を意識的に上げるか,今の評価を維持し続けられるならヨシとして現状維持をするかを悩んでいる.前者なら,一例として,普段の自分の業務においてProject / Product managementに近い仕事の割合が増加し,技術的な課題と向き合う時間が減少することが考えられる.あるいは労働時間を増やして後者の時間を確保し続ける生活に変化させる.それを受け入れられるかどうかについて悩んでいる.

自分を曲げてまで社内の評価を取るか,と表現すると大げさかも知れないが,これまで自分の人生において,仕事というのは相当に大きいウェイトを占めてきた存在であり,仕事の成果とはほぼ自分そのものであってほぼ自分の生活である.これまでの自分の努力や自己投資してきた金銭や時間を裏切るようで,簡単には変えられない.正直に言うとそのように感じている.要は感情の問題なのだと思う.感情の問題の方が大きく,いつものように損得勘定だけで自分を律することが難しい.そもそも自分は,その程度の損得勘定を受け入れることができない程度の低い人間であって,民間企業で働く1会社員としては,今いるポジションがどうやっても限界なのかも知れない.

Poetryでprojectを作ったらとりあえず入れておくdev packages

いつも忘れるのでメモ

poetry add --group dev flake8 isort black flake8-bugbear flake8-docstrings mypy

setup.cfg はこんな感じに

[flake8]
max-line-length = 88
convention = google

[mypy]
ignore_missing_imports = true
show_error_codes = true

[isort]
include_trailing_comma = true
line_length = 88
multi_line_output = 3

Poetryでproject rootに.venv directoryを作って欲しい場合の設定

Poetry projectをVSCodeで開く場合,project rootに .venv が生成されないので依存ライブラリのコードへの参照をVSCode上で解決できないケースがある.使用しているvirtualenvのpathを手動で指定する必要があるが,毎回やるのは面倒くさい.かといって,機械学習だと3rd party libraryを大量に参照するので直接Code jumpできないとめんどくさいケースが多々ある.

そこで,以下の設定を入れておくことでpoetryはvirtualenvをprojectのroot directory直下の .venv というdirectoryに生成するようになり,この問題を解決できる.

poetry config virtualenvs.in-project true

なお,すでにvirtualenvを作っている場合は適用されないのでその場合はvirtualenvを作り直す必要がある(当たり前だけど).

参照: Configuration | Documentation | Poetry - Python dependency management and packaging made easy

WSLでLinux環境を構築してから任意のドライブに引っ越すまでの手順

何番煎じだって話だが備忘録として残しておく.

はじめに

WSLでLinux環境を作ると,デフォルトではWindowsがインストールされているドライブ上にLinuxのファイル本体が配置されてしまう.別 のドライブにLinuxのファイルを配置したい場合は,一度Windowsがインストールされているドライブ上にLinuxをインストールした後に,ファイル一式をexportして任意の場所にimportする必要がある.めんどくさいね.

前提条件

Windows 11で動作確認をした.

Windows 10でもWSL自体は動作するのだが,Windows 10の場合WSLのバージョンが古くなってしまうらしく,これが原因で,WSLで構築したUbuntu環境上で nvidia-smiGPUが確認できない問題が発生した.NVIDIAのサイト によれば,CUDA on WSLにはWSL2が必要で,WSL2はWindows 11以降でのサポートになるとのことだったのでWindows 11にアップデートしてから本記事に書いた手順を実行した.

> wsl --version
WSL バージョン: 1.1.3.0
カーネル バージョン: 5.15.90.1
WSLg バージョン: 1.0.49
MSRDC バージョン: 1.2.3770
Direct3D バージョン: 1.608.2-61064218
DXCore バージョン: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windowsバージョン: 10.0.22621.1413

手順

1. 管理者としてTerminalを開く

2. インストールできるディストリビューションの一覧を確認する

> wsl --list --online
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl.exe --install <Distro>' を使用してインストールします。

NAME                                   FRIENDLY NAME
Ubuntu                                 Ubuntu
Debian                                 Debian GNU/Linux
kali-linux                             Kali Linux Rolling
Ubuntu-18.04                           Ubuntu 18.04 LTS
Ubuntu-20.04                           Ubuntu 20.04 LTS
Ubuntu-22.04                           Ubuntu 22.04 LTS
OracleLinux_8_5                        Oracle Linux 8.5
OracleLinux_7_9                        Oracle Linux 7.9
SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
openSUSE-Leap-15.4                     openSUSE Leap 15.4
openSUSE-Tumbleweed                    openSUSE Tumbleweed

3. 任意のDistributionをInstall

ここでは Ubuntu-22.04 をinstallする.

> wsl --install -d Ubuntu-22.04

4. installできたことを確認

> wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-22.04    Stopped         2
> wsl uname -r
5.15.90.1-microsoft-standard-WSL2

5. 任意のDriveにexportする

> wsl --export Ubuntu-22.04 {file_name}.tar

6. 一度installしたUbuntu-22.04をuninstallする

> wsl --unregister Ubuntu-22.04

7. 任意のPathにimportする

> wsl --import {distro_name} {import_path} {file_name}.tar

8. (Optional) ログインユーザを変更する

何故かimportするとログインユーザが root に変更される.これが嫌な場合はログインユーザを変更する.

Ubuntu-22.04上で以下のように /etc/wsl.con ファイルを作成して何度かログインし直すと変更される. wsl --shutdown してもすぐには反映されず,一定時間待つ必要があるようだった.謎.

cat << EOF > /etc/wsl.conf
[user]
default=user-name
EOF

推薦システムを勉強し始めた

はじめに

3ヶ月ぶりの労働を再開して一ヶ月が経った.最初こそ披露困憊で業務後は何もできなくなっていたものの,徐々に勘を取り戻してきたので余裕が出てきた.

同時に,今後のICとしての昇級についても同時に考えを巡らせる必要が出てきたりしたので*1,よい機会だと思い新しい技術軸として推薦システムについて勉強することにした.

なぜ推薦システムかと言えば以下の理由である.

  1. 現職で作っているものがフリーマーケットサイトなので推薦システムを内製しているチームがあり,そのチームと今後協業する必要が出てくる可能性がある
  2. 推薦システムは以前勉強した機械学習と関連している部分があり,ある程度使える共通基礎知識がある
  3. 絶対的な解がない分野なので研究対象としてもまだ伸びしろがある
  4. 推薦システムは何かしかのコンテンツをユーザに提供しているサービスでは常に重要であり,今後10年スパンぐらいで見ても需要は減らないだろうと思った

今やってること

あまり進捗は出ていない.とりあえず以下の本を頭から読んでいる.

古典的な近傍ベースの推薦システムだけでなくモデルベースの推薦システムについても解説されており,網羅的に勉強するには良さそうだと思って選んだ.また,読むために必要な知識*2についても都度細かく説明してくれているので初心者には読みやすい構成になっている.

今後の予定

まだ3章までしか読んでないので残りを早めに全部読んで全体像を掴むことを最初のマイルストーンとしている.その後は手を動かして実装してみたり,kaggleの推薦システムコンペをやってみようかと思っている.

あと以下の本は実装についても触れているようなので併せて読んでみる予定である.

月に1回ぐらいのペースで学んだことをこのブログで報告していきたいと思う.

*1:要するにreport lineと「器用貧乏なのでICとしては頭打ちだけどこっからどうやって給料上げるの」的な議論をした訳である

*2:主成分分析や勾配降下法など

3ヶ月無職期間した雑感

  • tl; dr
  • はじめに
  • やったこと
    • 国内旅行
      • 出雲 2022年4月25日 - 26日
      • 長崎 2022年5月12日 - 13日
      • 伊豆・伊勢 2022年5月23日 - 24日
        • 伊豆
        • 伊勢
      • 沖縄本島 2022年6月14日 - 18日
    • 登山
    • 手術
  • 雑感
    • 敢えていつもと違う過ごし方をしたのは正解だった
    • ヤマノススメ
  • おわりに

もうすぐ3ヶ月間の無職が終わろうとしているので雑感をまとめておく.

tl; dr

  • 元々は無職期間を勉強時間にしようと思ったが勉強は仕事しながらでもできるので敢えて止めてみた
  • 登山を始めたことで生きる活力が復活した
  • たまには普段と違うことに注力する時間も人生においては重要だと実感した
続きを読む

今回の転職活動の雑感

  • はじめに
  • 転職活動の結果
  • 希望したポジション
  • 転職のために使用した採用媒体
    • 転職ドラフト
    • YOURTRUST
  • 今回の転職活動での気付き
    • Coding testは対策が必須である
    • System design interviewも準備しておいた方がいいが業務経験があればそこまでビビる必要はない
    • 6社同時に受けると毎日のように面接がある
    • 希望年収は自分に嘘をつかずに伝えた方が良い
    • マネージャーやリーダーの経験がないと判断されるとマイナス評価につながる会社が存在する
    • 自分の評価は企業によって差が大きい
  • おわりに

はじめに

2021年10月から2022年2月にかけて転職活動をしていた.

今回の転職ではいつもと違い10社近くのカジュアル面談を受け6社に応募した. また,珍しく採用に関するwebサービスを使用したり,初めてCoding test対策を行ったりもした.その雑感をまとめておく.

続きを読む