コミューンにて,エンジニアをしている @huslc2es です.
9月の初週からJoinし,はや3ヶ月が経とうとしています.
面談から稼働開始までのスピード感に驚いたのが,遥か昔のことのようです.
この記事には,コミューンでエンジニアとして働くことについて色々と書きました.
コミューンで働くことに興味のあるエンジニアに届くと本望です.
環境
オフィス: 五反田
リモートワーク: リモート or 出社
コアタイム: 11時から4時まで
開発チーム: 業務委託含めて12人ほど
2020年の社会情勢においては,コミューンでもリモートワークがメインとなっています.僕は住んでいる静岡県からリモートで働いています.コミューンでは,月末にメンバーで集まり,その月の経営状況などを共有する締め会を開いています.オフィスには,そのタイミングで行ったことがあります.オフィスに行くのは,現状多くて月1回なので,基本はフルリモートです.
働く時間帯(コアタイム)は,11時から4時となっています.にも関わらず,業務時間は長めに10時過ぎから8時ごろまでやることが多いです.他メンバーのエンジニアの方も,長めに作業してる人が多い感じがします.長めに作業したり,早く上がったりなど,柔軟な働き方ができる環境です.仕事以外でもコードを書いていることが多いので,特にやってることが変わらない毎日です.
使っている技術
フロントエンド: React.js, Next.js
バックエンド: Node.js (express.js)
インフラ: GCP
下記のブログに詳しいことが書かれています.
commmune.hatenablog.com
コミューンは,Webがメインのプロダクトです.フロント,バックエンド双方をTypeScriptで書いているので,型のある開発ができます.
プロダクトには,複雑な機能が多くあります.規模が大きく,複雑な状態管理のために,Redux + Redux-Sagaを採用しています.
Redux-Sagaは玄人好みのライブラリと称されることも多く,JSのジェネレータを用いた記法で一見掴みづらさがあります.同時に,コールバック地獄を回避しつつ,コードを綺麗に保てる点はとても良いと思います(勉強中).
また,コミューンではReactフレームワークである,Next.jsを採用しています.2020年に入り,Next.jsの勢いの強さを感じているエンジニアは多いと思います.プロダクションレベルでNext.jsを利用している企業は日本でまだ少ない印象なので,興味のある僕にとってはありがたい環境です.
余談なのですが,Next.jsのドキュメントには有志による日本語訳があります.
英語が苦手だけどキャッチアップしたい,という方のためにリンクを張っておきます.
(1ページだけ僕が翻訳した箇所があるので,紹介しました🌝)
仕事の内容
- やっていること: 機能追加・改善・バグ修正
基本的に,機能の追加・改善・バグ修正を行っています.同じ言語で書かれていることもあり,一つの機能をフロントエンド・バックエンド一貫して実装することが多いです.
把握するコードの量が多くなるのは大変ですが,僕はどちらも触れたい欲があるので楽しいです.ビジネスサイド側の方々の働きぶりを見ていると,プレッシャーを感じます.こういう経験は今まであまりなかったので,とても刺激が得られています.
今後やりたいこと
- パフォーマンス・チューニング
- テスト
パフォーマンス・チューニングは,Webとバックエンド両方を指しています.僕のタスクとしてあるわけではないのですが,興味のある領域です.地道に改善していくのは楽しそうです.ISUCONなど夏に少し勉強していましたが,もっと実装力がほしいなと思います.家にパフォーマンスチューニング系の本が積んであるので,まずはそれを消化.自然にパフォーマンスを落とさないコード・設計ができるようになりたいです.
テストに関して,コミューンでは画像回帰テストツールとして,Percyを導入しています.画像回帰テストの知見に加え,僕自身はまだまだテストの知見が豊富でないので,E2Eやユニットテストあれこれをゴリゴリ増やせていける力量が欲しいです.TestingJavaScript.com をやったりしていました(高い).
具体的なやりたいこととは異なり,意識的な話も書いておきます.
開発プロセスでコードレビューをいただくのですが(ありがたい),僕も早くレビューをする側になりたいです.そのためには,実装力やコードベースの理解など足りていない箇所が多いので,地道に埋め合わせしていくつもりです.
総括
チームでのプロダクト開発はやっぱり楽しいです.
特に,バックエンドもフロントエンドもやりたい方,とてもいい環境だと思います.
エンジニア募集中なので,React,Next,TSやりたい人,一緒にプロダクト開発しましょう!