Zeals TECH BLOG

チャットボットでネットにおもてなし革命を起こす、チャットコマース『Zeals』を開発する株式会社Zealsの技術やエンジニア文化について発信します。現在本ブログは更新されておりません。新ブログ: https://medium.com/zeals-tech-blog

GKE で OOMKilled されたコンテナを検知

こんにちは、分析基盤を担当しながらインフラも面倒見ている鍵本です。 本日は Google Kubernetes Engine(GKE) 環境において OOMKilled されたコンテナを検知する方法についてお話します。

海外エンジニアにアピールするためMediumにZeals Tech Blogを開設しました!

こんにちは、テックブログの運用を担当している玉城です。 早速ですが本題に入らせてもらいます。海外のエンジニアに向けてMediumにテックブログを開設しました! medium.com とてもいい感じのデザインになっていますので、是非一度訪問してください。

NTCIR-15 Dialogue Evaluation Task DialEval-1

NLP

A brief introduction and a simple approach DialEval-1 consists of two subtasks: Nugget Detection (ND) and Dialogue Quality (DQ). They aim to evaluate customer-helpdesk dialogues automatically. The ND subtask is to classify whether a custom…

Introducing Kubeflow to Zeals

Self introduce Hi there, this is Allen from Zeals Japan. I work as a SRE / gopher which mainly responsible for microservices development.

pandas高速化ライブラリの検証

はじめに 初めまして、ZealsでMLエンジニアをしている三宅とジョーです! 今回のブログではpandas高速化ライブラリを検証し、その有用性を探っていきます! はじめに 目的 pandasの非効率性 高速化ライブラリ 1. Modin 2. Dask 3. Vaex 検証 検証を行うマシ…

Railsアプリケーションの技術的負債3つと、そのリファクタリングについて

はじめに ​ こんにちは!ZealsでRailsエンジニアをしている鈴木です。 みなさんは定期的に技術的負債の返済をしていますか? 今回は我々が日頃リファクタリングによって負債を返済する活動の中で得た気づきについてご紹介したいと思います。 はじめに 技術的…

Design Systems & Style Code Refactoring

By Vish Nambiar & Kim Hyun-sung Contents Contents Introduction Our Current Problems 1. DRY - Don't Repeat Yourself 2. Locating implementations of CSS 3. We spend too much time on styling Previous Refactoring Strategies The Connection Betwe…

JSON log formatterを使ってPythonのlogが複数行分割される問題を防ぐ

こんにちは!Zeals で Python をメインに書いている新卒 1 年目のソフトウェアエンジニアの玉城です。 Python で Cloud Logging(旧: Stackdriver Logging) や Datadog にログを出力するとき、複数行に分割されてしまい、元のログイベントとの関連付けが難…

Trying to Build a Redux Implementation with Web Assembly in Rust

Introduction Hi, I'm Aaron, a frontend engineer at Zeals. At Zeals, we use React for the frontend of our main application, with Redux as our primary method of managing state. While this works just fine for most of what we need our frontend…

新卒から見たZealsエンジニア組織について

はじめまして!現在Zealsで内定者インターンをしている玉城です! 私は大学の在学期間中、GoとGCPを使ったWebアプリケーションの作成や時間短縮ツールなどを独学で作成したり、自然言語処理と機械学習を用いた研究を行っていました。Zealsには、利用している…

Cloud SQL で private IP を付与する際に気をつけたいこと

こんにちは、分析基盤を担当しながらインフラも面倒見ている鍵本です。 本日は Cloud SQL に private IP を付与して失敗 した話をします。

LINEトーク上でのLINE Pay決済を史上初のサービス化まで持っていった話

はじめに こんにちは! ZEALSで主にRails&Reactを書いている中村です!

GKE環境のRedashでPostgreSQLサーバのディスクが溢れたので、Persistent Volumeをいじって何とかした

こんにちは、分析基盤を担当している鍵本です。 本日は昨年の10月に GKE に移行した Redash の PostgreSQL サーバでディスクがいっぱいになってサービス停止してしまった 時のお話をします。 GKE に移行した話については2019年11月15日に公開したテックブロ…

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…

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 の定義 出力…