エンジニア歴3年社員の入社1ヶ月レポート
初めまして株式会社ヴァージニア エンジニアリング本部の山口と申します。
2022年2月から入社させていただき1ヶ月が経ち日々業務に励んでおります。
今回は入社してからこれまでの私の業務内容や日々感じていることをお話ししつつ、弊社に応募してくださる方々にとって弊社がどういった環境であるか少しでもお分かりいただける記事を記載できればと考えております。タイトルでエンジニア歴3年目と申しておりますがFE/BEの実装経験といては1年にも満たない新人であるので、ビギナー向けの内容になるかと思われますがお付き合いいただければ幸いです。
経歴と現状について
大学時代は情報系の学部に所属し基礎的なtechの習熟を図っていました。それをそのまま職業にしたいと思い新卒で大手通信企業に新卒入社いたしました。しかしながら内部の業務としてはベンダーコントロールやドキュメント整備など調整系の業務が主になっており、このままではエンジニア(実装ができるエンジニア)から遠ざかってしまうのではと考え転職を決意いたしました。
転職後はSES企業に所属し初めはネットワーク運用・構築・検証の業務を行っていました。その後アプリケーションレイヤにも挑戦し金融系システムの改修に携わっておりました。その際にFE/BEの基礎的な実装スキルをつけていくことができました。
その後自社プロダクトに関わるシステム開発に携わりたいと考えるようになり転職活動を再開しヴァージニアに出会いました。入社してから開発システムのインプットを始めていきましたが洗練されているからこそのアーキテクチャの難解さや実装の複雑性に最初は戦々恐々でした。特にスキーマファーストでOpenAPIを採用しているのですがこの開発思想に馴染みがなく最初は改修要望をいただいてもどこから手をつければ良いか自体把握できていませんでした。
ただ業務を進めていく中でFE、BE、OpenAPIがどのように関わっているかが少しずつ掴めるようになっていき、スキーマファーストによるコードの制約があることで実装中の改修ポイントが明確になることがわかってきました。
また基礎的なコーディング手法の引き出しの不足も感じており改修自体はできるものの、その後の開発も見据えたリファクタがまだまだできていません。ただそういったものも現状のコードからインスピレーションを得たりレビュー等でアドバイスいただいたりすることで日々学ばせていただいているところです。
新人フォローアップ体制について
Slackの質問チャンネル(Timesチャンネル)を設けていただき適宜わからないこと・困っていることを他のメンバーに質問できる環境があります。入社当初、開発環境構築でつまずいた際にこちらで大変お世話になりました。また上長である村上との1on1を週一で実施しておりその中でも業務に関わることやそれ以外、私の場合は「Techに関する情報集は日々どのように行っているか」など個人的な質問もすることが可能となっています。オンラインのコミュニケーション環境下でもソフトスキル、ハードスキル問わず吸収を図っています。
開発環境について
技術構成としては下記のような構成になっております。Vue.jsとRailsについては前職で経験していたため基本的な実装方針についてはスムーズに頭に入ってきました。
なお、Vue.jsを用いているのは2020年よりクリニック様に使用していただいているシステムであり、SMARTCRMではReact(Next.js)を用いています。
環境 | 言語 / フレームワーク |
---|---|
FE | 言語:Typescript フレームワーク:Vue.js/VueRouter/Vuex UIライブラリ:VuetifyVue 特徴:コンポーネントやVuexがTypescriptに対応するためのライブラリ(Vue Class Component, vuex-module-decorators ...etc)を組み込んでいる |
BE | 言語:Ruby フレームワーク:Ruby on Rails 特徴:docker & docker composeでビルドが簡易化されている |
APIスキーマ | フォーマット:OpenAPI 特徴:APIはもちろんOpenAPIの仕様以外でrubyのコードによりFE/BEで扱うenum等も自動生成している |
FEについてはTypescriptによる実装に合わせたライブラリ等が組み込まれ、Vue.jsのコンポーネント分割においても適度な再利用性を担保し後の実装も考えたモダンな環境となっています。BEはRails既存アーキテクチャの中にparameter(ユーザーからのリクエスト検証), service(ビジネスロジック実装)を作成し、controller内の処理が肥大化することがないよう責任範囲を明確に分けた実装方針がなされています。はじめこそ把握するのに時間がかかりましたが、実装を進めるについれてどこをどう修正すればよいか、どこに何を追加すればよいかなど判断が付きやすい構成となっています。
最後に
先述してきたようにもし技術的な成長を志して弊社の環境に興味を抱いていただいた際には、その期待を裏切ることはないと私自身は感じております。また開発環境だけでなく実装やマネジメントにおけるスペシャリストが在籍し、共に業務をこなす中でソフト・ハード面での成長をもたらしてくれるチームです。
成果や過程をしっかり評価いただきそれを言葉で伝えていただけるため、明確に長所・短所を自覚できる透明性のある弊社で共にプロダクトを磨き上げていただける方々をお待ちしております。
Discussion