Okta Customer Identity Cloud(旧 Auth0)のForms for ActionsがEAになったよ

はじめに こんにちは。ドワンゴ教育事業バックエンドエンジニアの金子です。 Okta Customer Identity Cloud(旧 Auth0。以下 Okta CIC)の新機能「Forms for Actions」(以下 Forms)がEarly Accessになりました。本番環境での使用も想定されているステージです…

Zod を使って CSV からの入力データをバリデーションする

こんにちは、バックエンドエンジニアの日下です。 CSV から JSON へ変換するスクリプトを、TypeScript で実装する機会がありました。 今回は、CSV のデータのバリデーションに Zod を使った話をします。 スクリプトの目的 システム間のデータ連携が目的です…

TSKaigi 2024 参加レポート

バックエンドエンジニアの松尾です。 2024 年 5 月 11 日に開催された日本最大級の TypeScript をテーマとした技術カンファレンス TSKaigi 2024 に参加しました。 本記事では弊社からの登壇内容やスポンサーブースの様子をお伝えします。 登壇内容まとめ 弊…

pnpm の node_modules を探検して理解しよう

はじめに こんにちは。ドワンゴ教育事業でエンジニアをしているユーンです。 N予備校アプリケーションやその他複数のプロジェクトで pnpm を採用しました。pnpm とは何か、npm とどう違うのかというのを node_modules の構造を追いながら理解しつつ、教育事…

株式会社ドワンゴは TSKaigi 2024 をスポンサーしています

株式会社ドワンゴは2024年5月11日に開催される日本最大級のTypeScriptをテーマとした技術カンファレンス TSKaigi 2024 にプラチナスポンサーとして協賛いたします。 TSKaigi 2024 当日は弊社教育事業エンジニアが複数名参加します。スポンサーブースをいただ…

N予備校のインフラを Amazon EKS に移行した話

SRE

N予備校のインフラを Amazon EKS に移行した話 はじめまして。ドワンゴの教育事業で SRE エンジニアをしている西永です。 N予備校 では Kubernetes を採用しています。 これまでは Control Planes 含めすべての構成要素を自前で構築し運用していましたが、様…

ドワンゴ教育事業の話を聞いてみたい人へ:カジュアル面談窓口の一覧

ドワンゴの教育事業では、カジュアル面談の窓口を複数用意しています。 speakerdeck.com 気軽にカジュアル面談したい Pittaに複数のカジュアル面談を開設しています。主催者によっては、業務以外の話題を用意していることもあります。 pitta.me pitta.me pit…

ドワンゴの就業型インターンの体験記

はじめに 大阪産業大学3年の関佑太です。 2023年12月18日~2024年3月31日の間N予備校のAndroidチームにインターンで参加していました。 私がこのインターンに参加した時のスキルレベルとしては次のような感じです。 個人開発でアプリを作ったことはある テス…

Conventional CommitsとCHANGELOGの自動生成でリリースのユーザ影響をわかりやすくした話

ドワンゴ教育事業 バックエンドエンジニアのtakuminishです。 現在、私は教材入稿ツールの開発チームに所属しています。 教材入稿ツールは昨年の2023年06月に社内向けに正式リリースされた比較的新しいツールであり、リリース当初はリリースノートに関する運…

Ktorm のクラス設計を読み解いて、DSLを拡張する

先日Server-Side Kotlin MeetupのLT大会で登壇してきましたので、その内容をブログ記事でも公開します。 テーマはKotlin製のORマッパー、Ktormのクラス構造と機能拡張についてです。

N予備校エンジニアインターンシップ体験記🌟

初めに 初めまして、「教育学習サービス『N予備校』サーバーサイドエンジニアインターンシップ」に参加した落合大輔です。 私は大学院の修士1年生の秋頃にインターンシップに応募しました。内容はTypeScriptによるバックエンドの開発です。私の場合は期間は4…

@swc/jestで手間をかけずにテストを早くする

こんにちは、ドワンゴ教育事業 Web フロントエンドチームの猪井です。 この記事では babel-jest から @swc/jest に移行することで Jest によるテストが速くなった事例について紹介します。 JavaScript のテストツールは、Vitest のバージョンが 1 を迎えたり…

iOS版Twitter(X)アプリではツイート内のURLがUniversal linksとして機能しないので、N予備校アプリへの導線を見直した話

こんにちは。N 予備校 Webフロントエンド開発チームの中村です。 去年の夏頃、記事タイトルの件に絡んで起きていた問題の対応をしたのでその時の話を書きます。1 なおTwitter社の社名及び同社のサービス名は現在ではXとなっていますが、本文内容の当時はまだ…

ESLintのローカルルールで独自のコーディング規約を実装する

オンライン学習サービスN予備校の開発を支えるコーディング規約の考え方に少し触れ、その運用を支えるESLintの活用を紹介します。ESLintのフラットコンフィグで設定を書いていると、プロジェクト固有のルールを扱いやすいことを紹介しています。

レガシーブラウザ向けのビルドオプションを剪定する

この記事はドワンゴ Advent Calendar 2023 の 20 日目の記事です。 はじめに こんにちは。今年の 10 月に教育事業本部にフロントエンドエンジニアとして入社したユーンです。 この記事では、 2016 年から新陳代謝を続けている N予備校 Web フロントエンドの…

ドワンゴの「ものづくりが好き」というエンジニア文化の話

この記事は ドワンゴ Advent Calendar 2023 の16日目の記事です。 新卒採用イベントで会社説明をする機会があり、その中でもタイトルにもさせてもらっている通り「ものづくりが好き」をはじめとするドワンゴのエンジニア文化などの話をさせてもらいました。 …

バックエンドエンジニアがフロントエンドの開発をすることになった話

この記事は ドワンゴ Advent Calendar 2023 の 13 日目の記事です。 自己紹介 こんにちは。バックエンドエンジニアのlenです。 現在私は社内で使用する教材入稿ツールを改修するプロジェクトに参画しており、そこではバックエンドの実装に加え、フロントエン…

2023 年に行ったN予備校 Android アプリの開発まとめ

この記事は ドワンゴ Advent Calendar 2023 の 10 日目の記事です。 N予備校 Android アプリ開発チームでは、2023 年はアプリの実装および内部改善を活発に行い、内容をまとめた記事も例年より多く公開できました。 この記事では 2023 年に行った開発内容を…

N予備校とスマホゲームでの品質保証の違いについて

1.自己紹介 こんにちは。ドワンゴ教育事業のN予備校 品質保証チーム(以降「品証」)の栗山です。冒頭に簡単ではありますが、自己紹介をさせてください。 2023年3月より勤務しています。前職ではスマホゲームの品証を約5年ほど経験しておりました。 この記事で…

ドワンゴの25卒新卒採用はじまっています

今年もドワンゴの25卒新卒採用がはじまりました。 25卒の方を主なターゲットとしていますが、既卒の方でも一定の条件を満たせば応募可能です。 ニコニコ、教育、DMV(Dwango Media Village)と3つの事業で新卒を募集しています。 saiyo.dwango.co.jp 教育事…

遠隔地勤務の働き方

はじめに こんにちは。N予備校 品質保証チームの鈴木です。私は遠隔地勤務者として東北地方の福島県に居住しながら、2023年2月よりドワンゴの教育事業本部で勤務しています。この記事では私の遠隔地勤務の体験を通じて感じたことを紹介したいと思います。 は…

新卒エンジニアがESLintのFlat Config移行と格闘した話

ESLintのFlat Configへの移行は進んでますでしょうか?試してみたでしょうか? 今回はドワンゴの新卒エンジニアが初仕事として取り組んだ、ESLintのFlat Configへの移行に関して「その方法と嵌ったところの乗り越え方」をお伝えします。 この記事で言及する…

マイクロサービス構成における NestJS での gRPC クライアントの運用戦略

はじめに はじめまして、バックエンドセクションの yukimochi です。 現在、N予備校ではバックエンドのアプリケーションの移行計画が進んでいます。 その一環で、一部のマイクロサービス間通信についても REST API + OpenAPI の現状から gRPC へと移行するこ…

Kotlinのsealed型を使って高機能なenum型を実装する

Kotlinのsealed型を使って、標準ライブラリの enum class よりも高機能なenum型を実装する方法を紹介します。

TypeScript5.2 で追加された using Declarations and Explicit Resource Management をテストで活用する

こんにちは。N予備校 Webフロントエンド開発チームの堀です。 先日 TypeScript@5.2 が正式リリースされました。 TypeScript@5.2 で新しく追加された using Declarations and Explicit Resource Management (using 構文と明示的リソース管理)によって、N予備…

DroidKaigi 2023 アプリにコントリビュートしました

こんにちは、N予備校 Android アプリ開発チームの @hiraike32 です。 今年も DroidKaigi の開催が近づいてきましたね。開催に先立って DroidKaigi の公式アプリのコードが GitHub で公開されました。 github.com N予備校 Android/iOS アプリ開発チームでも D…

Kotlin sealedタイプによる論理和型の実装: ポリモーフィズム形式と代数的データ型形式

Kotlinのsealed typeを使った論理和型の実装方法として、「ポリモーフィズム形式の実装」と「代数的データ型形式の実装」2つのパターンを比較検討します。

株式会社ドワンゴは iOSDC 2023 をスポンサーしています

iOS

こんにちは、N予備校 iOS アプリ開発チームです。 今年も WWDC 2023 が終わり、iOSDC 2023 の時期ですね! WWDC では新しいプロダクトの Vision Pro はもちろん、Swift だとマクロ、Xcode だと Asset の自動コード生成やローカライズ周りの強化などなど、さ…

マネージャーが育休を取得するときに気をつけたこと

この記事では、マネージャーである私(男)が、育休を取得するときに気をつけたことや取り組んだことについて紹介します。 「いなくても業務を円滑に回す」という大方針を軸に、自分なりに段取りを整えました。 ドワンゴでのマネージャー業務の一例として、…

Web フロントエンドチームの紹介

はじめに こんにちは。N 予備校 Web フロントエンド開発チームの三橋です。 この記事では Web フロントエンドチームについてご紹介します。 メンバー(実施時点 9 名)にカジュアル面談でよくご質問いただく項目を含めたアンケートに協力してもらいました。 チ…