■ポジションについて
自社サービス「BaseMe」のSREおよびバックエンドエンジニアをお任せします。
現在は一定機能開発は進んできた状況のため、今後はサイトのパフォーマンス改善、RESTからGraphQLへのAPI移行も進める想定です。
■業務内容
・プロダクトのパフォーマンス改善
∟アプリケーション全体のパフォーマンスを監視し、ボトルネックを特定
∟クエリの最適化、キャッシュ戦略の実装、コードのリファクタリングを実施
∟Amazon RDSおよびBigQueryを用いたデータベースパフォーマンスの最適化
∟AWS環境(ECS含む)のリソース管理とスケーリング戦略の最適化
・インフラ管理と自動化
∟Terraformを使用してAWSリソースのプロビジョニングと管理
∟Dockerコンテナの最適化とECS上でのデプロイ管理
∟CI/CDパイプラインの構築と継続的な改善
・データ分析とレポーティング
∟Google AnalyticsおよびGoogle Tag Managerを使用したユーザー行動の追跡と分析
∟Redashを用いてビジネスインテリジェンスの提供およびデータの可視化
・セキュリティとスケーラビリティ
∟セキュリティベストプラクティスに基づいたアプリケーションおよびインフラの設計
∟高トラフィック処理のためのシステムスケーラビリティの確保
・RESTからGraphQLへのAPI移行
∟現在のREST APIのアーキテクチャを分析し、GraphQLへの移行戦略を策定
∟Ruby on Railsを使用してGraphQL APIの設計と実装
∟新しいGraphQLエンドポイントの開発および既存機能の移行
∟フロントエンド(Next.js)とのインターフェース調整と最適化
・技術ドキュメントの作成
∟新しいGraphQL APIのドキュメント作成
∟パフォーマンス改善策やインフラストラクチャ変更のドキュメント化
■使用技術
言語: Ruby, JavaScript, TypeScript, HCL
フレームワーク:Ruby on Rails, Next.js
ミドルウェア: Terraform, Docker
クラウドサービス: Amazon Web Services
実行環境: Amazon ECS
データベース・ストレージ: BigQuery, Amazon RDS
アクセス集計: Google Analytics
BIツール: Redash
その他: Google Tag Manager
■チームの特徴
・1ヶ月以下のイテレーションでのアジャイル開発を実践している
∟定期的な振り返りMTG、継続的なデプロイ(デリバリー)も行っています。
・コード品質向上への意識が高い
∟本番にデプロイされるコードには、全てコードレビューまたはペアプログラミングを実施しています。
・属人性をなくす取り組みでチーム全体での開発を進めている
∟外国籍、学生インターン、育児中のメンバーも在籍しています。KPI などチームの目標・実績値については誰でも閲覧可能になっている他、デイリーMTGや情報管理ツールでノウハウや議事録、日報などの情報共有を行っており、特定の人だけしかできない業務が存在しないような取り組みを行っています。
■はたらく環境
PC: 個人端末での開発
エディター: JetBrains 等のお好きな IDE, エディター
ナレッジサービス: Notion
コミュニケーションツール: Slack, Google Meet
グループウェア: Google Workspace
開発向けサービス: GitHub, i18nexus
デザインツール:Figma
■About the Position
You will be responsible for the SRE and backend engineering of our in-house service, "BaseMe." While certain features have already been developed, we are now focusing on improving site performance and migrating APIs from REST to GraphQL.
■Job Description
- Product Performance Improvement
- Monitor the overall performance of the application and identify bottlenecks.
- Optimize queries, implement caching strategies, and refactor code.
- Optimize database performance using Amazon RDS and BigQuery.
- Optimize resource management and scaling strategies in the AWS environment (including ECS).
- Infrastructure Management and Automation
- Provision and manage AWS resources using Terraform.
- Optimize Docker containers and manage deployments on ECS.
- Build and continuously improve CI/CD pipelines.
- Data Analysis and Reporting
- Track and analyze user behavior using Google Analytics and Google Tag Manager.
- Provide business intelligence and data visualization using Redash.
- Security and Scalability
- Design applications and infrastructure based on security best practices.
- Ensure system scalability to handle high traffic.
- API Migration from REST to GraphQL
- Analyze the current REST API architecture and develop a strategy for migrating to GraphQL.
- Design and implement GraphQL APIs using Ruby on Rails.
- Develop new GraphQL endpoints and migrate existing functionalities.
- Coordinate and optimize interfaces with the frontend (Next.js).
- Technical Documentation
- Create documentation for the new GraphQL API.
- Document performance improvements and infrastructure changes.
■Technologies Used
- Languages: Ruby, JavaScript, TypeScript, HCL
- Frameworks: Ruby on Rails, Next.js
- Middleware: Terraform, Docker
- Cloud Services: Amazon Web Services
- Runtime Environment: Amazon ECS
- Database/Storage: BigQuery, Amazon RDS
- Access Analytics: Google Analytics
- BI Tools: Redash
- Others: Google Tag Manager
■Team Characteristics
- Agile development with iterations of less than a month.
- Regular retrospectives and continuous deployment (delivery).
- High awareness of code quality.
- All code deployed to production undergoes code review or pair programming.
- We strive to eliminate individual dependence and promote team-wide development.
-Our diverse team includes international members, student interns, and members with childcare responsibilities. Team goals and KPIs are accessible to everyone, and we use daily meetings and information management tools to share know-how, minutes, and daily reports, ensuring no tasks are exclusive to specific individuals.
■Work Environment
- PC: Development on personal devices.
- Editor: Preferred IDEs or editors like JetBrains.
- Knowledge Service: Notion
- Communication Tools: Slack, Google Meet
- Groupware: Google Workspace
- Development Services: GitHub, i18nexus
- Design Tools: Figma
- Spoken Language: Japanese, English