こんにちは、エンジニアの山本です!
今日は自分がrayoutで、エンジニアとしてどんな感じの毎日を送っているかを書いてみました。
担当領域としてはバックエンドのタスクが最近多く、その一日をご紹介できればとおもいます。
11:00 出社。API設計を調べる作業に取り組む。
弊社サービスMiLKBOXは現在、より使いやすくするようにブラッシュアップ中です!
サイトのデザイン全部をガラッと変えるようなレベルのブラッシュアップ中で、新しくなる画面からのサーバーのデータのやり取り(API通信)をどう定義するかを考えています。
技術的な話に踏み込むと、Vue2からNuxt3へ移行して完全にフロントとバックエンドを分離します。
つまり過去のAPIの導線を変える必要があり、それの設計を考えているというのが今のタスクです。
スケジュールとの葛藤を考えながら。。。
API設計もしっかり作り込みたいのですが、設計している間バックエンドの開発が進まないので待たせるわけにもいきません。このブラッシュアップ開発はスピード感も大事です!
なので、とりあえずGoogleSheetsで簡単なデータの受け渡しや実装が完了したかの表を作成して、作業を渡してみます。
実際にAPIの設計イメージの認識があっているかを、マネージャーとSlackのハドルミーティングで確かめています。
エクセルを見せてみたところ、こんな感じの想定でした。とOKをもらいました。
なお、エンジニアチームでは自分だけ唯一ダークモード派の模様。。。。
とはいえ作り込みも諦めない!
サーバー側を作るエンジニアにはGoogleSheetsで走り書きした表でも充分に伝わりますが、
フロントエンド(ユーザーに表示される画面の開発者)の方にはちょっと不親切なフォーマットです。
ゆくゆくはフロントの方もAPIを使うので、ある程度渡すデータの変数名や、自由にデータを設定して実際にAPIを飛ばす機能なども入れておきたいので頑張って模索してみようかなとも思っています。
…やっぱり、ただ言われたことをやるだけではつまんないですよね!
※rayoutは、積極的な姿勢をもって仕事に取り組める方を歓迎しております🫡
ChatGPTを使ってどのツールがいいのかを模索中。。。まずはメリデメから!
💡 rayoutは、AIを使用した開発に肯定的です! 次に書くコードをAIが提案してくれるGitHub Copilotのチームプランを契約しており、 rayoutエンジニア全員が無料で使用できます。
14:00 お客様の問い合わせが入ってきた
作業をしているうちに、担当している受託開発のお客様から連絡が来ました。
画像や文言の差し替えの依頼のようです。
作業工数を見積もって、Slackで依頼をしておきます。
API設計の作業を再開。
15:00 なんとかモック画面を立ち上げた
調べこんでいくうちに、今使っているバックエンドのフレームワークからAPIの仕様を書き出してくれるツールを見つけ、導入できました。
これなら、渡すデータのサンプルとかもわかるし、実際にデータを送ってみることもできるので便利そうです!
しかしAPI通信の設定がうまく行っていなく、フロントが開発をする前に開通をしたいというタスクが出てくる予感。
16:30 受託先の修正完了の通知を受け取ったので確認
依頼していた受託の作業が完了したとSlackで連絡が!
出来上がったコードはすぐに反映せず、変更箇所をレビューして
- ヌケモレがないか
- 後で変更を加えやすいコードか
- 他の箇所に影響はないか
などを見ていきます。今回は文言の差し替えメインなのでサッと終わりました。
問題がなかったので、テスト環境に接続して想定通りの変更かを確かめます。
17:00 本番環境の画像を差し替えてクライアントに連絡
テスト環境にも反映して問題なかったので、クライアントに連絡。
こんな感じでタスクがイレギュラーに割り込むこともけっこうあります!
API設計の作業にもどりますが、自分も実装を担当するのでGoogleSheetsの設計通りにつくってみて、シートに追加した方がいい要素がないかも確かめていきます。
18:00 フリータイム 〜自動テスト改善の模索 〜
ある程度タスクが落ち着いてきました!
現在エンジニアチームは毎日1時間自由に勉強していいという制度があります。
無理に毎日フリータイムを使用する必要もないのですが、自分は
- 大量のアクセスに強くする
- もっと効率のいいデータ処理やアルゴリズム、クエリの組み立て
- エンジニアがもっと快適に開発できるような、開発手法やライブラリの導入
- その他競技プログラミングとかの業務外でおもしろそうなこと
の模索が好きなので、その辺をこの時間に調べこむことが多いです。
さて、今回のフリータイムでは自動テストの刷新をやっています。
せっかくMiLKBOXも新しくなるので自動でテストの実行ツールも以降します。
※技術的な話だと、CircleCIから、GitHub Actionsに移行してみようかと思っています。
とりあえず、動くところまで進めてみました。
実際に会社の環境ではなく、自分のアカウントでやってみました。
赤いアイコンはすべてパイプラインの細かい設定が間違ってて動かなかったもので、簡単なテストを動かすのも結構試行錯誤が続きました。
しかし、まだ動いただけなのでJobの並列化やキャッシュを使用して1回の実行時間などを短くするのを次回調べてみようかなと思います。
こんな感じでフリータイムがあっという間に終了。
19:00 夕会が始まる
自分の部屋はデザイナーの方々も一緒で、部屋の人全員で10分くらいの夕会を毎日ひらいてます。
今日はAPI設計をWebページとして表示する方法の模索が進んでいることを報告しました。
最近は、スクリーンショットも貼ってお互いの仕事感を見てみよう、という取り組み中です。
20:00 実際にAPIを書いて感触を確かめているうちに終了
一度自分が練ってみた設計から十分に実装できるのか、簡単に実装してみます。
アップデート系の処理は問題なさそうだが、「プロジェクトの検索で、お気に入りや並び順をソートした検索」とかはパラメータが複雑なので何かしらの工夫があることがわかりました。
一旦GoogleSheetsのフォーマットで頑張りつつ、先程の仕様を書き込んだ画面の開発を頑張って間に合わせると良さそうなので、明日はその続きをやろうと決めて本日の勤務は終了。
こんな感じが日々行われている開発の舞台裏、の一部です。
こんな感じで毎日頑張ってます
今回はバックエンドとしての1日になりましたが、rayoutでは幅広いフェーズの経験を積むことができると思います。バックエンド業務の他にも
- 受託、自社サービスの新規開発
- TailwindCSS, Composition APIなどを使用したフロントエンド開発
- AWSのインフラ設計・構築
- 受託案件の開発マネジメント、基本設計
- 自動テスト・CI構築
- LP制作
これらはすべて、Web系エンジニアとしての経験がなかった自分がここ1年で実際に担当した工程です。
普段の業務をこなしつつ、+αで異なる分野や更に深い領域に挑戦するのは大変ですが、自分は成長を実感できたし、こうやって実際にお客様に触れていただけるソフトを開発している、というのは非常に大きなやりがいを感じます。
開発を通じて、一緒にプロダクトを盛り上げていきたい方、ぜひ応募をお待ちしております!