セイルボートのエンジニアとして働く
【株式会社セイルボートは2024年4月1日、「株式会社キマルーム」へ社名変更しました。本記事は社名変更前の記事となります。】
はじめまして、セイルボートの外部連携チームのY(仮称)と申します。入社して3年目です。
この記事では私が社員としてどのように働いているのかについてご紹介します。
まだまだ分からないことだらけですが、仕事の内容が少しでも皆さんに伝われば幸いです。
こんなことをやっています
私が所属する外部連携チームでは、他社のシステムと連携して物件データ(および物件に関するデータ)のやり取りを行っています。
例えば、大手の不動産ポータルサイトへ物件連動をしたり、逆に外部の基幹システムから物件データを取り込むといった機能の開発をしています。
物件連動はCSVファイルを介するものが多く、連携先のシステムに合わせてレガシーな形式を選択せざるを得ない場合もあります。(最近はAPI形式の連動も増えていますが)
開発環境的なところでいえば、用意するPCはMacかWindowsを選択でき、開発環境を自身で作成するところから始まります。
また、IDEはPhpStormを使用しています。入社当初はNetBeansを使用していましたが、いまのところPhpStormの方が快適です笑。
バージョン管理はGitを使用しており、本番へのデプロイは自動化されています。
最近はCIも導入されており、Circle CIによってコードチェック・テストは自動で走るようになっています。
面白さ・やりがい
当たり前のことかもしれませんが、エンジニアとして手を動かして開発できるということが一番のやりがいです。
決められた仕様に対する実装方法は無数に存在します。単なる作業ではなく、考えながらやるプログラミングは自身の成長を実感できます。また、自身が携わったシステムが増えてくるとそれらの保守をすることも仕事の一環になります。保守・横展開など、先々のことを考慮して既存の機能に汎用性を持たせたり、保守しやすいような仕組みを考えたりするのが面白さの一つかなと思います。
自社開発できるという点は自分にとって大きかったです。使用する言語やツールを自分から提案するといったこともできます。ベンチャー企業の一員として、サービスを一段と大きくしていくフェーズに携わることができます。
苦労したこと
実装してみたはいいものの、稼働させてみると処理の負荷が高く使い物にならない、というケースはあります。最善なパフォーマンスで稼働させるため、データの取り扱いには注意が必要です。データを一気に読み込むのではなく分割して読み込んだり、本番DBへの負荷を抑えるため別のDBに一時的にデータを格納したり、など工夫を凝らさなければなりません。
何より難しいと感じるのは社外システムとの連携周りです。
システム連動は他社システムとの二人三脚です。自分たちの開発だけでなく、連携する社外システムのことも考えないといけません。
連携先の他社さんから事前にシステムの仕様を吸い上げたり、運用のことをヒアリングしておくなど、作ったシステムをちゃんと運用に乗せるためには地道な準備が不可欠です。この工程はなかなかに新鮮であり、システム開発のリアルさ・泥臭さなどを体感できます。
上記以外にも、現状下記のような点で苦労しています。
・社外のAPIを使用する都合上、不具合調査に時間がかかる
・ログが監視しにくい
・横展開が完全に手順化されていない
などなど、挙げればキリがありませんが、まだまだ発展途上な部分でもあるので改善する余地があります。これらの改善でバリューを出せる、もしくは出したいという方を"絶賛"募集中です。
挑戦・目標
自分たちが作ったシステムは営業の方々によってお客さんに売りに出されます。「こんな連動できますけどどうでしょうか?」という具合に提案される訳です。
物件連動の中でも、まだまだお客さん側で個別に設定をしてもらわないといけないタイプの連動もあります。このような"お客さん側の一手間"が原因で提案が通らないというケースも今後出てくると思います。
・お客さんの手間をとらせずに
・要求を満たせて
・保守がしやすい
これらを満たすシステムが理想的です。
今の自分にはかなりハードルは高いですが、理想に向けて猪突猛進していきます!