Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ドワンゴ教育事業ソフトウェアエンジニア採用説明資料 / for-engineers

1a7a97f1e0528215affb71741487ccae?s=47 nnndev
February 05, 2021
1k

ドワンゴ教育事業ソフトウェアエンジニア採用説明資料 / for-engineers

株式会社ドワンゴのソフトウェアエンジニア向け採用説明資料です

1a7a97f1e0528215affb71741487ccae?s=128

nnndev

February 05, 2021
Tweet

Transcript

  1. ソフトウェアエンジニア 採用説明資料 株式会社ドワンゴ 教育事業

  2. 未来の「当たり前」の教育をつくる Vision / Mission ほんの少し先の未来、 ネットで学ぶときに「当たり前」とされるようなサービスを創るのは、 私たちにしかできない。 日々そう考えて企画開発しています。 それは教育の「当たり前」を変えること。 この前人未到の挑戦に、加わってみませんか。

  3. 教育事業について 学校法人角川ドワンゴ学園が運 営する「N高等学校」と連携し、 ネット時代に合わせた教育関連 のサービスを提供しています。
 (写真) img

  4. N高等学校について 日本最大の生徒数(2020年12月 現在16,641人)を誇るN高等学校 とS高等学校(設置認可申請中) はKADOKAWA・ドワンゴが創る ネットと通信制高校の制度を活 用した、新しいネットの高校です。 (写真) img

  5. 開発しているサービスと
 今後の展望


  6. • 高校卒業資格取得のための機能を開発 ◦ ネットで完結する ▪ 確認テスト ▪ レポート ▪ 単位認定試験

    • 課外授業の提供 ◦ プログラミング、クリエイティブ・エンタテインメ ントなど 高校生の日々の学習の魅力を最大化 

  7. 教材・生授業・Q&Aをスマホに最適化したオールインワン受験アプリ スマホに最適化された 教材 なかまと受ける 双方向生授業 なかまと話し教え 高め合いができる場所 N予備校 
 https://www.nnn.ed.nico/pages/introduction/feature/

  8. • LMS (Learning Management System) の搭載 ◦ ⇒次ページ • LMSを見据えたN予備校の改修

    ◦ より良い学習体験を目指すUI ◦ システムアーキテクチャ 次期・N予備校【今後】 

  9. • VRやAIと生徒の学習ログのビッグデータを用いた学習システム ◦ 知識レベルの測定 ◦ 目標へのアプローチ ▪ 教材のレコメンド ▪ 学習時間の予測

    ◦ 学習継続のインセンティブ LMS(Learning Management System) 

  10. 数万人に達する生徒の出願〜入学〜進級〜卒業までの管理業務や、定 期テスト・スクーリングなどの活動成績管理をなるべく少ない教職員で効 率的に行えるよう自社開発。 教務システム 


  11. 効率的で使いやすい機能要件定義と、軽快な実行速度が要求され ます。B2B/企業内システム開発経験者の方を求めています。 角川ドワンゴ学園の生徒数増加の勢いはこれからも継続S高等学校の登 場による複数校や生徒数の増加への対応数十万の生徒を捌けるような システムへ 次期・教務システム【今後】
 ▼

  12. 開発組織 開発の進め方について

  13. バックエンド セクション • 開発グループ • SREグループ 教育事業で開発を担当しているサービス開発部は、全体で22名。 以下の組織にわかれており、組織を横断してプロジェクトチームが作成さ れます。 組織体制


    フロントエンド セクション • スマホアプリグループ • Webフロントグループ • 品質保証グループ デザイン セクション
  14. • デザイナー、フロントエンドエンジニア、バックエンドエンジニアから必 要なメンバーをアサインします • 長期間のプロジェクトでは、全体スケジュールの管理のためプロジェ クトマネージャーをアサインすることもあります • 技術的難易度の高い開発では、アーキテクトやリーダーを中心に進 めます プロジェクト制


  15. • プロジェクトの規模やチーム構成により、プロジェクト内で最適な進め 方を決定 • 基本形式 ◦ スプリント期間は1週間 ◦ 必要な各セレモニーを実施 •

    主な役割 ◦ スクラムマスター ▪ エンジニアが担当 ◦ プロダクトオーナー ▪ 学園の方や教職員、エンジニア、その他メンバーが担当 スクラム開発

  16. 使用言語 / 技術 / ツール
 言語 / フレームワーク インフラ /

    運用管理 ツール
  17. フロントエンド / バックエンド / SRE 各領域について、詳細に取り組みをご紹介します

  18. フロントエンドエンジニア

  19. 複数のサービスをチーム全体で担当しています • PC向けWebフロントエンド • 教材Webフロントエンド ◦ iOS/AndroidからWebView経由で利用 ◦ PCからiframe経由でマイクロフロントエンド的に利用 •

    他、一部の管理者向けWebフロントエンド Webフロントエンドチーム
 フロントエンドエンジニア
  20. • 言語: TypeScript (strict: true) • ReactとReduxをベースとしたSPA(Single Page Application) ◦

    複雑な画面ではredux-observableを活用 ◦ 単純ならReact hooksのみで完結 • styled-componentsを用いたCSS in JS • Rails依存な別実装からの脱却を推進中 • IEは動作対象外です!!! PC向けWebフロントエンド
 フロントエンドエンジニア
  21. • 言語: TypeScript (strict: true) • 独自規約のあるHTMLにjQueryで動作を付与+一部UIを実装 ◦ より柔軟な動作を可能にすべくReact化を推進中 ◦

    増え続ける教材リソースとの互換性を守る必要あり • iOS/AndroidのWebView、iframeを介した連携あり ◦ WebViewとの結合確認や外観崩れ検知に課題 • Railsとの結合が強く、独立を推進中 教材Webフロントエンド
 フロントエンドエンジニア
  22. • 素早く柔軟にサービスを届けるために ◦ 常にリファクタリングを選択肢に入れ、見通し良く保ちます ◦ 毎週の勉強会で最新の動向を知り、技術選定や改善方針に反映します • 技術やサービス自体に集中するために ◦ 積極的に確認事項や手順、ルールを自動化します

    Webフロントエンドチームの取り組み
 フロントエンドエンジニア
  23. • Prettierでの自動整形、ESLint/Dangerによる指摘と一部自動修正 • Pull RequestごとにビルドするStorybookでの外観確認 • reg-suitによる自動化された画像回帰テスト • axe等による自動化されたアクセシビリティテスト •

    Sentryのエラーレポートによる異常検知 • 他、状況に応じて独自ルールや独自ツールなど、手段を選びません ◦ https://blog.nnn.dev/entry/2019/12/03/022824 ◦ https://blog.nnn.dev/entry/2020/12/11/021008 Webフロントエンドチームの取り組みの実例
 フロントエンドエンジニア
  24. 求めるWebフロントエンドエンジニア像
 • 新しい「当たり前」を実現するために ◦ Webフロントエンドのプロであり続ける・あろうとし続ける人 ◦ 現状を尊重した上で、とらわれずに問題と戦う人 ◦ 理想が遠くても、一歩を重ねていける人 ◦

    問題や仕様の精緻な理解に基づく大胆なアプローチができる人 • チームで「当たり前」を実現していくために ◦ 問題と目的をふまえた理想を描き推進するアーキテクト ◦ 現実を前進させ円滑に目的を達成するスクラムマスター フロントエンドエンジニア
  25. アプリエンジニア

  26. • iOS/Android 技術を持っている or 学び続けたい ◦ プロフェッショナルを求めています ◦ またチームもそうなるための支援を惜しみません •

    「当たり前の教育をつくる」ために、いいサービスを作りたい ◦ ビジョンに共感し、教育の未来をともにつくってくれるなかまを求めます • 多くのタスクや困難、トラブルに対して前向きに対峙できる ◦ 未来の教育システムをつくること、つくり続けることは容易ではありません ◦ そのハードな道のりを楽しみ、前向きに歩みを進めていきましょう Android/iOS アプリチームの求める人物像
 アプリエンジニア
  27. • 言語:Kotlin • ライブラリ:RxJava, Jetpack 各種, OkHttp3, mockito-kotlin • CI/CD:Bitrise,

    Danger • 対象OS:Android 6 以上(2021/4 より) Android チーム
 アプリエンジニア
  28. Android アーキテクチャ: MVVM
 アプリエンジニア

  29. • Pull Requestの作成・レビューを素早く回すことで、コード品質の担保と 開発速度の向上を実現 https://blog.nnn.dev/entry/2020/11/10/150801 • 案件と同時にリファクタリングを並行し、技術的負債を低減 Android チームの取り組み
 アプリエンジニア

  30. • よりモダン・先進的なコードベースへの改善 ◦ DIや新しいライブラリの導入 • よりアプリの特性を活かしたユーザー体験の提供 ◦ 動画再生の体験改善 ◦ Play

    課金 • より早い・効率的なユーザーへの価値提供 ◦ リリース自動化やABテスト Android アプリ解決していきたい課題
 アプリエンジニア
  31. • 言語: Swift • ライブラリ: RxSwift, Action, Alamofire, Quick, Nimble,

    OHHTTPStubs など • CI/CD: Bitrise, Danger, SwiftLint, fastlane • 対象OS: iOS 13 以上 (2021/4 より) iOS チーム
 アプリエンジニア
  32. • アーキテクチャ上の依存関係を1方向に制限 • レイヤー間のやりとりは Rx • ViewModel からの入出力をプロトコルで整理 ◦ 複雑になりがちなViewControllerの依存関

    係を整理 • ViewModel と Repository で手厚くテスト ◦ 毎回CIでチェック iOS アーキテクチャ: MVVM
 アプリエンジニア View ViewController Storyboard ViewModel ViewModelInputs ViewModelOutputs Model, Repository RepositoryProtocol テストあり 依存あり
  33. • 自動化を推奨 ◦ CIでのコードスタイルの統一や自動レビュー ◦ fastlane によるリリース作業の自動化 • 安定したアプリの提供 ◦

    アプリレビューやクラッシュログの自動通知による早期問題発見 • iPad 対応 ◦ タブレットならではの操作感を実現 iOS チームの取り組み
 アプリエンジニア
  34. • よりモダン・先進的なコードベースへの改善 ◦ リファクタリングや新しいライブラリの導入 • よりアプリの特性を活かしたユーザー体験の提供 ◦ 動画再生の体験改善 • より早い・効率的なユーザーへの価値提供

    ◦ リリース自動化のさらなる推進や ABテスト iOS で解決していきたい課題
 アプリエンジニア
  35. バックエンドエンジニア

  36. マイクロサービスアーキテクチャを採用 • 基本的にRuby on Rails ◦ サービスの特徴に応じて技術選択してい る • サービスごとに専属のチームは存在せずプロ

    ジェクトベースで必要なサービスを開発する体 制 アーキテクチャ
 バックエンドエンジニア
  37. • マイクいつでも快適にユーザーに使ってもらえるようにするために ◦ 技術的な負債を放置しないため継続的な改善を実施 ◦ 運用の積極的な自動化を推進 • タイムリーに機能追加を行うために ◦ 定期的な勉強会・読書会の開催

    ◦ メンター制度によるオンボーディング支援 ◦ スクラムマスターやアーキテクトといったロールの設定 取り組み
 バックエンドエンジニア
  38. • N高等学校が急成長しているなか開発体制が追いつけていない → チーム規模を拡大し未来の「当たり前」の教育を作っていくために • ビジョンに共感してくれるエンジニア • 例えば求めているロールとして... ◦ プロジェクトを円滑に進めることができるスクラムマスター

    ◦ 事業にとって最適な技術選定や設計ができるアーキテクト 課題 / 求めるエンジニア像
 バックエンドエンジニア
  39. SRE


  40. • 私たちはお客様がドワンゴのサービスを安心、快適に持続的にご利用し ていただけるように、サービスの信頼性とコスト最適化のトレードオフを適 切にマネジメントします。 • 私たちはお客様のサービス体験価値を最大化するために、社内外のス テークホルダーと協働し、生産性やサービスレベルの維持・向上に努め ます。 チームのミッション
 SRE

  41. 事業の成長に追随し、3つの価値のトレードオフを適切にマネジメントする チームが提供する価値
 SRE 機能追加 タイムリーに価値 創造 信頼性 性能 可用性 セキュリティ

    コスト最適 エンジニア ITリソース オペレーション SREは特にココ に責任を持つ
  42. 大切にしたい価値観
 SRE 顧客志向 エンジニア魂 責任感 顧客の価値創造に貢献する 計画を立てて 期限内にやり遂げる 好奇心 実験

    チャレンジ 問題解決 自己成長
  43. 顧客への価値創造と会社への貢献の地図(未完)
 SRE

  44. 現実
 SRE 機能追加 タイムリーに価値 創造 信頼性 性能 可用性 セキュリティ コスト最適

    エンジニア ITリソース オペレーション ・毎年生徒数が1.5倍成長し、ワークロードが急増していく ・機能追加やワークロード対策で複雑性も増していく ・人員不足で問題解決が後手に回りがちで、とりあえず の暫定対処の連続(パッチワーク) ・スケールさせたいが、本当のボトルネックがどこか把 握できていない ・どこが問題かがわからない。監視できている? ・セキュリティ対策は十分? エンジニアは増えない ... ITリソースを過剰に使用している 非効率なオペレーションが多い
  45. 現実
 SRE 問題を発見しにくい(可視化が不十分) 問題を発見して定義する人が不足(アーキテクト、エンジニア) 問題を解決する人が不足(エンジニア、スクラムマスター) モニタリング、計画力、実行力すべてが不足している

  46. ①ユーザ視点でサービスに問題が起きているのかいないのか分からない (例)「AWSで障害なので障害が起きているかもしれません」と報告する(せざるをえない) • ヘルスダッシュボードやコストダッシュボードの整備 ◦ 何を可視化するべきなのかを考えるのが一番難しい(SLI/SLOの定義と測定) • Datadog導入と移行を検討中 ②kubernetes on

    EC2(遺跡)を雰囲気で運用している • 現状のコンテキストを踏まえたcomputeレイヤの技術選定、移行 ◦ EKS, ECS, EC2、自社プライベートクラウド etc… ③サービスのボトルネック箇所が分からない • 毎日性能テストシナリオ流して測定しレポートしたい。継続的性能テスト(夢) ④AWSコンソールポチポチめんどい(サーバ内部も) • 地道にIaC化を進める(terraformのインポート作業とリファクタ) ⑤マルチAZ構成になってるけどAZ障害時に本当に動くのか • 地道に障害テストを進める、それができる環境を整備する 現実具体的な課題と解決の方向性(極一部)
 SRE
  47. 私たちと一緒に働いてみませんか? • 拡大期のサービスで腕を磨きたいエンジニア • ありたい姿とのギャップが大きいほどハートが燃えるエンジニア • 裁量が大きい環境で自分の力を試してみたいエンジニア 求める人物像
 SRE

  48. (参考)SREで扱う技術スタック
 SRE プラットフォーム • AWS(メイン) • プライベートクラウド(一部利用) コンピュート • N予備校

    • kubernetes on EC2 • 学校管理システム • EC2 データストア • S3 • RDS(Postgresql) • ElastiCache(Redis) • ElasticSearch + Kibana(ログ集約/分析) 監視 • 現状、以下が混在している • Zabbix • CloudWatch • Prometheus • 今後Datadogに集約予定 プログラミング言語 • ruby, groovy, bash, pythonなど • 今後、オペレーションや障害復旧の自動化を進める にあたって言語選定を行いたい CI/CD • jenkins • codebuild 構成管理&オーケストレーション • github • terraform • ansible タスク管理 • JIRA コミュニケーション • Slack • Confluence
  49. • メンバー構成: 5名 ◦ マネージャ兼リーダー:1名 ◦ 専任社員:2名 ◦ 兼務社員:1名 ◦

    業務委託:1名 SIer出身者多し WebでバリバリSREやられている方大歓迎です! (参考)SREチームの構成
 SRE
  50. ドワンゴについて

  51. ドワンゴの沿革
 1997年:創業
 2001年:音楽配信サービス開始 
 2006年:ニコニコ動画サービス開始 
 2012年:1回目のニコニコ超会議を開催 
 2013年:東京都中央区銀座へ本社移転 


    2014年:KADOKAWAと経営統合 
 2016年:N高等学校をKADOKAWAとともに設立 
 2021年:S高等学校 開校予定 

  52. 
 
 
 制度・福利厚生
 
 
 ・リフレッシュ休暇
 (5日間以上の連続した休暇のうち 
  2日間以上の有休・振休を取得することで

    
  2日間のリフレッシュ休暇が取得できます) 休暇 
 ・対象資格を取得すると、 
  月額3,000~50,000円を3年間支給します 
  
  -ITストラテジスト 
  -システムアーキテクト 
  -プロジェクトマネージャ 
  -ネットワークスペシャリスト 
  -データベーススペシャリスト 
  -情報処理安全確保支援士 
  -システム監査技術者 
 
 上記以外にも、対象資格あり。 
 
 ※入社前に取得した資格は、支給対象外です 資格取得手当
 ※テレワーク対象者のみ 公共交通機関を使った通勤経路の定期代の実費相当額を上限 月額50,000円まで支給しま す。
 ※テレワーク対象者は、原則、通勤交通費手当の支給はございません。  ただし、業務指示における出社時の交通費は、会社が認める範囲で別途支給します 
 
 
 テレワーク手当 テレワークを実施するにあたっての電気代及び通信費等並びに就業環境を整えるための費用と して、月額20,000円を支給します。
 
 
 
 
 通勤交通費手当 機材貸与 
  開発者向けのハイスペックなMac / Windowsが選択可能。キーボード もUS/JISを選択可能。 
  VPN接続で社外から内部ネットワークへ接続してテレワークできま す。 
 

  53. 
 
 満3歳未満のお子さんを養育する場合、育児休業 の取得が可能です。 
 「育児・介護休業法」で定められた最長2歳までの期 間よりも長く取得が可能です。男女ともに取得実績 があります。
 育児休業 制度・福利厚生


    
 
 小学校入学までのお子さんを扶養しており、保育園 などの育児サービスを継続的に利用する場合、そ の月額基本料金の2分の1相当額を、上限50,000円 まで育児手当として支給します。 
 育児手当 
 小学校卒業までのお子さんを養育する場合、勤務 時間の短縮が可能です。 
 標準勤務時間は1日8時間ですが、5時間、6時間、 7時間から選択可能です。 
 育児短時間措置 
 
 ・同好会(公認の同好会は、会社より補助金支給) 
 ・LT大会(職種ごとに、持ち回りで5分ほどの短いプレゼン大会を開催しています) 
 ・slack (社内で用いているコミュニケーションツール。メールはあまり使いません!) ・ドワンゴ大忘年会 (全社員が一同に集まり、1年の振返りや社内表彰などを行います) 
 コミュニケーション活性 ・artifata GINZA KABUKIZA店(会社の中に美 容院があります!)
 施設 
 
 
 ・福利厚生倶楽部(RELO CLUBが運営する福利厚生サービスが利用可能) 
 ・関東ITソフトウェアの健康保険組合各種サービス(保養施設やスポーツ施設の利用が特別価格で利用可能) 
 ・財産形成制度(財形貯蓄制度、社員持ち株制度) 
 
 
 その他
 子育て支援
  54. オフィス環境


  55. • 技術ブログで社内の取り組みなどについて発信しています ◦ https://blog.nnn.dev • 求人ページ、社員インタビュー ◦ https://dwango.co.jp/saiyo/nkou_staff/ • 技術書購入費を支給しています

    その他
 SRE
  56. 一緒に
 未来の「当たり前」の教育を
 つくるなかまをお待ちしております!