サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
techblog.enechain.com
はじめに enechain HRの酒井です。主にエンジニアやPdM、デザイナーといった、enechainのテクノロジーチームの採用を担当しています (以降、Tech採用と表記します)。 スタートアップでTech採用に携わる方には共感いただけると思いますが、エンジニアをはじめとしてTech人材の売り手市場トレンドが続いており、人材獲得競争はますます激化しています。また、転職意欲の有無にかかわらず候補者との接点を持つことが一般化し、採用プロセスが長期化する傾向にあり、選考以外でのコミュニケーションが以前にも増して重要になっています。 同時に、enechainの事業やプロダクトのフェーズ、組織規模も刻々と変化しています。創業期にはアトラクトの武器となっていた「アーリーステージ特有の面白さ」は、今では伝えづらくなりました。魅力の伝え方や採用の在り方自体が変わっています。 2023年を振り返ると、私
はじめに こんにちは、enechainのApplication Platform Deskでエンジニアをしているmaverickです。 我々のチームでは、バックエンドアプリケーションをGoで構築しています。 データベースアクセスが発生するテストはgo-sqlmockを使っていましたが、テスト用のDBを使って、実際のアプリケーションの動作環境に近いテスト環境へ切り替えました。 今回は、その際に行ったTestcontainersの導入とテストの並列実行へのアプローチについてご紹介します。 はじめに sqlmockの課題 Testcontainersの導入 導入手順 Testcontainersの起動 コンテナ起動のコスト テストデータのコンフリクト 並列化へのアプローチ 残課題 最後に sqlmockの課題 弊チームでは、可能な限りJOINは行わずにシンプルなクエリでデータベース処理を行うこと
はじめに GitHub Script概要 セットアップ context の中身 eSquare Liveでの活用事例 発生した問題 タグの打ち間違い releaseブランチが複数存在する場合のデプロイ先選択の複雑化 解決策としてのGitHub Scriptの活用 機能1 vX.Y.Zのタグがmainブランチのコミットハッシュと一致することを確認する 機能2 releaseブランチは最新バージョンのみ自動で検証環境にデプロイする 完成版スクリプト まとめ はじめに こんにちは、enechainでeSquare Liveを開発しているエンジニアの古瀬(@tsuperis3112)です! 今回は、マニュアル依存になりがちなデプロイフローの問題を actions/github-script で解消した方法についてお話します。 eSquare Liveの開発では、効率的かつ信頼性の高い開発フローを維
仕事の納まった皆様も、これから納める皆様も、ひとまず一年間お疲れ様でした。 enechain CTOの須藤(@sutochin26)です。 年末と言えばラーメン二郎納めですね。 私も良い感じに納めてきたので、美しい写真をシェアさせてください。 さて、今年も本当に色々な出来事がありました。 去年のアドベントカレンダーではカルチャーに全振りの記事を書いていて、振り返ってみると組織づくりに投資していた1年でした。 techblog.enechain.com 転じて、今年はenechainの事業・プロダクトが大きな転換期を迎えた1年でした。私自身も、事業やサービスへの向き合いがかなり強まったように思います。 CTOとして、「こうしておけば良かった」という反省も山程ありますし、「これが出来て良かった」というポジティブな振り返りもあります。 この記事では、思いつくままにそんな振り返りを書いていこうと思
前置き バレルファイル自体の賛否については今回は触れないこととします。 はじめに こんにちは。enechainで働いている takurinton です。 enechainのデザインシステムではコンポーネントをindex.tsという名前のバレルファイルに集約し、それをエントリポイントとしてビルドして公開しています。つまり、新しくコンポーネントを追加しても、そのコンポーネントを公開するためにはindex.tsにexportを追加する必要があります。 // index.tsの中身 import Button from './Button'; import Input from './Input'; export { Button }; export { Input }; しかし、この運用では新しくコンポーネントを追加した際にそのコンポーネントをindex.tsに追加することを忘れたままリリースし
この記事はenechain Advent Calendar 2024の25日目の記事です。 はじめに eScanチームの課題 導入期 導入期から成長期にかけて 導入期に感じていた課題 取り組んだこと チーム目標の設定 ステップ1. チームの理想の状態を決める ステップ2. 現状と理想のギャップを見つけ出し、ギャップを生み出している課題を抽出し解決策を考える OKRの目標にチーム目標の内容を反映する チーム目標の振り返りの振り返り 1回目: 8月下旬 2回目: 9月下旬 3回目: 10月下旬 4回目: 12月中旬 変化 チームの変化 個人の変化 終わりに はじめに こんにちは、ソフトウェアエンジニアの小沢です。 私が所属しているチームではeScanというプロダクトを開発しております。プロダクトをリリースしてから様々な機能開発を行い、ご利用いただくユーザーも増えてきました。 そういった状況変化
はじめに eScanチームの平田です。 eScanは日本の電力事業に特化したリスク管理サービス(ETRMシステム)です。2022年から開発を始め、お陰様で今では徐々に導入いただける社数も増えてきています。まだまだ不足している機能はありますが、すべてのお客様が確実に必要とするであろうETRMの必須機能の実装は概ね終わっており、新規機能追加中心フェーズは終わりつつあります。これからは、よりお客様にとって価値のあるサービスになるような機能強化や改善を中心にする必要があると考えています。 今回は、eScanチームでの事業フェーズの変化に伴う開発プロセスの試行錯誤と、高速な仮説検証の補助として導入を進めているHasuraについてお話します。 フェーズの変化と仮説検証の必要性 「はじめに」に記載したとおり、徐々に新規機能追加中心のフェーズからより顧客への提供価値の最大化を目指すフェーズに差し掛かってい
こんにちは。enechainで働いている takurinton です。 enechainではプロダクト開発において多言語化を行っています。 今回は、enechainデザインシステムでのi18n対応と運用について紹介します。 i18n対応の前提 プロダクトでi18nをする際、一般的にはjsonで言語の定数を記述し、それにライブラリを使って型をつけてhooks経由で呼び出して使うことがほとんどかなと思います。 全てのテキストを抜け漏れなく定義し、それぞれの言語で表現するのであればそれは妥当な方法であると自分は考えています。 UIコンポーネントライブラリではそこが少し異なります。今回話す部分はReactで作られたUIコンポーネントライブラリなので、基本的にprops経由でテキストが差し込まれます。差し込む場合、そのテキストに関してはプロダクト側で管理・保持してほしいです。 ではどのようなときにデ
はじめに eSquare Live構想のはじまり eSquare Liveを実際に立ち上げ開始!次々出現する強敵 第一の敵!「いつまでもフワフワ」登場。 第二の敵!「覆りまくる意思決定」登場。 第三の敵!「知らず知らずに複雑化」登場。 さいごに はじめに こんにちは、enechainプロダクト企画部部長の大橋です。プロダクト企画部は、デザインやプロダクトマネジメント、PoCをツールで推進する部署といった、プロダクト開発における企画よりのチームで構成されており、私自身もProduct Managerとしてプロダクトを担当しています。 今回の記事では、2024年10月9日にリリースされた電力卸取引のオンラインマーケットプレイス「eSquare Live」プロジェクトについて、立ち上げ時からPdMとしてリードしてきて、学んだこと、他のプロダクトの立ち上げ時でも活かせるようなエッセンスを抽出すべく
この記事はenechain Advent Calendar 2024の21日目の記事です🎄 はじめに こんにちは。enechainでソフトウェアエンジニアをしている@nakker1218です。 私たちのチームでは、電力の取引仲介を行う同僚(ブローカー)たちが使う、注文の統合管理システムeNgineの開発しています。 ブローカーは日々1分1秒を争いながら収益を上げているため、システムが停止したり機能に不具合が生じると、事業に非常に大きな影響を与えてしまいます。 一方、電力業界はドメインが複雑で、要件や機能も多いため、バグが発生するリスクが高いです。 実際にこれまで以下のような問題が発生したことがありました。 Validな注文なのに、バリデーションが通らなくなった 特定の選択肢が選択されているときに表示されるはずのフォームが表示されない ショートカットキーを使ったインタラクションが一部正しく
この記事はenechain Advent Calendar 2024の20日目の記事です。 はじめに 背景 proto定義の一元管理 ディレクトリ構成 パッケージ公開のワークフロー 利用推進のための工夫 開発用ワークフローの整備 初期セットアップの自動化 コードメンテナンスの役割分担 おわりに はじめに こんにちは、エンジニアの青戸です。 enechainでは複数のプロダクトが利用する機能をマイクロサービスとして共通化する取り組みを進めており、APIの定義にはProtocol Buffersを利用しています。本記事では、proto定義の管理や公開を効率化するための取り組みについて紹介します。 背景 enechainではエネルギー取引にまつわる様々な課題を多方面から解決するために次々と新たなプロダクトが立ち上がっています。プロダクト数が増えるにつれて、認証認可や外部サービスとの連携等、複数の
はじめに この記事はenechain Advent Calendar 2024の19日目の記事になります。 enechainでSWEをしている神楽坂です。 業務では、電力の取引仲介をするブローカーが正確・高速にお客様の注文(ナンバー)を管理するための社内ツールを開発しています。 電力という商品は株式などと比較して、どのエリア・時間帯のものか、どのように電力を受渡するか、燃調はあるか、ある場合の具体的な式は何かといった、多種多様な属性が付随します。 そのようなナンバーを素早く正確に管理するためには、特定の属性を持つものをフレキシブルにフィルタリングできる機能が求められます。 そこで price>10 のような記述式のクエリを使ってナンバーをフィルタリングできる機能を実装したので、本記事ではその実現方法について述べます。 なお、実際に業務で扱っている電力ドメインを例にしてしまうと、本題とは異な
🎄この記事はenechain Advent Calendar 2024の18日目の記事です🎅 こんにちは!enechainデザイナーのET(@et_universe)です! JTC総合職やデザインファームでの経験ののち、今年の10月からenechainで働いています。 enechainでは、有志のエンジニアとプロダクトデザイナーによるデザインシステムチームが活動しており、私も入社直後からデザインシステムチームに参加しました。現在はFigmaのUIコンポーネントライブラリのページ構成や使いやすいコンポーネントの作りについて考え改善をしています。 ※デザインシステムについて、今までの経緯などはメンバーの記事が詳しいです! techblog.enechain.com はじめに この記事では、「Figmaコンポーネントライブラリで便利なページ構成ってなんなんだろう?」「理想的なUIコンポーネン
この記事はenechain Advent Calendar 2024の17日目の記事です。 はじめに BtoCとBtoBの基本的な違い 具体例 顧客層の違いとその影響 Vertical(縦型市場)とHorizontal(横型市場) プロダクトデザインにおける違い BtoBのプロダクトデザインの特性 BtoCのプロダクトデザインの特性 Vertical Market向けのデザインの特徴 BtoCとBtoBプロダクトデザインのまとめ UXデザインにおける違い BtoBのUXデザインの特性 BtoCのUXデザインの特性 BtoCとBtoBにおけるデザインアプローチの違い 1. 情報量のコントロール 2. 学習コストの優先度 eSquare Liveにおいて BtoCとBtoBのデザインにおける共通点 1. デザインプロセスやツールの共通性 2. シンプルさの重要性 3. ブランド価値の重要性 ま
はじめに SREチームの課題 課題改善の取り組み Step 1: 対応リクエストのワークフロー化とタスクのDB化 ワークフロー導入によるリクエストチャネルの統一 リクエスト対応タスクのデータベース管理 Step 2: ダッシュボード作成による対応リクエストの集計と可視化 リクエスト数の推移 リクエスト種別の構成比 希望対応期日の構成比 Step 3: 自動化・セルフサービス化推進による対応リクエスト数の削減 今後の展望 まとめ この記事はenechain Advent Calendar 2024の16日目の記事です。 はじめに こんにちは!enechainでSREチームのマネージャーを務める杉田 (@sug1san) です。 enechainのSREチームは、プロダクトの信頼性向上をミッションとしています。 しかし、歴史的な経緯から、SREチームは日々様々なチームからの多様な対応リクエスト
はじめに こんにちは、enechainのPdMのokpです。2024年10月9日にリリースされた電力卸取引のオンラインマーケットプレイス「eSquare Live」のPdMを担当しています。 eSquare Liveは、現物から先物まであらゆる商品を、板画面上でリアルタイムで取引できるプラットフォームです。プロダクト開発の裏話やグッドデザイン賞をとったUIについては、他のメンバーの記事をぜひご覧ください。 はじめに 触れて感じて、プロダクトの鼓動を ~社内テストの舞台裏~ 「誰もやってくれない?」全社イベントで見えたリアル 同じ目線で、同じテーブルに ~寄り添いの場をつくる~ めっちゃ質問してくるやん! ~生まれる共感と熱量~ 気づけば、変化のトリガーになっていた 最後に 触れて感じて、プロダクトの鼓動を ~社内テストの舞台裏~ 10月のリリースまでにユーザーの声を集めて、ギリギリまで最善
この記事はenechain Advent Calendar 2024の14日目の記事です。 はじめに こんにちは。enechainで統計・機械学習モデルの構築やLLM(大規模言語モデル)の活用推進を担当している@udon_tempuraです。 私達のチームでは、以前紹介した会議動画要約のノウハウを活用し、 社内用の動画・音声文字起こしツールを構築・運用しています。 本記事では、その精度向上の仕組みについて紹介します。 実装も比較的少なく実現できたため、セキュリティなどの関係により内製で文字起こしを構築している方々の参考になれば幸いです。 はじめに 背景と課題 システム要件 システム実装 アーキテクチャ 入力データ形式 ドメイン固有用語の管理 処理フロー Cloud Speech-to-Textによる文字起こし Gemini 1.5 Flashによる認識処理 Gemini 1.5 Proによ
この記事はenechain Advent Calendar 2024の13日目の記事です。 (English version follows) はじめに アーキテクチャと設計上の考慮点 セキュリティ 使いやすさ 振り返りと課題 振り返り 課題 結論 Introduction Architecture and Design considerations Security Ease of use Reflection and Challenges Reflection Challenges Conclusion はじめに こんにちは、enechainのデータプラットフォームデスクで主にプラットフォーム開発を担当しているデータエンジニアのakizhouです。 このブログでは、Cloud SQL (PostgreSQL) からBigQueryに分析目的でデータを同期するためのパイプライン (DB
この記事は enechain Advent Calendar 2024 の12日目の記事です。 はじめに こんにちは! enechain でデータプラットフォームデスクのEMをしている26Takafujiです。 私は2023年9月にenechainへジョインし、そこからちょうど1年強の時間が経ちました。 入社時はまだ全社横断のデータ基盤は検討中の段階で本格的な提供はこれからという状態でしたが、この1年間でデータ基盤としての1st Stepである「まずはデータを集める」を進めてきて、主要なデータソースのBigQueryへの集約を一通り仕組み化できました。 今回は進めてきた仕組み化の中で、データ界隈では数年前から巷でよく取り上げられる「データメッシュ」の概念を念頭においた時、BigQueryへ集約されたデータの管理をどういった形で考えたのかを書いてみたいと思います。 これからデータ基盤を構築し
この記事はenechain Advent Calendar 2024の11日目の記事です。 はじめに enechainのデータプラットフォームデスクでエンジニアをしている菱沼です。現在はデータエンジニアとしてデータ基盤の構築をしています。 社内で活用できるデータ量が増加し、データ活用の場面が多様化する中で、業務の現場でデータをいかに効率的に活用できるかが重要な課題となっています。 本記事では、Google CloudのiPaaSであるApplication Integrationを活用し、 BigQueryからSalesforceにデータを連携する仕組みをどのように設計・実装したかをご紹介します。 技術選定や設計上の工夫を中心に、実際の構築事例をご紹介します。ぜひ最後までお付き合いください! はじめに 背景 技術選定 1. Application Integration 2. Cloud
この記事はenechain Advent Calendar 2024の10日目の記事です。 はじめに enechain データサイエンスデスク エンジニアの藤村です。 我々データサイエンスデスクは、電力や燃料に関するデータ分析や予測モデルの構築などの他に、enechainの様々なビジネスをサポートする社内向けツールの開発・運用も行っています。機械学習や数理最適化を活用したアプローチを中心に、最近ではLLMの活用にも取り組んでいます。 本稿では、この取り組みでStreamlitアプリケーションをGKEでホストするに至った経緯や、その運用について紹介します。 なぜ Streamlit なのか 社内の業務を支援するツールを構築する際、常に課題となるのが「人間の判断をどのように介在させるか」という点です。ドメインやアルゴリズムの性質上、自動化が難しい部分も多く、人間の判断を介在させる必要のある場面
これはenechainアドベントカレンダーの9日目の記事です。 よくある「ビジネスとプロダクトの壁」 こんにちは、enechainでPdMをしているミッキー(@mk_mitarashi)です。 enechainはエネルギー、なかでも電力業界を事業ドメインにしています。専門知識や経験が求められる業界だからこそ、ビジネスサイドでは商社や電力会社出身のメンバーが多く活躍しています。 プロダクト開発組織が当たり前にビジネス組織の隣にある企業を経験した身からすると、協働する中で新鮮な学びが絶えない日々です。 さて、ビジネスとプロダクトの壁、というテーマはプロダクト開発あるあるではないでしょうか。テッキーな経歴の社員が多いSaaS業界でも、壁を感じている組織をみてきました。 一方で、多様な経歴のメンバーが集まるenechainで、いまはありがたいことにごきげんに働けています。 その理由はおそらく、頼れ
この記事はenechain Advent Calendar 2024の8日目の記事です。 こんにちは!enechainでソフトウェアエンジニアをしている山添です。 現在は今年10月にリリースした「eSquare Live」のFIX APIを提供するため、FIXサーバー1の開発を担当しています。 この記事では、FIXサーバーの開発においてQuickFIX/Goを使っていて得た知見を共有します。 FIX ProtocolとQuickFIX/Goについて FIX Protocol の基礎知識 メッセージとタグ セッションの概要 Exampleで学ぶQuickFIX/Go Exampleの起動方法 設定ファイル メッセージのルーティングとロジックの実装 メッセージの送信 実践で役立つQuickFIX/Goの知識 シーケンス番号とメッセージの永続化 セッション管理の詳細 カスタムフィールドの扱い ま
はじめに eSquare Liveのブラウザ対応要件 JavaScriptのレガシーブラウザ対応 静的解析を利用したPolyfill対応 @vitejs/plugin-legacyの利用 CSSのレガシーブラウザ対応 @mdn/browser-compat-dataの利用 browserslistの利用 ESLint Ruleへの組み込み 実際のブラウザの確認環境 まとめ はじめに この記事はenechain Advent Calendar 2024の7日目の記事になります。 こんにちは、enechainでソフトウェアエンジニアとして働いている@sue71です。現在は2024年10月9日にリリースした「eSquare Live」の開発を担当しています。 「eSquare Live」は、電力卸取引の自動取引プラットフォームであり、10月にローンチしたenechainの新規プロダクトです。現在
この記事はenechain Advent Calendar 2024の6日目の記事です。 はじめに 2024年10月9日にローンチしたeSquare Liveは、電力卸取引のオンラインマーケットプレイスです。 新規サービスであり利用者の限られるtoBのサービスではあるものの、リアルタイム電力取引場というプロダクトの特性上、ローンチ直後から一定水準以上のパフォーマンスが求められます。 スケールすることを意識して開発してきましたが、約10ヶ月の開発期間のほとんどを機能開発に費やしていたため、リリース直前の段階で実際どの程度のパフォーマンスが出ているのかの計測ができていない状況でした。 そこで、リリース前の1ヶ月を使って負荷試験を実施し、パフォーマンスの計測とそこで発見されたボトルネックの解消をすることとしました。 この記事では、k6の拡張機能開発を中心に、実際にリリース前に行ったk6によるgR
この記事はenechain Advent Calendar 2024の5日目の記事です。 はじめに enechainでフロントエンドエンジニアをしている@Shunya078です! enechainは、日本最大のエネルギー卸取引マーケットプレイスを運営するスタートアップです。我々ソフトウェアエンジニアは日々、プロダクトを通じてエネルギー市場に貢献しています。 社内には10を超えるプロダクトが存在しており、各プロダクト共通で利用されるデザインシステムが存在します。自分はこのデザインシステムに、チームをリードする立場として関わっています。 去年、なぜ我々はデザインシステムを創るのか?という記事でデザインシステムの生い立ちについて執筆しました。背景などについては是非そちらをご一読ください! 今回は、今年一年間のアップデート内容を振り返るととともに、現時点における我々のデザインシステムがどういうフェ
はじめに この記事はenechain Advent Calendar 2024の4日目の記事になります。 こんにちは!enechainでソフトウェアエンジニアをしている古瀬です。 enechainでは今年10月にリリースした「eSquare Live」の開発を初期から担当しています。 「eSquare Live」は株式取引やFXのようにリアルタイムで電力商品を取引できるオンラインプラットフォームです。 今回は「eSquare Live」でもリアルタイム通知のために利用しているSocket.IO Adapterについて実装例を交えて紹介したいと思います。 Socket.IO Adapterとは Socket.IOはリアルタイムな双方向通信システムにおいて非常に重要かつ強力な機能を持ったOSSです。 その特徴としては以下のようなものが挙げられます。 柔軟な通信プロトコル: WebSocket非
はじめに FIXプロトコルについて 概要 FIXプロトコルの中身 テスト戦略 既存のテストライブラリ 作成したテストライブラリ Acceptorをどのように立ち上げるか Acceptorの振る舞いをどのように定義するか テストコードの例 テストライブラリの導入結果 FIXプロトコルの理解促進 変更容易性の向上 今後の課題 まとめ はじめに この記事はenechain Advent Calendar 2024の3日目の記事です。 本日はenechainのGXデスクとeClearデスクのバックエンドエンジニアの @eji が担当します。 最近FIXプロトコルを使ったサービスとテストを書く機会がありました。 今回はその経験をもとに、FIXプロトコルを使ったサービスのテストをどのように行ったかを紹介します。 FIXプロトコルについて 概要 FIXプロトコルの FIX は Financial Inf
この記事はenechain Advent Calendar 2024の2日目の記事です。 はじめに こんにちは!enechainでソフトウェアエンジニアをしている@taniyarnです。現在は『eSquare Live』のバックエンドを主に担当しています。 『eSquare Live』は、電力卸取引のオンラインマーケットプレイスであり、10か月の立ち上げ期間で開発した新規プロダクトです。 バックエンドはGoで構築していますが、リアルタイムに取引情報を表示するため、ストリーミングサーバーにはNestJSを用い、Socket.IOを使ってフロントエンドとリアルタイム通信をしています。 以前の記事で紹介した通り、eSquare Liveでは負荷試験ツールにk6を採用しています。 本記事では、Socket.IOサーバーに対する負荷試験をする際にk6を使う方法について解説したいと思います。 はじめに
次のページ
このページを最初にブックマークしてみませんか?
『techblog.enechain.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く