スマレジのテックファーム(SES 部門)で Web 系エンジニアとして働いている やまて(@r_yamate) と申します。
2023 年 4 月からは、スマレジの関連アプリの開発業務を担当しています。触ったことのなかった Flutter での開発を担当(React も少々)することになり、日々奮闘中です。開発しているアプリはモニター利用も始まり、開発の醍醐味を味わえていて楽しいです。
はじめに
新年あけましておめでとうございます。
今回は、Web 系エンジニアとしての2年目(2023 年)の1年を振り返ります。
異業種からのスマレジ入社日が 2021 年 12 月だったので、Web 系エンジニア2年目としています。
目次
- はじめに
- 2023 年の振り返り
- 2024 年の目標(仮)
- おわりに
2023 年の振り返り
1〜3月⛄️SES での1社目の出向先での経験
基本設計、詳細設計の資料作成業務
2022 年3月から 2023 年3月までの1年間は、SES の初めての現場でテーブルオーダーシステムの機能改修の基本設計、詳細設計の資料作成業務に携わりました。
👉 出向先での経験の詳細は以下の記事で振り返りました。
実務でコードを書けていないことでの焦り
当時は異業種からの転職後、実務でコードの実装経験を積めていないことで焦りを感じていました。
昨日はエンジニア仲間と話して、実務で実装経験が積めていない自分の状況の危うさを直視できた。同時期に転職した方々が実装スキルをメキメキ伸ばしているのを目にする度に、自分の焦りも大きくなることになる。なんとかする必要がある。
— やまて|Web系エンジニア3年目 (@r_yamate) 2022年10月21日
実務でコード書けるまで、私は実務未経験。
— やまて|Web系エンジニア3年目 (@r_yamate) 2022年10月28日
実装業務を経験してから設計業務を担当した方が良いと今でも考えているものの、振り返ってみると設計業務を経験できたことは、とても良い経験だったと思っています。
1年前はこんなこと言ってたけど、転職することなく、身を置く環境が変わって、実務でコード書きまくる日々を送れてる。それに、当時の設計の業務も今活きてくることもあって、しっかり実務経験積めてた🙏 https://t.co/oJzmUpJqCc
— やまて|Web系エンジニア3年目 (@r_yamate) 2023年11月10日
良いシステムを提供してお客様に喜んでもらう
技術的なことではないですが「良いシステム、良い機能を提供してお客様に喜んでもらう」という空気が漂う職場の雰囲気があり、それがとても良かったです(当前なのかもしれませんが前職が公務員であるため、自分にとっては新鮮でした)。
また、現場の開発担当の方は、技術に幅広く精通していて、とても会社に頼りにされている様子が印象に残っています。
自分も出向先の方々と同じような意気込み、エンジニアとしてのスキルを持って、世の中に貢献できるようなシステムづくりに携わっていきたいと思います。
4〜6月🌸やっと手にしたプロダクトコードの実装業務
自社内での開発業務
4月からは、一旦 SES での出向はせず、スマレジ社内でスマレジ POS 関連アプリの開発に参画し、実装業務を遂に経験できました!
触ったことのなかった Flutter での開発を担当させていただくことになり、色々と未経験で不安はありましたが、自分を選んで任せていただいた期待に応えようと心は燃えていました。
開発チームメンバーにも恵まれて、良い環境で働けていると思っています。すごく仕事のできる方々で、人の仕事ぶりからも学んでいます。
👉 5月までの振り返りを一度、以下の記事で書きました。
自分のコードが新規開発アプリのプロダクトコードになる
この新規開発アプリがリリースされたら、自分が書いたコードがプロダクトコードになって世に出ることになります。
不便を解消したり、日常が便利になるモノを作る。作ったモノを使ってもらう。という、モノづくりの醍醐味を味わいたい。面接で志望理由としても話した、エンジニアになってやりたいこと。第一ステージ、絶対にやり抜く。
— やまて|Web系エンジニア3年目 (@r_yamate) 2023年7月29日
エンジニアになって実現したいことを叶えるチャンスです。
反面、Flutter の実装内容はほぼ自分のコードなので、バグが起きたら自分の書いたコードのせい、という分かりやすさがとても刺激的です。
そのため、不安は大きかったですが、マージリクエストでは経験豊富な方に丁寧にレビューをしていただき、不安は少なくなっていきました。
バグは心配ですが、店舗で利用する系統のアプリなので、正式リリース後には導入された店舗に客として行ってみたいと心待ちにしています。
ChatGPT に聞きまくる日々
初めて尽くしでわからないことだらけの日々の中で ChatGPT は本当に欠かせないツールでした。毎日のように質問回数の上限に達するくらい最大限活用しました。
実装業務が初めてのジュニアクラスのエンジニアである私でもここまで自走してやってこれたのは、ChatGPT がいつでも聞ける先輩エンジニアのようなポジションに居てくれたからだと考えています。
中でもエラーで詰まる時間はかなり抑えられたと考えています。自分で解決できずに人に聞く、という場面が少なくなるため、人の手をかけずに自走することにつながりました。
聞きまくっても詰まりまくる日々
とは言え、解決するまではエラーにハマることは多々ありました。
実装中に、エラー原因が明確に出ないタイプのエラーでつまずいて色々試して、思ったより長引いて、整理できなくなってきて脳みそ疲れてきてエラーの沼にハマってしまう。ということをたまにやってしまう。落ち着いてる時にはできてるエラー解決ステップを、焦っていても実行できるようにしたい。
— やまて|Web系エンジニア3年目 (@r_yamate) 2023年6月24日
エラーの沼にハマって、どうしても自分だけで解決できないこともありました。
案件入って3ヶ月、エラー解決で丸一日がかりで詰まり倒したときに原因だったのは、いつも基礎的なことの理解不足でした。
— やまて|Web系エンジニア3年目 (@r_yamate) 2023年7月2日
・固定IPアドレスの重複
・Wi-FiのIP設定をstaticにした時のDNSの設定
・HTTP ヘッダー名の大文字小文字は区別されない
ChatGPT に頼りまくってスキルは伸びるのか
なお、ChatGPT に聞きまくってほぼコードを書いてもらって実力が伸びないのでないのか、と自問自答することはありましたが、そういう実感自体は無かったです。むしろ、実装するスキルは確実に伸ばせたと思っています。
ChatGPT に聞けることの方が多いですが、実装内容によっては自分で考えざるを得ないことも多くありました。
👉 どのように ChatGPT を利用をしていたかは、以下の記事で書きました。
7〜9月🍉ひたすら Flutter での実装
実装内容のクセ強め
引き続き、Flutter での機能追加、機能改修を進めました。
開発するアプリは、Web 管理画面と Flutter で開発する Android アプリがあり、担当する Android アプリは WebView での実装です。
WebView とは、ネイティブアプリケーション内で Web ページや Web アプリなどの Web コンテンツを表示するための仕組みです。
プリンターなどとの機器連携以外は Web 側で開発するため、私はフロントエンドから受け取った外部機器連携のリクエストの処理を実装する担当、という感じでした。
ちなみに連携する機器は、プリンターのほか、自動釣り銭機や二次元スキャナー、決済端末などです。
Flutter のスキルは伸びたのか
経験豊富な方にレビュアーをしていただいたこともあり、スムーズに理解を深められたと感じています。(レビュアーをしていただいた方は仕事の進め方なども含めて、とても見習うべき点が多く、一緒に働けて良かったです。)
ただ、WebView での開発だとウィジェットで画面を作ったり画面遷移を実装したりする機会がほぼなかったため、Flutter アプリを今後新たに開発する場合は、まだまだ基本的なことでも勉強が必要になると考えています。
👉 実務で使う知識のインプットのためのアウトプットとして書いた Flutter のブログ記事は 16 記事でした。
Web 系エンジニアの仕事は楽しい
Flutter の実装担当は私一人なので不安や責任が大きい一方、ごっそりとリファクタリングやスクラップ&ビルドも気兼ねなくできて、とても自由にコードと向き合えています。
実装で壁にぶち当たることは相変わらずですが、この頃からは実装がどんどん楽しくなってきていました。
散々四苦八苦したあとに、思った通りに動いたときの快感は何度味わっても最高です。
リファクタリング好き
また、思ったとおりに動くコードをがむしゃらに書く → 汚いけど動くコードをきれいにリファクタリング、という流れを経てコードをきれいにする過程(作業)が楽しいし、好きだと気づきました。
どう書いたらコードがより良くなるだろうと、プライベートでの自習時間も含め四六時中考えてました。
10〜12月🌰React での実装
実務での成長スピードは早い
10 月下旬以降は、React での実装業務を初めて経験しました。
React の実装内容ついては、Flutter との WebView での連携部分についての機能改修を主に担当しました。
React についてチンプンカンプンな状態でチケットに着手したので、当然、悪戦苦闘しました。
ただ、文法すらよく分からないながらも調べながら実装することで、2ヶ月でかなり理解が進んだと感じています。
実務での成長スピードはやはり教材のみでの学習よりも段違いに早くなると実感しました。
👉 以下の 11 月に作った React 学習ロードマップは step1 をゆっっっくり進行中です!…
実装業務以外の業務
実装する業務以外の作業が増えてきました。
開発チームのメンバー以外にも社内のさまざまな役割の方々と連携をとる機会が増えたり、リリースまでの諸々の調整や資料作成などがありました。
新規開発アプリをリリースするまでをマルっと経験できていて、とても充実しています。
あと、社内のさまざまな役割の方々で一緒にこのアプリを良くして、たくさん売っていこう!という熱さがあり、仕事が面白いと思える一因になっていると思っています。
その空気で働けるのは、勢いのある会社で働くメリットだと思っています。
[2023 年総括] コードを書きまくれて良かった!…
公務員を辞めてから3年。エンジニアに転職して2年。今、やりたい仕事ができてる。真っ只中に、いる!
— やまて|Web系エンジニア3年目 (@r_yamate) 2023年7月28日
所詮は実務での実装経験9ヶ月目なので分からないことだらけなのですが、分からないことと一つひとつ向き合いながらコードを書いてきました。
求められた業務を求められた期日でなんとか遂行しようとしてきたことで、大きく成長できたと思っています。
なお、プライベートでの自習時間は、個人開発もしたいと考えていましたが、実務で必要な知識の習得に全振りしました。月 80 時間程度をスキルアップにぶっ込んで頑張ったので、たくさん昇給してほしいです。()
また、日々自分のできるベストエフォートでやり切ったことで自信がつきました。
自信と言っても、技術力が高くなった自信ではなく、未知の課題であっても、途中で詰まりに詰まっても、諦めずに完成させる自信です。
あとは余談ですが、12 月に第二子が産まれました。
28 日間のパパ育休を取得させていただきましたが、第一子は小1なので忘れていましたが、新生児の育児は本当に大変でした。育休取らなかったら、終わってました。育休取得を快諾してくれた会社とチームに感謝です。
時間の捻出が当面の間かなり難しい状況が続きます。
2024 年の目標(仮)
プライベートでは0歳児の育児が最優先であるため、どれだけ時間を捻出できるか未知数ですが、一旦、書き出します。
- Flutter と React の実装スキル向上
- 実務を通じて、Flutter での実装スキルをより高める。
- 実務を通じて、React での実装スキルをより高める。
- Flutter での個人開発アプリ作成
- 技術習得やアイデアを試すことを目的として、一つ作る。
- 継続的なインプット&アウトプット
- React 学習ロードマップの続きをする。
- 『良いコード/悪いコードで学ぶ設計入門』を再読する。
- ブログ更新を月に1記事投稿する(1〜5月)
- Qiita 記事更新を月に1記事投稿する(6〜12月)
- Zenn に初投稿する。
…とりあえず書き出したものの、「長期的に仕事で何を実現したいか」を逆算してしっかりと考えられていない気がしてきました。目標は再考します。
おわりに
今回は、Web 系エンジニアとしての2年目(2023 年)の1年を振り返りました。
ありがとうございました。