TalentX Tech Blog
https://tech.talentx.co.jp/
Tech Blog
フィード

Flutter入門
TalentX Tech Blog
はじめまして!MyReferのフロントエンド開発を行っている佐藤です。 MyReferでは、Webブラウザ版だけでなくモバイルアプリも提供しています。 tech.talentx.co.jp 初めてFlutter開発に携わる機会ができたので、Flutter初学者向けに環境構築と、基本ウィジェットの紹介を行います。 Flutter環境構築 iosシミュレーター起動とインストール Androidエミュレーター作成 vscodeのFlutterプロジェクト作成とシミュレーター起動 初期コード解説 ウィジェット ウィジェット例 Textウィジェット Image.assetウィジェット Paddingウィ…
19日前

Mockoonを使ってフロントエンド開発を高速化する(Mockoonのすゝめ)
TalentX Tech Blog
はじめまして、こんにちは! MyTalent開発チームのフロントエンドエンジニア・田中です😎 今日は「Mockoon」というローカル環境でお手軽にモックサーバーを立ち上げることができるアプリケーションをご紹介したいと思います! mockoon.com Mockoonとは Mockoonは2017年に登場したAPIモックサーバーをローカルで簡単に作成・実行できるオープンソースのアプリケーションです。 API開発やテストにおいて、実装が先行しがちなフロントエンドに対しバックエンドでの実装がされていない場合や、外部APIへの依存を避けたい場合に非常に役立ちます。 GUIベースで直感的に操作でき、環境…
1ヶ月前

Bedrockを用いてテキストの文脈に応じて処理を切り分ける方法
TalentX Tech Blog
はじめに Bedrockによるテキストの判定 課題の概要 処理の全体像 実装内容と得た知見 実装内容 実装時の注意点 まとめ 最後に はじめに はじめまして!MyReferでバックエンドエンジニアをしている桃谷です。 MyReferチームでは、ユーザーが入力したテキストの文脈に応じて処理を切り分けたいといった課題があり、それをAmazonBedrockを用いて解決したのでその内容を紹介したいと思います。 Bedrockによるテキストの判定 課題の概要 まずは課題の全体像から見ていきたいと思います。 ユーザーがテキストフィールドに入力した内容に応じて、特定の文脈にマッチしたら処理Aを、それ以外の…
2ヶ月前

プロダクト間のAPI連携をモック化して開発効率を向上させるための取り組み
TalentX Tech Blog
はじめに 課題:ローカル環境の複雑さ 直面していた問題 解決策:OpenAPIとPrismを活用したモック化 Prismとは モックサーバーの動作の説明 Prism導入手順 1. Docker Composeの設定 2. 環境変数の追加 3. エンドポイントの切り替え 導入効果 柔軟な開発環境制御の実現 システムリソースの最適化 導入時の注意点 問題のある定義例 推奨される定義例 まとめ 最後に はじめに はじめまして、TalentXの小野です! TalentXでは、MySeries管理のバックエンドの開発を担当しています。 今回は、ローカル環境での開発効率を向上させるために、プロダクト間のA…
3ヶ月前

RFC 5322に基づいた、メールの送信者名に特殊記号を含む場合のアドレス解析方法
TalentX Tech Blog
はじめに ParseAddress関数について エラーが発生する状況 RFC 5322について name-addr display-name 特殊記号を含むアドレス名でエラーが発生する理由とその対策 実装例 結果 正常に実行できる入力例 不正値と判定する入力例 まとめ 最後に はじめに はじめまして、TalentX バックエンドエンジニアの伊東です! 採用MAサービス MyTalentの開発を担当しています。 MyTalentのバックエンドではGo言語を使用しており、メールサーバーから受け取ったメールのアドレスをパースする際にはnet/mailパッケージのParseAddress関数を使用して…
4ヶ月前

一から実践できるAWS WAFのログ記録の有効化とCloudWatch Logsによる分析方法
TalentX Tech Blog
こんにちは。TalentXのエンジニアチームでSREを担当する前野です。 今回は、AWS WAFを運用する上で基本的なログの有効化からCloudWatch Logs Insightsを使用したログの実践的な分析方法を紹介します。 AWS WAFのログの有効化手順 WAFのログ形式 CloudWatch Logs Insightsによる分析 まとめ AWS WAFのログの有効化手順 AWS WAFではWeb ACLごとにトラフィックを記録するログを出力できます。 出力先は、"CloudWatch"、"Firehose"そして"S3"から選択できますが、ここではお手軽にログの分析ができるCloud…
6ヶ月前

aws-sdk-go-v2で試すAWS Bedrockナレッジベース:Retrieve & RetrieveAndGenerate API活用
TalentX Tech Blog
TalentXの籔下です。 TalentXでは生成AIを用いた機能開発や業務効率化を進めており、その取り組みの中でAWS BedrockのナレッジベースのAPIであるRetrieve APIとRetrieveAndGenerate APIを、aws-sdk-go-v2経由で試してみました。 本記事では、S3にアップロードしたPDFの読み込み方法、事前に用意したベクトルデータベースを利用したRAG(Retrieval Augmented Generation)の使い方などを紹介します。 API概要 Retrieve API 実行してみる Retrieve APIの実装 RetrieveAndGe…
6ヶ月前

Amazon BedrockのConverse APIにてPDFを利用する時の注意点
TalentX Tech Blog
MyTalentという採用MAサービスの開発を担当している、バックエンドエンジニアの樋口です。 今回はAmazon BedrockのConverse APIにてPDFを扱う際に、期待していた動作と違う部分があったので紹介します。 使用したモデルはAnthropic Claude 3.5 Sonnetで、2024年11月29日に動作確認した内容です。 はじめに - Converse APIのドキュメント機能について Amazon BedrockのConverse APIでは、Knowledge Baseを使用せずに各種ドキュメントファイル(PDF、Excel、Word等)を用いたチャットが可能で…
7ヶ月前

Inbound Parse Webhookを使用してシステムでメールを受信する
TalentX Tech Blog
はじめまして、TalentXの内之丸です。 TalentXではバックエンドの開発を行っています。 今回はSendGridの機能であるInbound Parse Webhookを使用して、システムでメールを受信する方法について、ご紹介いたします。 Inbound Parse Webhookとは Inbound Parse Webhookとは、特定ホストへのメールをSendGridが受け取り、本文、添付ファイル、ヘッダなどの情報をパースし、指定されたURLへPOSTする機能です。 Myシリーズでは、人事、候補者間のメッセージやりとりにて、候補者からの返信メッセージをMyシリーズ画面で表示するために…
8ヶ月前

TSConfigの厳格化対応の利点と進め方
TalentX Tech Blog
はじめに TSConfigの厳格化とは 当時のプロダクトの背景 対応方針 対応した結果 まとめ 最後に 参考 はじめに はじめまして、フロントエンドエンジニアで最近はMyReferプロダクトの開発を担当している佐久間です。 MyReferフロントエンドの技術刷新の取り組みの一環としてTypeScriptの設定(TSConfig)を厳格化しました。 TSConfigの厳格化が必要な理由や、その対応プロセス、直面した課題、そして学んだことについて共有します。 TSConfigの厳格化とは TypeScriptには多くの設定オプションがありますが、中でもstrictオプションは、型チェックをより厳密…
9ヶ月前

golangci-lintとGitHub Actionsでlinterの新たなissueのみを通知する
TalentX Tech Blog
MyTalentという採用MAサービスの開発を担当している、バックエンドエンジニアの樋口です! MyTalentではGo言語でバックエンドの開発を行っています。サービス運用開始から2年が経過したタイミングで、新たなバックエンドエンジニアが増えても一定のコード品質を保つために、golangci-lintを導入しました。 この記事では、golangci-lintを導入した際に発生した問題と解決方法について記載します。これからgolangci-lintの導入を検討している方の参考になれば幸いです。 golangci-lintとは golangci-lintはGo言語用のlinter実行ツールです。 …
1年前

モバイルアプリをSwift、Kotlinから、Flutterに移植した話
TalentX Tech Blog
はじめまして!バックエンドエンジニアで、主にMyReferプロダクトのバックエンド開発を担当している政家です。 MyReferプロダクトでは、従業員の方がリファラル活動を行いやすくするために、Webブラウザ版だけでなくモバイルアプリも提供しています。 〜モバイルアプリイメージ〜 そのモバイルアプリはこれまで、iOSはSwift、AndroidはKotlinで開発をしてきましたが、 昨年2023年7月、Flutterへの移植を行い、リリースしました。 今回は、Flutterに移植した背景や、どのようにFlutter移植を進めていったのか、移植後に感じているメリットやデメリットに関してご紹介したい…
1年前

TalentXにおけるフロントエンド組織の役割
TalentX Tech Blog
はじめまして!フロントエンドエンジニアで、Myシリーズ管理の開発を担当している髙木です。 2023年11月に TalentX に入社し、約半年が経ち、慣れてきたこの頃、 当社の開発体制の中でフロントエンドチームは主にどんな領域を担当しているのか、社歴の浅いフレッシュな目線で感じたことなど含めフロントエンドのご紹介させていただきます! はじめに 開発体制とフロントエンドの役割 フロントエンドの主な担当領域 技術スタックの選定 UI/UXの設計に基づくフロントエンドの開発 フロントエンドとバックエンドの統合、テスト フロントエンド専任の特徴 まとめ 最後に はじめに TalentX の開発でフロン…
1年前

Stoplight と OpenAPI generator でAPI開発をより便利にする
TalentX Tech Blog
はじめまして、TalentX, EMの岸本です。 TalentXでは開発業務の他、バックエンドチームのマネジメントを担当しています。 昨今のAPI開発において、OpenAPIを用いた仕様の定義は一般化していると思いますが、 その運用方法に関して、TalentXで工夫している点などを踏まえてご紹介させていただきます。 スプレッドシートからの脱却 私が入社した数年前のタイミングでは、APIの仕様はスプレッドシートで管理されていました。 その際の課題として バージョン管理が難しく、適切なロールバックや変更タイミングの把握ができない。 Slack等でのコミュニケーションになってしまう、変更場所の把握が…
1年前

TalentX内製UIライブラリとStorybookでデザインシステムの堅牢化
TalentX Tech Blog
はじめまして、フロントエンドエンジニアの神長です。 普段はフロントエンド組織とMyシリーズのフロントエンド技術のリードをしています。 現在TalentXではMyシリーズの開発にあたり、ボタンや入力ボックスなど様々なコンポーネントをtalentx-uiというUIライブラリとしてStorybookで管理しています。 なぜそのような運用に至ったのかをご紹介していきます。 なぜUIライブラリを自社で作る必要があった? 2023年2月に複数のプロダクトをMyシリーズとして共通PF化した直後、それぞれのプロダクトをあたかも同じプロダクトのようにシームレスに行き来できるUXにするためにどのプロダクトも同じよ…
1年前

QAエンジニアがいない会社に入社してやったこと、まだやれてないこと
TalentX Tech Blog
はじめまして。2023年2月に入社したQAエンジニアの大出です。 前職はフリマアプリを開発する会社で約8年QAエンジニアとして働いていて、TalentXで初めてtoBのサービスのQA業務を行うことになりました。 入社前の状況 やったこと 新規開発の検証 テストプロセス改善 テスト計画の作成 ドキュメントの整理 バグチケットの整理 ドッグフーディング 採用 まだやれてないこと 終わりに TalentXは2015年にMyReferというサービスをリリースして以来、2023年2月に自分が入社するまで社内にソフトウェアテストを専門に行うメンバーは在籍しておらず、開発エンジニアが自分達で全てテストを行っ…
1年前

Gormを使用する際に向き合うMySQLプリペアドステートメントの制限と解決策
TalentX Tech Blog
はじめまして、バックエンドエンジニアの穴原です。 普段はMyTalentという採用MAサービスの開発を担当しています。 MyTalentのバックエンドはGoを利用しており、データベース操作にはGormを利用しています。 GormでMySQLを操作する場合、発行されるクエリはプリペアドステートメントを利用して作成されます。 MySQLのプリペアドステートメントのプレースホルダーの数は65535個までと決まっており、変更もできません。 そのため、大量のデータを操作しようとするとこの制限に引っかかり、エラーとなります。 対策としては複数回に分けて処理を行うか、安全な型に限りプレースホルダーを利用しな…
2年前

デプロイ頻度を改善した話
TalentX Tech Blog
はじめまして!バックエンドエンジニアの中山です。 今回はMyReferチームでFour Keysの1つであるデプロイ頻度を改善した話をご紹介いたします。 Four Keysとは Four Keysの導入 改善前のデプロイ頻度 なぜデプロイ頻度を改善するのか? とにかくまずは自動化 デプロイの自動化 デプロイの並列実行 リリースノートの自動生成 デプロイ頻度と変更のリードタイムの自動集計 改善結果 リリースフローを整備する 小さなPRを作る リリースフロー 改善結果 〜脱・定常リリース〜 まとめ 今後の展望 最後に Four Keysとは Four Keysとは、Google社が提唱するソフトウ…
2年前

TalentX Tech Blogをリスタートします
TalentX Tech Blog
はじめに TalentXでCTOをしている籔下です。 3〜4年ほど前にtech blogを数本書いたまま更新ができていなかったのですが、この数年でエンジニアの人数も3〜4倍ほどになり、新しいプロダクトのリリースや社名変更、インフラのアーキテクチャリプレイスなども行い、大幅にアップデートしています。 これらのアップデートにとどまらず、今後も様々なチャレンジを控えており、これからもっと発信していきたいということでtech blogを再開することにしました。 新装第一弾ということでこの3〜4年の取り組みなどをまとめてTalentXのプロダクト開発の現状を伝えていきたいと思います。 開発組織 体制 リ…
2年前

まじめにスクラム開発に取り組みはじめた話
TalentX Tech Blog
Tech Leadの籔下(@ybalexdp)です。MyReferではスクラム開発を導入しており、これまでスプリントプランニングでざっくり誰がこの一週間何をやるのかを決めていましたが、スプリント期間中に終わらないチケットも散見し、そもそもスプリントで予定のなかったチケットをやったり、ほぼ機能していませんでした。 一度着手したものの優先度が落ちたタスクのステータスが「進行中」から放置され、延々とスプリントバックログに残り続けるみたいな状況もあり、現在の開発がオンスケなのか、組織としてどれくらいの規模の開発を1週間にこなせるのかなどの状態が見えづらい状況でした。 また現在エンジニアチームが総勢20…
6年前

バックエンドAPI開発にスキーマ駆動開発を導入している話
TalentX Tech Blog
Tech Leadの籔下(@ybalexdp)です。本記事では現在MyReferが取り組んでいるスキーマ駆動開発に関して紹介します。 導入に至った経緯 現在MyReferではフレームワークにFuelPHPを採用し、Hack1でプロダクトを開発しています。 しかし、HHVM2がPHPのサポート終了を発表したため、FuelPHPを捨てHackでいくか、HHVMを捨てPHP7でいくか、他の言語にリプレイスするか選択に迫られました。さらにFulePHP自体も開発が過疎化している状況でLTSも定められておらず、PHP7にした場合、LaravelなどLTSが定まっているフレームワークに変更するなどの検討も…
6年前

gitlab runnerをAmazon EC2スポットインスタンス+docker in dockerで実現する
TalentX Tech Blog
はじめましてMyReferでエンジニアとして主にバックエンドとインフラを担当している籔下です。MyReferのエンジニアチームにてtech blogを始めることにしました。今回は、MyReferで動かしているgitlab runnerの構成などについて紹介します。
6年前