こんにちは。ソフトウェアエンジニアのY.Nです。
今期からエンジニアの採用に力を入れるべく、求人情報だけでは伝わらないことを書いていこうと思います。
……。はい。弊社花房の記事 を参考にしています。よろしくお願いします。
基本となる求人情報はこちら。
みなさまからのご応募お待ちしております。
この記事の内容
概要
現在システム開発事業部では、ECサイトの運営をサポートするシステムの開発に力を入れています。自社で販売している商品の通販業務で培ったノウハウを活かせる仕組みを取り入れつつ、各担当部署の業務が効率化できるようシステム化を進めています。
- 在庫管理システム
- レビュー施策自動化システム
社内で培ったノウハウやシステムに関する要望は日々増えていきます。細かい微調整で済むものから、数ヶ月以上かかる開発規模のものまで様々あります。順々に対応していき、会社にどんどん貢献していきたいのですが、如何せんやることが多いのです。人手が足らないのです。
具体的な仕事内容
JavaScript(Node.js)、 TypeScriptでのWebシステムの開発がメインとなります。社内で上がった改善要望や追加機能の開発、及び稼働中のシステムの運用・保守などをお任せします。開発に関してはスキルや希望に応じて上流工程から担当頂く場合もありますし、要件定義・設計など担当者の裁量に応じてエンジニア全体でフォローを行いつつ進めて頂きます。
開発環境
私の開発環境を紹介します。粒度はバラバラですが、ご参考までに。
ハードウェア
以前のブログで書いてる通り、M1のMacBook Airを使用しています。
外部ディスプレイは4KのモニターにMacBook Airのクラムシェルモードで繋いでます。複数のモニターや横長のUWQHD(3440*1440)のモニターを使っていたりしましたが、4Kに慣れるともうこれ一つで良いかなといった感じです。
キーボードは長年使っているものを持ち込んでいますが、ちょっと新しいもの買おうか迷っている今日この頃です。Keychronほしい……。
- PC:MacBook Air (M1, 2020)
- ディスプレイ:acerの4K 28インチ(VG280K + HPのモニターアーム)
- キーボード:FILCO 赤軸 フルサイズ(持ち込み)
- マウス:Apple Magic Mouse 2(黒いやつ, 持ち込み)
ソフトウェア・ツール
エディタはまだまだ使いこなせていませんが VSCode をメインで使用しています。基本の開発作業は VSCode で完結できています。
要件定義や設計資料などは Google Drive や Git に Markdown で保存したりと用途や資料見られる方に応じて使い分けています。
ソースコードの管理は社内で GitLab を構築し利用しています。自分は Sourcetree の操作になれているのでGitの操作は引き続き Sourcetree を使っていますが、エンジニアによってはこの辺りも VSCode で完結している人もいるので(普通にできると思うので)、いずれはそうする予定……です。
- エディタ:VSCode, Atom
- ターミナル:iTerm2
- ブラウザ:Chrome
- リポジトリ管理:GitLab(社内で構築)
- Gitクライアント:Sourcetree
- 仮想環境:Docker
- ドキュメント:Google Drive, LibreOffice
- PostgreSQLクライアント:DBeaver
- MySQLクライアント:MySQLWorkbench
- 画面操作系:Display Menu, Divvy
- キーカスタマイズ:Karabiner-Elements
- 差分比較:Beyond Compare
- 社内コミュニケーション:Slack
私は普段こんなことしてます
社内で上がったシステムの要望・改善点などの要件を整理・定義し、スケジュール化・進捗進行管理などを行います。
管理面だけでなく、実際に実装を担当する場合もあります。
システムの要望・改善点は日々あがってくるので、粒度に応じて、管理方法を使い分けています。
すぐ対応が必要なもの、作業タスク化可能なもの
社内で利用しているシステムに関する要望は、利用者の作業効率に直結します。
出来る限り早急に対応したほうが良いものばかりなので、そういったものはすぐに要件を定義し、実装に着手できるよう調整します。
システム開発で GitLab を利用しているので、まとまった要件を Issue に記載し、優先度と合わせて作業タスク化します。優先度の高いものから順次 Issue を割り振り作業を進めていく流れになっています。
すぐの対応が難しいもの、工数見積りが難しい規模もの
開発規模が大きいものについては、別途スケジュール化する必要があります。
定義する要件も多くなることから、あがった要件を整理しつつ全体スケジュールを作成します。定まった要件から作業できる粒度のタスクに細分化しスケジュールを更新していきます。
一通りの要件が定まった後、全体スケジュールの承認をもらい、細分化したタスクを Issue に記載後、通常の開発フローにのせて進行します。
システム開発については、Docker などを利用して必要なサービスを動かして開発しています。
レビュー施策自動化システムの例でいうと、フロントはReactで構築、バックエンド側は扱う情報の内容に応じてマイクロサービス化していて、一連のサービスを1リポジトリで管理し、Monorepo の構成となっています。入社当初はこの構成に戸惑っていましたが、早いものでかれこれ入社からもう1年が経っており、慣れてしまっている自分が居ます。
- 言語:TypeScript
- フレームワーク:React
- データベース:PostgreSQL 12系(Docker利用)
- メッセージキューイング:RabbitMQ
社内の雰囲気
一緒に働いている方々は明るく話しやすい方ばかりです。まだ少数精鋭の体制なので1フロアでみなさん作業されています。距離感近いので、ちょっとした相談もしやすく業務に取り組みやすい雰囲気です。
集中したい時は音楽を聞いたりしますし、休憩室で一息ついてリフレッシュできたりするので、自分にあった環境かなと思っています。
こんな人と仕事したい!
担当できるエンジニアに限りがあるため、要件定義すら取り組めていないタスクもあります。
なかなか要件定義などの上流工程に手を回しきれていないのが現状です。
上流工程からぜひ携わりたい
プロジェクトを一任されたい
という方、応募お待ちしております。
まだまだ少数精鋭の体制なので、自身のアイデアや意見を話しやすく、業務に取り入れることが可能な環境です。
一緒により良い環境を作っていきましょう!!