OpenAPI Spec を出力できる DSL、TypeSpec の実践例

この記事はドワンゴ Advent Calendar 2024の 1 日目の記事です。 はじめに こんにちは。ZEN IDの開発をしている、エンジニアのユーンです。 株式会社ドワンゴは先日2024年11月16日に開催された日本最大級のTypeScriptをテーマとした技術カンファレンス TSKai…

株式会社ドワンゴは TSKaigi Kansai 2024 にプラチナスポンサーとして協賛します

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

ZEN Study 教材基盤開発エンジニアインターンシップ体験記

はじめに 初めまして! 2024年8月1日から 2024年10月31日の3ヶ月間、教材基盤開発セクションでインターンシップに参加していた市島功大です。 参加前のスキルレベルは以下のような状態でした。 JavaScript を使ったバックエンド開発を主に行なっていた TypeS…

主キーサイズの違いによるPostgreSQLの検索性能の違いを比較する

PostgreSQLのテーブルの主キーのデータサイズによって単体取得のSELECT速度がどのくらい変わるか、実際に計測して比較してみました

2024年度 ドワンゴ新卒研修のようす

こんにちは、2024年新卒のXeramiyaです。 本記事では4ヶ月間のドワンゴの新卒研修について、研修生の立場からお話しします。 レッツゴー! 全体研修 入社直後の約2週間は、企画・デザイナー・エンジニア職合同での全体研修が行われました。 各事業部や会社の…

機械学習パイプラインLuigiのタスク同士の関係を良い感じに可視化する方法

はじめに ドワンゴ教育事業でデータサイエンティストとして働いている中井です。 この記事では、PythonのパイプラインパッケージであるLuigiで構築したパイプラインにおいて、それを構成するタスク間の依存関係・タスクのグループ間(task_namespace で分け…

エンジニアをプロダクトマネージャーたらしめたものは何か?

みなさま、お疲れ様です!企画開発エンジニア の高瀬 (@Guvalif) です。 "企画開発エンジニア" という職種はあまり耳馴染みがないかもしれませんが、一般的には TechPM:Technical Product Manager として知られるような役割となります。ところで、プロダク…

DroidKaigi 2024 のスポンサーになりました

DroidKaigi 2024 のスポンサーになりました

「N予備校」を「ZEN Study」に変えてみた件 〜 サービス名称変更の経験

「N予備校」を「ZEN Study」に変えるプロジェクトのフロントエンド対応に関する記事です

N予備校 iOSアプリのViewState列挙体を使ったSwiftUIの状態管理

iOS

はじめに N予備校 iOSアプリ開発チームに所属しているcoffmarkです。 iOSチームではSwiftUIを使って開発を進めています。 SwiftUI導入までの経緯については、ブログ記事(N予備校iOSアプリへ SwiftUI を導入するまでの道のりについて)で説明しています。 Swif…

iOSのアプリライブラリとTestFlight

iOS

こんにちは。N予備校 iOSチームです。 まず初めに、N予備校アプリのZEN Studyへのリニューアルが当初予定より遅れていることについて、心よりお詫び申し上げます。皆様のご期待に沿えるよう努めておりますので、今しばらくお待ちいただければ幸いです。 学習…

BigQuery縦持ちデータを動的に横持ちデータにする方法

はじめに ドワンゴ教育事業でデータアナリストとして働いている小林です。 一般的にデータアナリストはデータの収集・分析を通して組織の意思決定を支援する役割を期待されることが多く、ドワンゴ教育事業における私のミッションもKPI動向の可視化やダッシュ…

N予備校の規約類を microCMS で管理して、運用を改善した取り組み

はじめに こんにちは。Webフロントエンドチームの山口です。 この記事では、N予備校の規約類を microCMS で管理して、運用を改善した取り組みについてご紹介します。早速ですが、前置きは抜きにして本題に入りたいと思います。ぜひお付き合いください! 背景…

grpc-kotlinの実装をinterfaceの定義によってテンプレート化する

grpc-kotlin の実装で不便に感じた点を、独自のインターフェース定義による簡易的なフレームワークを作ることで改善しました。

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