Zeals TECH BLOG

チャットボットでネットにおもてなし革命を起こす、チャットコマース『Zeals』を開発する株式会社Zealsの技術やエンジニア文化について発信します。

fast_jsonapi gemを1.2から1.5へアップデートしたら躓いた点と対応策

こんにちは、分析基盤を担当しつつ Rails エンジニアのサポートもやっている鍵本です。 本日は Fast JSON API のバージョンアップをした時に突然テストが落ちて困った話をします。 github.com 背景 テストが落ちる状態の再現 エラーの原因 対応方法 まとめ …

TypeScriptでconditionベースのサブセットタイプを作成する

Photo by Alvaro Reyes on Unsplash 究極の謎を解くためのタイピングシステムの詳細について こちらの記事は翻訳記事となります。 原著者の許諾を得て翻訳・公開しております。 英語記事: TypeScript: Create a condition-based subset types 原文公開日: 20…

会話分析におけるGraphDBの活用

こんにちは。ZealsでCTOをしている佐藤です。 Zealsでは AdventCalendarを開催しており、そちらの15日目の記事となります! はじめに 会話分析とは? 何がしたいか Neo4j 技術選定について 環境構築・実行 振り返り さいごに はじめに 会話分析とは? 私達が…

pytestのparametrizeの使い方とその有用性について

※こちらはZeals AdventCalendar 12日目の記事です。 こんにちは! Pythonエンジニアの荒木です。 夏頃に社内の開発プロジェクトにPythonメンバーとしてアサインされ、本格的にPythonを業務で書くようになり、最近はほぼ毎日Pythonを書いています。 Pythonの…

Mozilla Developer Roadshow 2019 - A short report!

I recently attended the 2019 Developer Roadshow Asia: Tokyo. I am a huge fan of Mozilla's work, not just simply for their Firefox browser, but for their efforts in trying to make the internet accessible to everyone. So when a friend told m…

Should you convert your React App from Javascript to Typescript?[React開発の言語をJavaScriptからTypeScriptに移行する理由]

(※画像はGeekbotさんの記事より引用) ベトナム出身のフルスタックエンジニアNguyen(グエン)さんが、ReactにおけるJavaScriptとTypeScriptについての記事を書いてくれました! Zealsでは、フロントエンド開発にReactフレームワークを導入しています。Reac…

Zealsの新たな開発拠点『Zeals Garage』はなぜ生まれたのか?

こんにちは。Zeals開発チームのPMで、今回のオフィス増床の責任者を務めた阿久津です。 去る11月6日、Zealsの新しい開発拠点『Zeals Garage(以下Garage)』がオープンしました。 zeals.co.jp 本日はこちらのGarage増築の背景や中の様子、実際の使い勝手など…

第3回、Zeals開発合宿に行ってきました!@湯河原

どうも!味わい深いエンジニア kody です!Zealsでは第3回となる開発合宿に行ってきました! Zealsでは、過去に2度の開発合宿を行っております。 tech.zeals.co.jp tech.zeals.co.jp 3度目の実施となった今回の合宿はこれまでと異なり、Zealsの社員メンバー…

Redash 分析環境のGKE移設&ver.3から7へのアップデート手順を公開

こんにちは、分析基盤を担当している鍵本です。 本日は Redash サーバを GKE に移設して序にバージョンアップまでしちゃいました というお話をしようと思います。 背景 移設時のポイント GCP リソース作成のコード化 バージョン管理をしやすくするための GKE…

gRPC(protobuf)をモノリシックなRailsアプリケーションに導入する

こんにちは! Railsエンジニアをやっているtakakudaです。 今回のエントリーでは、Zeals(旧fanp)サービスへのgRPCを導入を紹介できればと思います。 目次は以下のようになります。 そもそもgRPCとは 導入経緯 導入 proto fileにデータ構造を定義する protoc…

Kubernetes Meetup Tokyo#24で「ZealsでのCI/CDパイプライン構築事例」について登壇しました!

こんにちは! 普段はGolangでMicroservicesを開発しているぱんでぃーです! 今回のエントリーでは『Kubernetes Meetup Tokyo #24』でLT枠として登壇してきたレポートをお届けします! k8sjp.connpass.com

Rails環境でセキュリティ向上のため、Brakeman gemを導入&脆弱性対策を実施しました

こんにちは、ZealsでバックエンドエンジニアとしてRailsを使って開発をしている鈴木です。 Zealsでは、セキュリティ対策の一環としてBrakemanを使用しております。 今回はなぜ、Brakemanを導入することに至ったかの理由とBrakemanの導入、実際に活用してうま…

Gotanda.js#13をfreeeさんのオフィスで開催&登壇しました!

みなさんこんにちは! 10月4日に五反田の地域JavaScriptコミュニティ『Gotanda.js』の第13回イベントが行われたのですが、Zealsエンジニアのぱんでぃーさんこと濱田が登壇したので、そちらの模様をお届けいたします。 Gotanda.jsはテックブログで今までに何…

React+Redux環境に『Jest』と『 Enzyme』を導入し、フロントエンドでのテスト環境を構築しました

みなさんこんにちは! Zealsでフロントエンドエンジニアとしてインターンをしている栂瀬といいます。 この度Zealsで、テスティングフレームワークのJestを導入しました! 背景や導入にあたっての取り組みなど、何を行なったかを詳しくご紹介していきたいと思…

進化し続ける「Zeals」サービスを支えるアーキテクチャについて

こんにちは、Zeals CTOの島田です。 本日は、進化するZeals(旧fanp)サービスのアーキテクチャを、 リリース当初と現在で比較して紹介 します。 以下のようなアジェンダで解説していければと思います。 はじめに リリース当初のアーキテクチャ 技術選定 新し…

Zshの起動を爆速にするプラグインマネージャーZplugin【コーナーで差をつけろ】

皆さんこんにちは!現在SREチームでエンジニアインターンをしており、4月から新卒入社する玉城です。 今回はZshプラグインマネージャーのZplugin導入のススメです! Zpluginの紹介 Zpluginインストール方法 Zpluginを用いた.zshrcの設定例 はやくなった要因…

【週刊 Kubernetes 連載】ミニマリストのための CI/CD パイプライン!!

Kubernetes導入初期では最適なCDパイプラインを構築するハードルが高い!!そんな悩みを持つあなたにピッタリの『明日から導入できるミニマリストのためのCI/CDパイプライン』をご紹介します!!

行動ログをRailsからBigQueryに流す仕組みの導入

はじめに こんにちは、分析基盤を担当している鍵本です。 本日は DB に保存されている行動ログを BigQuery に流すように修正 したお話をしようと思います。 はじめに 背景 非RDB化の方針 Rails 側の設定 logger の再定義 出力データ用の Struct の定義 出力…

五反田界隈のエンジニアコミュニティが盛り上がってる件

皆さんこんにちは! VPoE兼サーバサイドエンジニアをやっている福本です! 五反田には開発言語の地域コミュニティをはじめ、たくさんのエンジニアコミュニティが存在しているのですが、7月に多くのイベントが開催されました。 開催されたイベントの多くでZEA…

React Hooksを使用してみました!

(※画像はReact Hooks Tutorialから引用) はじめに こんにちは! 普段RailsとReactを書いている中村です! 最近本格的にReactを書きはじめたのですが、今年リリースされたhooksを早速触ってみました! 今回はhooksを触って得た知見を共有していこうと思いま…

RailsエンジニアのReact入門

こんにちは。 最近暑くなってきて通勤が大変な阿部です。 さて、普段Railsを書いている私ですが、先月初めてReactのPRを出しました! 新しい言語を勉強すること、それを実際に使って何かを作り上げることは楽しいなぁと改めて感じ、エンジニアの良さを再認識…

RDBの歴史をディグってみた

こんにちは! 4月に新卒で入社したエンジニアの荒木です。 業務ではデータの不整合を解消したり、データベースの構造を作り替えたりしています。 今回の記事のテーマは、【リレーショナルデータベース(RDB)の歴史】です。 RDBが生まれる以前のDBの歴史から、…

第1回 ZEALS Developer Meetupと称し、社内LT大会を実施してみた!

こんにちは!味わい深い担当のサーバサイドエンジニアKodyです! 先日 ZEALS DeveloperMeetup (社内LT大会) を開催したので、その模様をお届けしたいと思います!!! 同じく社内LT大会を企画しようとしている人に参考になれば幸いです! Developer MeetUp…

世界規模のハッカソン”AngelHack”の運営をしてきました!

皆さんこんにちは! ZEALSでVPoE&サーバサイドエンジニアをやっている福本です! 6月29 ~ 30日に行われた『Angel Hack Tokyo 2019』に運営として参加してきましたので、当日の模様をお伝えさせて頂ければと思います。 www.routexinnovation.com 私Facebook…

Gotanda.rbをZEALSオフィスにて開催 & 登壇しました #2

こんにちは! ZEALSで Rails & Reactを書いている中村です! 今回もZEALSオフィスにてGotanda.rbが開催されたのでその様子をお伝えします! 前回のイベントレポートもありますので、Gotanda.rbに興味のある方はこちらもご覧ください。 tech.zeals.co.jp テー…

ZEALSエンジニアに開発者アンケートを実施してみた

皆さんこんにちは!ZEALSでVPoE兼サーバサイドエンジニアをやっている福本です! さて、本日はZEALS社内のエンジニアに使っている「エディタ」や「shell」などに関するアンケートを取ってみました! 普段ZEALSのエンジニアメンバーには、テックブログで記事…

Gotanda.rbをZEALSオフィスにて開催 & ZEALSエンジニアが登壇しました!

はじめまして! ZEALSで Rails & Reactを書いている中村です! 4月に復活したGotanda.rbのイベントがZEALSオフィスにて開催されたので、その様子をお伝えします! ZEALSエンジニアの福本がGotanda.rbのOrganizerであるため、今回ZEALSオフィスで開催する運び…

Kubernetesにおけるmanifestファイル, imageの管理について

こんにちは、CTOの島田です。 弊社サービスであるfanpでは、定期バッチ含む全サービスがGKE上で起動しています。 今回は Kubernetesのmanifestファイルやイメージを効率よく管理するための取り組みを紹介したいと思います。 Kubernetesを本番運用していると…

ZEALS第2回エンジニア開発合宿に行ってきました!!@三浦海岸

皆さんこんにちは! サーバーサイドエンジニアの阿久津です! 5/11(土)〜5/12(日)の2日間、ZEALSで2回目となる「 エンジニア合宿 」に参加しました。 私は今回から初参加だったのですが、今回の合宿の様子を紹介させていただきます。 概要 開発合宿の目的 合…

Rails + ReactでS3に画像データをuploadするまで

こんにちは! 普段Rails + Reactを書いていますkannachiです。