はじめに
Who Are You ?
こんにちは🇯🇵 Hello 🇺🇸 Guten Tag 🇩🇪
タグバンガーズ (Tagbagners) でインターン・業務委託として約3年半の間関わらせていただいたUwaiといいます。
-- 経歴 --
高校卒業後、渡米しアメリカの大学に進学も実践的なソフトウェアの存在について疑問を感じ帰国。帰国後はソフトウェアエンジニアとしてインターン・業務委託に従事。
その後、渡独しドイツの大学に入学しソフトウェアエンジニアリングを専攻。在学中に現地にてエンジニアとして複数企業に勤務し2023年秋に卒業。
( 3年ほどドイツに住んでいますがドイツ語があまりできないことは秘密です🔐 )
-- 特技・趣味 --
・サッカー ( 6歳からはじめ今も社会人チームでプレーしています )
・三味線 ( 割と弾けます、大会にもよく出ました )
・旅行 ( 旅行に行きますがよく写真を撮り忘れます )
・新しいテクノロジー (休みの日に色々新しいものを試します)
タグバンガーズとの出会い
タグバンガーズとの出会いは今でも鮮明に覚えています。ソフトウェアエンジニアの業務委託として従事していたものの自己の成長欲に駆られ新しい出会いを探していました。
特にマイクロサービス, Container (コンテナ)・Kubernetes, クラウドサービスというような旧環境を刷新するようなテクノロジーに興味を持っていました。そんな中タグガンガーズの詳細をみた際、なんとタグバンガーズでは全ての自身の興味分野と合致していたので迷わず応募しました!
タグバンガーズでの目標と振り返り
🎯 目標
インターン・業務委託として参加する際に目標を持っていました。
以下がターゲットとです。
1. マイクロサービスへの理解を深める
2. Container (コンテナ)・Kubernetesへの理解を深める
3. クラウドサービスへの理解を深める
📑 振り返り
🟢 1. マイクロサービスへの理解を深める
タグバンガーズではさまざまなエンタープライズ向けのアプリケーションがマイクロサービスとして構築・開発されています。そんな中、業務ではマイクロサービスの開発やモノリスのマイクロサービスへの統合に携わり理解を深めることができました!
🟢 2. Container (コンテナ)・Kubernetesへの理解を深める
タグバンガーズで開発されているマイクロサービスはKubenetesで構築されています。
業務ではKubernetes環境へのDeployやサービス間通信の方法の模索、またログの収集、APM (パフォーマンスモニタリング)等の関心ごとも総じて学ぶことが出来ました。
それだけではなく、低階層なコンポーネントの役割なども業務で関わることができブラックボックスではなく体系的にどのようにアプリがリクエスト受け取り通信しリクエストを返しているかまで手に取るように理解できました!
🟢 3. クラウドサービスへの理解を深める
タグバンガーズで構築されているインフラストラクチャー (サーバー・データベースなど)はAWSを基盤としています。業務ではただアプリを開発するだけではなく、環境構築・デプロイ・保守・監視などもAWSのサービス通じて実装することができ理解を深められました。
それだけではなくカスタマー(顧客)のインフラの構成のデザインにも携わったり、AWSの資格の学習等もタグバンガーズでは力を入れて取り組んでいたのでセオリーと実践的な構築とどちらも業務レベルで携わることが出来ました!
タグバンガーズでの業務内容
研修の様子
タグバンガーズに入ってどのような業務になるのか後の参考になればと思い、
自身の体験を大まかに系列に並べました !
1. 研修 - 社内ビデオ共有システムの設計・実装
バックエンド希望だったのでJava, Spring Boot, Spring Cloud Gateway, Keycloak, AWSなどを学習しながら設計・実装 (その他ポジションによって研修内容は異なる)
2. 業務アプリのAWS基盤の設計・構築
AWSの様々なサービスを使いアプリのAWS基盤を設計・構築
3. 登壇
初めての登壇でSpring Securityの認証・認可について発表
4. 業務アプリの保守作業
業務アプリの回収や保守対応
5. 新規アプリの設計・構築・実装
マイクロサービスのとして構築される新規アプリの設計・構築・実装
6. 旧サービスの刷新化
EOLに伴うSaaSに移行やアプリの刷新化
以上の通り様々な分野のアプリの色々な側面にアプローチすることができで新しいことの連続でした。
壁に当たることはありましたがチームと協力し何がどうわからない、うまくいってないかを言語化し乗り越えストレスなく成長しながら楽しく業務を遂行することが出来ました !
ずばり! タグバンガーズはこんな人におすすめ
1️⃣ ヒアリング・設計からシステムに関わり実装・保守まで手掛けたい人
タグバンガーズでは自社でヒアリング・設計からシステムに関わりデザイン・実装・保守まで関わることが出来ます。そのため、自身で設計したアプリをリリースしフィードバックをもらえる体験ができ、プロダクトのオーナーシップも向上させられます!
2️⃣ たくさんのユーザーに利用されるシステムを開発したい人
タグバンガーズではたくさんのユーザーに利用されるシステムを開発しています。そのため、たくさんのユーザーベースに対応するための処置やシステムの設計の経験が出来ます。
またたくさんのユーザーにシステムを利用してもらえるため、開発者としてモチベーションも高く利用者へのインパクトも強く与えることが出来ます!
3️⃣ ソフトウェアエンジニアとしてレベルアップしたい人
タグバンガーズではただソースコードを書くだけではなく、拡張性を担保しながら堅守なシステムを開発することが求めれます。CI上でで静的コード解析・フォーマット・ビルドチェックなどを行い常にベストプラクティスに乗っ取りシステムを開発できます。
また開発するだけではなくシステムの設計から始められ全体の構成を把握することができるのでインフラ・基盤構築からシステムの開発などソフトウェアエンジニアとして広範囲かつ専門的に携わることができるのでレベルアップできます!
4️⃣ プログラミングスキルを実践レベルに上げたい人
タグバンガーズでは入社して1ヶ月の間研修があります。タグバンガーズの主な開発言語であるJavaを使って、実際のプロジェクト同じように設計・実装できるのでJavaプログラミングに自信がなくても研修で実践に近いレベルになります。
さらに1つのプロジェクトだけではなく様々なプロジェクトに参画することができるので様々な仕様やライブラリを実践レベルで応用することが可能です!
5️⃣ クラウドサービスに詳しくなりたい人
タグバンガーズではAWS (Amazon Web Services)をクラウドサービスとして利用しています。クラウドサービスに興味があるが実践経験がない場合もタグバンガーズでは様々なプロジェクトで利用し日々の業務で利用することができるため自然とクラウドサービスの知識が付きます。
また、AWSの試験も社内で推奨されており試験の際には会社が試験費用を負担したり、経験者に受験のアドバイスをもらったりなど学習の環境が整っています!
タグバンガーズの技術スタック・環境
🍃 Spring Boot x Java
タグバンガーズといえばSpring Boot x Javaと言えるほど、ほぼ全てのアプリケーションがSpring Boot + Javaで開発されています。
入社前の自身のJavaの実力で言うとアカデミックでは理解のあるものの業務レベルではありませんでした。しかしながら業務でさまざまなアプリと様々なSpring・Spring Bootのアプリの開発に携わることにより今ではSpring Boot + Javaが理解の深いスタックになりました。
Javaと言われるとラーニングコストが高そうだと思われるかもしれませんがタグバンガーズでは入社時の研修の実践的なアプリの設計・開発を通じSpring Boot + Javaのスタックを学び応用することが出来ますのでご安心を! また技術の高い社員さんも多数いらっしゃいますので気軽に質問する機会もあります!
🕸 React ・ Next.js
タグバンガーズは主にモダンなJavaScript フレームワークの一つであるReact (Next.js)を主にフロントエンド技術として利用しています。
プロジェクトによってはReduxをStatemanagementとして利用し、スケーラビィティーを担保しながら開発を進めます。さらにただ既存のアプリに寄せるのではなく、どんどん最新のフレームワーク・ライブラリーを取り入れて効率よく開発できるように設計したりなどで開発者体験(Developer Experience)も高くなっています!
⎈ Kubenetes
タグバンガーズで開発されているマイクロサービス設計のアプリケーションはKubernetesによって管理されています。Kubernetesは規模関係なく世界中のアプリケーションで利用されており、現在の標準のコンテナのオーケストレーションツールとなっています。
そのKubernetes上で構築されたアプリをデバッグしたり、スケーリング戦略を考えたり、CI / CD パイプラインを構成したりなど様々なトピックに業務に関わりながらのめり込むことが出来ます 。
特にタグバンガーズではEKSというAWSマネージドなKubernetesのクラスターを利用しておりどのようにKubernetesがEKS上で実装されているかなどの低階層なところまで理解する機会もあります !
☁️ AWS
タグバンガーズではAWS (Amazon Web Services)というクラウドサービスを利用してサーバーの基盤を構築しています。2023年12月現在、AWSはクラウドサービス内で1位のシェアを誇るサービスで様々なサービスをタグガンガーズでは利用しています。
既存のAWSのサービスだけではなく新しいサービスがリリースされれば、該当サービスを試す機会も社内であり実際のプロダクションの環境で利用することもあります。
タグバンガーズでは常に最新のクラウドサービスに関わる機会があるのでクラウドサービスへの関心を業務レベルで深められ実際に様々なプロジェクトで提案できるまでになります!
💽 さまざまなデータベース
タグバンガーズではこれといった決まったデータベースを利用するのではなくプロジェクトや要件にあった、目的を達成するためにデータベースを選定し利用しています。
例を挙げますとデータベースに厳密な一貫性を求める場合はRDB (MySQL, PostgreSQLなど)を利用し、結果整合性のを求めるプロジェクトの場合はNoSQL (MongoDB, Elasticsearch)などを利用しています。
このためタグバンガーズでは様々なデータベースからプロジェクトのニーズに合わせ、合うものを選定し業務を通じて学ぶ体験が出来ます!
💻 環境
タグバンガーズの開発環境は新しいテクノロージーを取り入れているので日々変化していますが
いくつか核となるものを紹介します。
1. MacBook Pro
ハイスペックなMacBook Proが支給され業務が捗ります。
2. お好みのIDE
IntelliJ Idea (Ultimate)やvscodeなど好みのIDEを利用できます。
3. Docker
プロジェクトの開発環境はDockerを利用します。
4. Slack
コミュニケーションツールとしてSlackを利用しています。
5. Jira ・Confluence ・Bitbucket ・BambooCI
- Jira: チケット管理
- Confluence: ドキュメント管理
- Bitbucket: ソースコード管理
- Bamboo CI: CI / CD パイプライン
💡 ちょっとニッチなスタック ( DDD : ドメイン駆動設計 )
タグバンガーズではDDD (ドメイン駆動設計)というシステムの設計手法を利用しています。
プロジェクトをローンチする際カスタマーのニーズは何かを初めにヒアリングしそのヒアリングを元にカスタマーと一緒にシステムを作っていくことになります。システムの概要が明確に何が関心ごとで何がそれに対する副作用なのか等を考えるのに役に立つ方法となっています。
タグバンガーズではMiroを用いてドメインは何なのかなどをペルソナから始め細分化、そしてそれをドメインモデルに反映しそれを元にシステムをデザインするという形をとっています。
この手法によりタグバンガーズに来る前はシステムの構築が得意ではなかったものの今ではより複雑なシステムもこの手法により設計・構築できるようになりました!
まだまだあるタグバンガーズの魅力
🌟 社員同士の距離が近い
社員同士との距離が近く気軽に業務の相談を行うことが出来ます。また、社員だけではなくタグバンガーズの看板である社長もフレンドリーで技術的な相談をすると親身になってアドバイスをもらえ業務にブーストをかけることが出来ます 🔥
🗣 登壇するチャンスがある
タグバンガーズではJSUGを含め様々な形でオープンソースのコミュニティーに参加しています。コミュニティー内で登壇する機会があるので有効活用すれば登壇できます。( 私も登壇しました ! )
🍖 BBQ ・美味しいご飯が食べられる
🥩 BBQの様子
タグバンガーズではイベントの際BBQやレストランに行きます !
業務を忘れチームメイトと食べるご飯とお酒は絶品です 🤩
最後に
3年半という長い間様々なメンバーと様々なプロジェクトに囲まれながら素晴らしい環境のもと業務に従事できたと感じます。プロジェクトには簡単に進まないものもありカスタマー含め様々な方を巻き込まなければ達成できなかったものも多数ありました。
タグバンガーズに入れば新しいテックスタックやソフトウェアエンジニアとしての技術だけではなくマインドセットや思考方法、開発者にとどまらない専門知識など他には代え難いものが手に入ります!
タグバンガースの業務に関わることができ最高でした!