RAKSUL TechBlog

ラクスルグループのエンジニアが技術トピックを発信するブログです

Pandasでメモリを効率的に扱うテクニック5選

はじめに

ノバセル新卒2年目の田村(tamtam)です。

今回はPyconAPAC 2023でJoeun Park氏が話されていた「How much data can we cram into 16GB RAM with less budget?」を参考に、Pandasでメモリ使用量を抑え大規模なデータを扱うためのテクニック5選を紹介しようと思います!

データ処理に精通している方にとっては、これらの内容はおなじみのものかもしれません。しかし、復習の意味を込めて、ぜひご一読いただければ幸いです。

Joeun Park氏の登壇はYoutubeも公開されていますので興味ある方はご覧ください。 www.youtube.com

1.サンプリングをしデータの行数を減らす

サンプリングとは、データセットからランダムに行を選び出し、より小規模なデータセットを作成することを指します。

データセットのサイズを減らすことで、必要なメモリ量が減り、処理速度が向上します。

ここでは具体的なサンプリングを2つ紹介します。

ファイルレベルでサンプリングする

大量のデータが複数のファイルに分散されている場合に役立ちます。

データセット内のファイルをランダムに選択します。

import os
import random

# ファイルが格納されているディレクトリ
directory = "/path/to/your/directory"

# ディレクトリ内のファイルリストを取得
file_list = os.listdir(directory)

# サンプリングするファイルの数を設定
number_of_samples = 10  # 例として10個のファイルを選択

# ファイルリストからランダムにサンプルを選択
sampled_files = random.sample(file_list, min(number_of_samples, len(file_list)))

# サンプリングされたファイルのリストを出力
print(sampled_files)

ファイルのチャンクごとでサンプリングをする

特に大きなファイルやストリームデータを扱う際に有用です。

ファイル全体を一度に読み込むのではなく、小さなセグメント(チャンク)に分割して、それぞれからサンプルを取得します。

import pandas as pd

chunk_size = 10000  # 1回に読み込む行数
sample_fraction = 0.1  # サンプリングで保持する行の割合

# CSVファイルをチャンクで読み込み、各チャンクからランダムに行をサンプリング
df_sampled = pd.concat([chunk.sample(frac=sample_fraction) 
                        for chunk in pd.read_csv('data.csv', chunksize=chunk_size)])

# サンプリングされたデータフレームを使用
print(df_sampled.head())

2.サブセットを抽出しデータの列数を減らす

サブセットの抽出とはデータフレームから特定の列だけを選択することを指します。

不要な列を取り除くことで、使用するメモリ量を削減できます。

具体的なサブセット抽出の方法を2つ紹介します。

ファイル読み込み時にサブセット抽出をする

pandasのread_csvメソッドを使用する際にusecols引数を利用します。

こちらを利用することでファイル読み込み時に必要な列のみを抽出することができます。

import pandas as pd

# 読み込む列の名前を指定
columns_to_use = ['column1', 'column2', 'column3']

# 指定した列だけを読み込む
df = pd.read_csv('your_data.csv', usecols=columns_to_use)

usecols を使用する際は、CSVファイル内の列の名前または位置を正確に知っている必要があることに注意しましょう。

データフレーム読み込み後にサブセット抽出をする

下記の例では「列名を指定して抽出」する方法になります。

import pandas as pd

# データフレームの読み込み
df = pd.read_csv('your_data.csv')

# 特定の列を選択
columns_to_keep = ['column1', 'column2', 'column3']
subset_df = df[columns_to_keep]

他にもデータ型などの「特定の条件に基づいて抽出」、「不要な列を除外」といった抽出の方法があります。

3.データを分割して読み込む

大規模なデータセットを一度に全てメモリへ読み込むことは、メモリの制約により困難または不可能な場合があります。

データを分割して読み込むことで、小さなメモリフットプリントで処理が可能になります。

import pandas as pd

chunk_size = 10000  # 1チャンクあたりの行数
chunks = pd.read_csv('large_dataset.csv', chunksize=chunk_size)

for chunk in chunks:
    # ここで各チャンクに対して処理を行う
    # 例:基本的な統計を計算、データのクリーニング、ファイルへの保存等

4.扱うデータタイプを変える

よりメモリ効率の良いデータ型に変換することで、データを格納するのに必要なメモリ量を減らす方法になります。

Pandasでは、データフレームを読み込む際、多様なデータを扱うために、広範囲に渡る一般的なデータ型がデフォルトで使われます。しかし、これにより無駄なメモリ消費をすることがあります。

そのため、場合によってはデータ型をよりメモリ効率が良いものに変換した方が良いです。

ここでは代表的な型変換を3つ紹介します。

Numericな値の変換: データ範囲の縮小化

Numericな値(整数や浮動小数点)のデータの表現可能な範囲を狭くすることでメモリ消費を抑えます。

Pandasではto_numeric() 関数を使って自動的に最適な型に変換することができます。

# 整数型のダウンキャスト
df['int_column'] = pd.to_numeric(df['int_column'], downcast='integer')


# 浮動小数点型のダウンキャスト
df['float_column'] = pd.to_numeric(df['float_column'], downcast='float')

ダウンキャストは、精度の低下やオーバフローを引き起こす可能性があるため、データの範囲と精度を考慮して変換しましょう。

Pandasの describe() メソッドを使用すると数値データの基本統計量を確認できますので、必要に応じてデータ型を変更する前に確認しましょう。

文字列の変換: Categorical型の利用

Categorical型は特に重複する値が多い列で、文字列型よりもはるかに少ないメモリを消費します。

Pandasの Categorical 型は、データの一意の値を内部的に整数値で表現します。これにより、同じ文字列がデータセット内で繰り返し出現する場合、各インスタンスは整数参照として保存され、実際の文字列データは一度だけ保存されます。

一方通常の String 型では、各個の文字列が独立してメモリに保存されます。

import pandas as pd

# データフレームの読み込み
df = pd.read_csv('your_data.csv')

# 文字列型の列をCategorical型に変換
df['string_column'] = df['string_column'].astype('category')

データの多くが欠損値や0である列の変換: Sparse 型の利用

Sparse型は欠損値やゼロを効率的に格納し、メモリ使用量を大幅に削減することができます。

下記の例では、fill_value に0を指定しています。これは、非0値のみが効率的に格納され、0値は省略されることを意味します。

# ゼロが多い列をSparse型に変換
df['sparse_column'] = df['sparse_column'].astype(SparseDtype(float, fill_value=0))

5.Parquet形式で保存をする

Parquetとは、列指向のストレージフォーマットで、列ごとにデータを保存することが特徴です。

この特徴からParquetは列ごとにデータを圧縮し、効率的なストレージと高速な読み書きを実現します。

対照的に、CSVやテキスト形式は行指向であり、異なるデータタイプが混在するため、圧縮率が低くなりがちです。

Parquetファイルにはメタデータが含まれており、スキーマ情報やデータ型、統計情報などが記録されています。このメタデータを使用して、効率的なデータ読み込みや圧縮方式の選択が可能です。

Parquetファイルを扱う際には、Pandas以外に追加の(pyarrow または fastparquet)が必要になります。

import pandas as pd

# データフレームの作成
df = pd.read_csv('large_dataset.csv')

# Parquetファイルとして保存
df.to_parquet('large_dataset.parquet')

# Parquetファイルの読み込み
df = pd.read_parquet('large_dataset.parquet')

まとめ

この記事では、「How much data can we cram into 16GB RAM with less budget?」を参考に、Pandasでメモリを効率的に扱うテクニックを5つ紹介していきました。

  1. サンプリングをしデータの行数を減らす
  2. サブセットを抽出しデータの列数を減らす
  3. データを分割して読み込む
  4. 扱うデータタイプを変える
  5. Parquet形式で保存をする

ぜひ活用してデータ処理の助けになれれば幸いです!

Japan.R 2023イベントレポート

こんにちは、ノバセルの松村です。

12/2(土)に統計処理プログラミング言語Rに関する年次イベント「Japan.R 2023」がハイブリッド形式にて開催され、ラクスルは目黒オフィスでの会場提供という形で協賛させていただきました。短めではありますが、そのレポートをできればと思います。

今年のJapan.Rは年末のLT大会ということで、R言語やデータ分析に関する様々なLTが繰り広げられました。また、年次イベントということでRコミュニティに関するセッションもありました。

japanr.connpass.com

Japan.Rとは?

統計学に関する解析や可視化が得意なプログラミング言語Rには、日本各地にユーザーコミュニティがあります。現在活動が活発なものとしてはTokyo.Rfukuoka.Rがありますが、SappoRo.RSendai.ROsakaRなど不定期に開催されるものもあります。かつては沖縄や名古屋、筑波などにもRコミュニティがありました。Japan.Rは、もともとはそういった各地のユーザーコミュニティが一同に介するイベントとしてスタートしました。

japanr.connpass.com

直近2, 3年はコロナ禍によりオンライン開催となっていましたが、今年初めてのハイブリッド開催をすることになり、ラクスルは協賛企業として会場提供を行いました。

当日は会場参加が30名以上、オンライン参加が150名以上と盛り上がりました。

勉強会当日の様子

Japan.R 2023 アジェンダ①
Japan.R 2023 アジェンダ②

ラクスル社員からみたJapan.R 2023

これまでラクスル社内ではハイブリッド型のイベントは実施したことがありましたが、外部のイベントに会場提供ではこの形式は初めてでした。筆者は後述するめぐろLTの運営にも携わっており、会場の設備にも詳しいことから、会場担当として参加させていただきました。結果として、スムーズに会を終えることができ、参加者の皆様にも大変感謝しております。

個人的に印象に残った発表は、「サテライト企画の振り返り」です。サテライト企画とは、オンライン開催のTokyo.Rを例えば福岡や仙台、ときには東京でもリアル会場に少人数で集まって観戦しよう、という企画です。オンラインでの勉強開催も当たり前になってしまった昨今ですが、2023年はサテライト企画が述べ10箇所以上で開催され、Rコミュニティにおける「リアルな勉強会の雰囲気を取り戻そう」という気持ちがすごく感じられる発表でした。

speakerdeck.com

めぐろLT発祥の地として

さて、ラクスルはめぐろLTというエンジニア向けLTイベント発祥の地でもあります(現在は目黒を超えて様々な企業の持ち回りで開催をしています)。

meguro-lt.connpass.com

今回、ラクスルとしては初めて外部の勉強会向けにハイブリッド会場の提供を行いましたが、滞りなく会を終えることができました。

めぐろLTは現在20-30人程度の規模で会場参加のみで実施しています。今回の事例を糧にして、来年はめぐろLTでもハイブリッド形式でやれたらより多くの方が観戦、発表することができて、エンジニアコミュニティとしてももっと盛り上がるのでは、と思っていたりします。ぜひハイブリッド開催をやりたい!!

エンジニアコミュニティの立ち上げから1年、定期開催までの軌跡

この記事は「技術広報 Advent Calendar 2023 シリーズ2」15日目と、「めぐろLT Advent Calendar 2023」16日目の記事です。

こんにちは。ラクスル技術広報の和田です。
ちょうど1年前の12月、社内外のエンジニアが集い、技術的な交流を目指すエンジニアコミュニティ「めぐろLT」が誕生しました。
今やcompassに登録いただいているメンバーが260名を超え、共催企業も7社に拡大。12月18日には10回目の開催を控え、参加者数が予想を上回る大盛況となっています。

今回は、非エンジニアの私がどのようにしてエンジニアコミュニティの運営を推進してきたのか、「めぐろLT」の立ち上げから定期開催までの軌跡を振り返ります。

はじめの一歩

「めぐろLT」のはじまりは、ノバセルエンジニア星野さんからの1件のSlackでした。

星野さんとCCOのゆるっとしたやり取り(笑)

当時、星野さんのメッセージには下記のような意図がありました。

  • 業界の最新動向や技術トレンドに追いついていたい
  • 自身のスキルや知識が取り残されていないという安心感を得たい
  • 個々の成長やキャリアの発展をサポートする場がほしい

特にジュニアメンバーにとって大切だと考えていると熱く語る星野さんの姿に触発され、このようなニーズに応えるためには、単発のイベントを実施するのではなく、定期的に機会を提供し続ける必要があると考えました。
これに共感したCCO(Chief Culture Officer)の大きな後押しもあり(上記のような 笑)、定期開催を念頭に置いた「めぐろLT」を立ち上げました。

立ち上げの鍵

期待を超える参加者・共催企業の反響の裏側には、ポイントが二つあったと考えています。

①コミュニティのコンセプトと目的の整理

コミュニティの立ち上げに至った後に、コンセプトと目的をまずは整理しました。 これにより、社内のメンバーをはじめ、イベントの参加者がコミュニティの方針や目指す方向性を理解しやすくなりました。私たちの願いは、エンジニアが気軽にアウトプットできる環境やチャレンジを支援し、このような環境が将来的には技術コミュニティ全体の成熟と発展に寄与することです。これらの想いが多くの参加者や企業に共感され、現在は共催企業の7社とラクスルの各社持ち回りで、毎月「めぐろLT」を開催しています。

コンセプト

  • オープンで協力的な雰囲気を醸成する
  • 気軽に意見やアイディアを発信できる場を提供する
  • 異なるバックグラウンドや専門性を尊重する

目的

  • 最新の技術情報や業界トレンドにアクセスしやすく、気づきや学びを得られる環境を提供する
  • 外部へのアウトプットを望みつつも、その機会が得られなかったエンジニアに新たなチャンスを提供する 
  • 知識の共有と交流を通じて、メンバーのキャリアの発展と個々の成長を支援する
②雰囲気の醸成

▼初回イベントの概要 
テーマ:「初めてLT」
資 格:外部登壇が初めて、またはそれに準じる人
形 式:発表時間5分、Q&Aなし

初回イベントの概要を検討する際に、外部登壇が初めてでも気軽に参加できる心理的なハードルが低いテーマ設定や資格であることに重きを置きました。
テーマや資格に初心者向けの要素が組み込まれたことで、初めて外部登壇を考えるエンジニアたちにとって、参加するハードルが低く、多くのエンジニアが積極的に参加しやすくなりました。
初回イベントから、「やってみたい」という挑戦ができる場として認知され、テーマを変えても新しい顔ぶれが積極的にLTに参加できる雰囲気が醸成されていきました。
会を重ねるごとに、参加者間で挑戦の意欲が育まれ、今では初登壇が「めぐろLT」です!という声をたくさんいただいています。

初登壇を果たしたラクスル新卒のふたり。懐かしい☺

技術広報の役割

1年を振り返り、技術広報としてコミュニティの発展において大切だったなと思う要素がいくつかあったため、私自身の視点で整理してみました。

①方向性を示し続けること

コミュニティが成長するにつれ、様々なメンバーやアイディアが加わります。この時、基本的な目的を忘れず、新たな要素がそれに合致するかどうかを確認し、運営の一貫性を保つことは、アイデンティティの維持にも重要です。これが守られることで、共鳴する共催企業との関係強化にもつながっていると感じています。

②透明性を保つこと

コミュニティの活動を社内外に定期的に発信することで、社内で協力を得られるだけでなく、参加者や共催企業の理解にもつながります。実際に、イベント開催日が決まったら、参加を促すPRだけでなく、リーダー陣やメンバーとのカジュアルな会話の中でイベントの舞台裏や登壇メンバーの活躍を積極的に共有することで、自主的にお手伝いを申し出てくれるメンバーが現れたり、リーダー陣がメンバーの登壇を評価していたりと、透明性が良い結果を生んでいます。

③問題解決と改善の推進

予測不可能な問題が生じた際、積極的に解決策を提案し、改善に努める姿勢が求められます。コミュニティにおける問題は、その都度、持続可能な運営のために必要な調整を専門部署と協力して行い、解決策を提案・推進していくことで、社内の協力関係が一層深まっていきました。エンジニア組織以外とも連携し、問題解決のための努力が、コミュニティの信頼性を高め、円滑な運営につながっています。

④エンジニアとの連携

エンジニアが技術的なリーダーシップを発揮し、技術広報がサポートを担当することで、コミュニティは技術的な視点と組織的なサポートがバランスよく機能します。 私はエンジニアが得意な技術領域以外で、コミュニケーションや組織サポートの分野でメンバーをサポートしています。お互いの強みを最大限に生かし、共にコミュニティの発展に向けて協力することで、強力な連帯感が育まれています。

いつもありがとう!🙏

おわりに

「めぐろLT」と共に歩んだ1年間は、挑戦の連続でした。コミュニティが成長する中で、答えをもっていない、経験したことがない壁に何度もぶつかりました。そんな時、世の中には技術広報視点の情報がまだまだ不足しているなと感じました・・・
幸いにも、私はエンジニアたちをはじめとするメンバーの協力のおかげで、ここまでの道のりを歩むことができましたが、このブログが未来のコミュニティ運営者たちにとって役立つヒントになったら嬉しいなと思っています。
これからも「めぐろLT」はエンジニアたちの交流と成長の場として、新たな可能性に挑戦し続けます。これからのイベントもお楽しみに!

ROSCAFE TECH NIGHT #2 イベントレポート: CTO岸野が語るプラットフォーム開発と技術負債の本質

こんにちは、ラクスル広報の和田です。
11月21日(火)、ROSCAFE TECH NIGHT #2がラクスル目黒オフィスで開催されました。
このイベントには、ラクスルからCTO岸野が登壇。ほか、SODAさん、LinQさん、出前館さんのCTO/VPoEが一同に会し、テーマ「CTOやVPoEに求められる役割とは?」に基づいて熱いLTセッションが繰り広げられました。
本記事では、CTO岸野がLTで語った内容に焦点を当て、自身がどのようにしてCTOの地位に到達したのか、日常業務で直面する課題や現在の注力テーマについて、イベントの概要と共に紹介していきます。

ROSCAFE とは?

エンジニア専門のフリーランスエージェント「ROSCA」が運営するコミュニティの名称。このイベントでは、様々なプレイヤーが集まり、エンジニアリングの進化やこれからの展望について情報交換が行われています。

イベント概要

このイベントでは、時代の変化に応じてCTOやVPoEに要求される役割やリーダーシップの多様性に焦点を当てました。各登壇者は、組織の課題、解決方法、そして自身の役割の定義について、それぞれの視点でLTを行いました。

登壇者紹介

岸野 友輔(ラクスル株式会社 ラクスル事業本部CTO)
林 雅也(株式会社SODA 執行役員 CTO)
Kazuma Takeda(株式会社LinQ CTO)
米山 輝一(株式会社出前館 執行役員 IT本部 本部長 兼 VPoE)

LTセッション  (スピーカー:ラクスルCTO岸野)

CTOになった経緯

2017年、ラクスルに新卒第一号として採用されました。入社以来、印刷事業の中心である印刷のECサイトにおいて、表側の部分や裏側のシステム開発を担当し、パートナー様向けの印刷依頼システムの開発などに従事してきました。
また、プロジェクトとして印刷の発注を効率化するアルゴリズムの開発など、効果的なプロジェクトの立ち上げも行っていました。2021年には、ラクスルとして初めてのM&Aを実施し、段ボール製造の会社を傘下に迎えました。
プロジェクトやM&Aを通じた組織の発展に貢献し、2022年8月にダンボールワン社のCTOに就任。その後、2023年8月にはラクスルとの吸収合併により、現在はラクスル事業のCTOとして、統合後の組織の立ち上げ、開発スピードの向上、事業推進を担っています。

事業フェーズの変遷

印刷のEC事業からスタートし、急速な事業拡大と新規事業を展開してきました。特に、グッズのカスタマイズ可能なECサイトやアパレル・ユニフォーム事業の立ち上げなど、多岐にわたる挑戦を行ってきました。しかし、それに伴いシステムの技術的な課題が浮き彫りになり、技術負債が蓄積されていました。
当時、そのような状況を改善するための判断として採用されたのは、既存のシステムの拡張ではなく、新しいシステムの構築でした。この意思決定は正しかったと考えています。そうしたことで、柔軟性のある構造が作り上げられ、ラクスルは着実に成長しています。
現在は新たなフェーズに突入し、個別最適から中長期を見据えた全体最適への移行が進行しています。特に、全社的なプラットフォームの構築に注力し、購入者の利便性向上に焦点を当てています。
具体的なプロジェクトとして、ラクスルで購入したユーザーにとって非効率的だったECサイトの購買体験を向上させるための取り組みが進行中です。これにより、マイページや注文履歴の統合など、より統一されたユーザーエクスペリエンスが提供されることが期待されています。

開発組織のリーダー体制の変化

事業部を超えたアサイン変更の難しさやCTOへの一極集中が、事業運営において健全でない状態を招いていました。
その後、積極的な変革を行うため、新たな組織体制を導入しました。具体的には、Tech、 Bizの意思決定者を集約したTech意思決定機関の組成や、縦割りの個別最適から横軸での全体最適への転換です。新しい構造では、事業責任者やシステム部門、CTOなどが連携しやすくなり、迅速な意思決定が可能となりました。縦割りの組織から解放されたことで、より効率的で柔軟な開発体制が構築されたと思います。

現在のビジネスフェーズや組織の変遷を考慮すると、事業も進化する中でプラットフォームの構築が鍵となり、全体的な開発投資が不可欠です。
CTOは組織の目指すべき姿を描き、その推進をリードするリーダーシップが求められています。
同時に、技術を駆使して事業改造を促進し、レバレッジ可能なポイントを見つけ出すことが必要です。CTOがこれらの役割を果たすことで、攻めの要素を強調した役割に変容していると考えています。
新卒入社した当時から高めてきた事業解像度や事業変革プロジェクトのリーダーシップ経験を活かし、技術戦略を策定し、組織を牽引しています。

現在の注力テーマ

現在の主要な取り組みとして、私の注力テーマは大きく3つです。プラットフォームプロジェクトの推進、技術負債の解消計画の策定、そして開発組織の強化です。

1つ目のプラットフォームプロジェクトでは、成長を促進するために新規事業やM&Aなどの戦略を組み合わせ、状態を整えることで更なる発展を目指しています。

2つ目は、技術負債の返済計画の策定です。弊社のECシステムは事業において重要な位置を占めています。そのため、このコアなシステムにかかる技術的な負債に対処する必要があります。CTOとして、この技術的な側面を正確に認識し、適切な説明を通じて計画を進め、返済を推進することが求められています。 技術負債の返済計画の立案はCTOの役割の一環と考え、その計画をどう策定し、実行していくかについても具体的な取り組みを行っています。
特に、システムの注意深い監視と改善が不可欠で、実際にシステム量の見かけの変動に惑わされず、減少していく過程を明確に示すことが重要です。 技術負債の返済は挑戦的なプロジェクトであり、これをゼロに近づけるためには、計画をしっかりと実行する必要があり、そのための体制を整えています。

3つ目は、開発組織の強化に焦点を当て、計画の実現に必要な人材を育成・採用しています。具体的には、採用活動の強化、既存のメンバーがより活躍できるように、キャリアパスを整備し、個別のメンバーに焦点を当てた育成計画などが進行中です。これにより、計画の実現に必要な開発組織を構築し、全体の推進力を向上させています。

まとめ

本日改めて、ほかのLTも聞いていて感じたことは、CTOの役割は曖昧でありながらシンプルだということです。CTOは経営の中で最もテクノロジーを理解し、テクノロジー組織の中で経営も理解している存在として、必要なことをシンプルに進め、自らが最も得意とする分野で最も力を発揮できる場所に焦点を当て、柔軟性を持って変化することが重要です。今後も、確かなテクノロジー理解を持ち、成長に貢献していきたいと思います。

懇親会

LTセッション終了後の懇親会では、参加者と登壇企業のCTOやVPoEの皆さんがアットホームな雰囲気で交流し、興味深い話題を共有しながら、今後のテクノロジー業界やリーダーシップに対する期待などについて熱く語り合う場となりました。

おわりに

ROSCAFE TECH NIGHTに初めて参加させていただきましたが、技術やリーダーシップに関する情報交換が盛んで、カジュアルな雰囲気でイベントを楽しむことができました。
異なるバックグラウンドを持つ企業同士の交流も、やっぱりおもしろい!
ご用意いただいた軽食もマックとあり、ハンバーガー片手に交流をしている様子はカジュアルさを引き立てていました(笑)
参加いただいた皆さま、登壇者・関係者の皆さま、そして何より企画運営をいただいたRoscaの皆さま、ありがとうございました!
また、イベントでご一緒できる日を楽しみにしています!

ノバセル 内定者インターン4人による座談会: なぜ僕たちはラクスルを選んだか

こんにちは! 今回、24新卒としてラクスルグループのノバセル株式会社に配属予定のエンジニア4人が、選考やインターンを通じてラクスルについて感じたことをパネルディスカッション形式で話しました! ラクスルに興味のある人が気になりそうなことをテーマにみんなで意見を持ち寄り4人でディスカッションしました。

ビデオ会議ツールで通話を行う4人
パネルディスカッション時の筆者4人
(左上から時計回りで新開・秦・石川・小谷)

筆者紹介

秦健心
愛知工業大学大学院経営情報科学部修了予定。 内定者インターンとして、ノバセルでデータエンジニアとしてデータ基盤整備を行なっている。 在学中には情報系サークルで会長を務めた。また、ハッカソンなどに複数参加しWebアプリのチーム開発を行ってきた。

小谷雄大
大阪大学大学院工学研究科を卒業予定。 大学では、機械学習を用いた原子スケールのシミュレーションの研究を行っている。 内定者インターンではデータサイエンティストとして統計解析から分析パッケージの内製化、MLOps基盤の構築を担当している。

新開崇弘
電気通信大学大学院情報理工学研究科を修了予定。 大学では人間の姿勢に関してリアルタイムにフィードバックを行うシステムを開発し、人間に対してどのように情報を伝えるかといったインタフェースの研究を行っている。 在学中はWeb制作だけでなく、営業職やマーケティングエンジニアなどの幅広い職種に挑戦し、インターンでは受賞やチームリーダーの経験がある。 内定者インターンとしてサーバサイドエンジニアを担当。

石川ナディーム
東京工科大学を卒業予定。 学生生活では、企業様との分散処理に関する共同研究、ハッカソンやデータ分析コンペ、英語でミュージカルを行う学生団体での活動など幅広く興味を持ったものにチャレンジしました。 内定者インターンではデータサイエンティストとして社内向けの業務改善ツールの開発を行っている。 サッカーが好き。最近はラテアートにハマっている。

パネルディスカッション開始

なぜラクスルを選んだのか

秦:

面接でだいぶ本性を出して話した上で自分の良いところも悪いところも受け入れてくれたし、面接やインターンで自分らしくいながら貢献できそうだと感じられたから。会社が持つ雰囲気や文化にマッチしていると感じたから。

小谷:

産業構造を仕組みで変えるという壮大な挑戦に加わりたかった。 データサイエンティストとして入社する上でノバセルはデータが事業のコアとなっており働きがいがあると感じたから

新開:

フロントエンド・バックエンドなどの領域に縛られずに幅広いことに挑戦できそうだったから。

石川:

マーケティングの民主化というビジョンに共感したのと、面接を担当してくださった方々が例外なくいい人だったから。

この質問に対しては、それぞれの回答に共感はしつつも、それぞれが見てるところはちょっとずつ違うんだなと感じましたね。 ディスカッションでは、意見や質問を発言をしやすいフラットな環境や、フルスタックエンジニア的な技術に限らずさまざまなことへの挑戦できる環境などの環境に対する魅力、ビジョンへの共感やデータ事業に対する魅力などもありましたね。 CTOの前職が機械学習チームの所属だったため、CTOの機械学習に対するリテラシーが高いこともデータサイエンティストとしては嬉しいとのことでした。 あとは、選考における面接やワークサンプルでの相互理解している感じも良かったと盛り上がりました。

23卒の選考についての座談会を行なっている昨年の記事がありますのでぜひご覧ください! ワークサンプルがどの様なものだったかの話もしています!!

recruit.raksul.com

ラクスルの良いところは?

秦:

文化。 問題や課題の原因を人に求めず、仕組みで解決しようとするマインドを持っているところ。 皆が自分の意思を持った上で皆のために働けている。(もしかしたらノバセルのいいところかも?)

小谷:

自分の意見を言いやすい環境であり、それが組織として推奨されているところ 新しい技術に対する感度も高く積極的に取り入れようとするところ

新開:

雰囲気の良さ。自分のペースで仕事を進められるように感じる。 1on1などでフィードバックを貰い修正しながら作業できる。

石川:

風通しがいい、議論が活発、人がいい

この質問では文化に対する良いところが結構出ましたね。 週一出社でほぼリモートな環境ながら、Gatherや発言文化の明言化でお互いが話しかけやすい雰囲気を作れているのは良いですね。 (上司やCTOにも気兼ねなく話せる) あとは、技術に対する感度ですね。 Rustの採用や、ChatGPTやGitHub Copilotの利用が導入されていたりと生産性に対する感度の高さも魅力的という意見がありましたね。 ビジネスの面でも、ラクスルという土台からさらにノバセル、ハコベル、ジョーシスといった事業を伸ばせてるのも良い点かなと思います。

質問や意見がしやすいか

秦:

めちゃくちゃしやすい。 分からないせいで軽んじられたり馬鹿にしたりといった雰囲気は全くない。 Working Out Loudという文化があり、思ったことを口に出しやすい雰囲気もある。

小谷:

しにくいと感じたことがない

新開:

意見のしにくさを感じることは一切ない。むしろ「議論を重ねる中で必要な知識を得て、一人で自走できるエンジニアに近づけると思うので頑張りたい」と伝えたところ歓迎された。

石川:

風通しがよく、質問はしやすい雰囲気。なんでもウェルカムな雰囲気は感じる。

これまでの質問でも出ていましたが、みんな共通して質問しやすい雰囲気を感じてます。 出た意見として「上司が部下に質問する環境だからこそ質問がしやすい」という意見がありました。 「上司が部下に質問しない」と部下ばかりが上司の時間を使ってる様な気がして質問できなくなってしまうらしいです。 ラクスルは「分からないことはちゃんと聞こう」ってことをみんながしているので質問しやすくなっているのかなと思いました。

コーディングする時間とそれ以外の時間配分は?

秦:

インターン中なのでなんともと言うところもある。 けど、コーディングだけでなく、組織文化について考えたり、ビジネスのことについて考える時間をちゃんと割いている人が多いなと言う印象。 コードのことだけを考えている人は少ないかも。 自分はコードを書くだけでなく勉強する時間も業務内で行えている。

小谷:

時期によるが、半々くらい(コーディング以外はドキュメント読んだり、データの前処理したりなど)

新開:

(今のところ)50:50くらい?1on1などの振り返りのほかに、コーディング前に設計に必要な知識をインプットしたりどのような設計で開発するかを議論する時間もある。

石川:

人によるところがあるから、難しい。自分はコーディング6割、残りは技術についてのリサーチだったり、今だったら業界知識のインプットをしていたりします。

エンジニアでも職種やロールによって違うが、コーディング以外にも時間を割いています。(エンジニアリングマネージャー、データサイエンティスト、データエンジニア、Webエンジニアなど様々) 主にプロダクト理解やビジネスへの理解、コミニュケーションなどは共通して発生すると思います。 あとは、個人のやりたいこと(Will)にも左右されますね。 コーディングしたい人はコーディング時間を増やそうと思えば増やせるし、コーディング以外のビジネスや組織文化について取り組む時間を増やしたい人は増やすことができますね。

ワークライフバランスはどうか?

秦:

だいぶ良いと思う。 11:00~16:00のコアタイムさえいればいつ働いても良いフレックス制なので、自分に割く時間は作りやすい。 また、用事があればコアタイム中であっても抜けたりしても許容される環境っぽい。(同じチームの人を見た感じ)

小谷:

基本的に残業時間は少なく、休みはあるため特に不自由はない

新開:

暦通り(土日祝が休み)の働き方。また基本コアタイム制での稼働だが、予定がある場合はそれに限らない。

石川:

週一出社が基本で、オフィスに行く頻度がちょうどいい。フルリモートも理想的だが、新卒で入る会社は、人間関係構築も含めて週一出社がちょうど良いかなと個人的には思う。 残業に関しては、基本しなくても良さそうな雰囲気で、してる人はどちらかというとポジティブな理由、例えば新しい技術を学んだり、自分のスキルアップをするために残業をしているイメージ。強制的に残業はあんまりないと思う。

みんな共通してますけど、だいぶ働きやすいと思いますよ。 フレックスタイム制なので、働く時間に関してもだいぶ自由が効きますし、コアタイム内でも通院などの都合があれば中抜けなどもできます。 会社自体が社員のワークライフバランスを尊重してくれてる感じがあるので、そこはありがたいですね。 ほぼリモートながらいつ出社しても良いのも魅力ですね。

人間関係は良好か?

秦:

めちゃ良好だと思う。 人間関係を良くするための文化がいくつか定義されているのもあるし、いる人たちがそもそも協調して働く意識をちゃんともっていると思う。 さらに、ただ気を使ってるわけじゃなくて、必要なことをお互い言い合えていると思うし、お互いフィードバックを受け入れる姿勢もしっかりしているなと思う。

小谷:

良好

新開:

人間関係が悪くなっている人を見たことがない。かなり良好だと思う。

石川:

新卒に関しては、全体の人数自体が高校とかの1クラス分だったりするので、仲良くなりやすい規模感 縦のつながりに関しては、新卒だから〇〇とかは一切無く、新卒でも議論の中心になったりするような感じ。オープンな人が多いからこそ、議論に参加しやすい

みんな共通して良好だと感じてるみたいです。 選考の中でラクスルの文化へのマッチ度が重視された結果、「みんなで協力したいよね」「それぞれの考えを尊重すべきだよね」みたいな考えに共感する人が集まっているのは仲の良さの理由の一つかもしれません。 ラクスル内で新卒向けのイベントを開いてくれたりしたおかげで、同期仲もまだ入社してないにも関わらずかなり良好です。 (社内イベント後に同期だけで飲みにいったりしました)

自分がやりたいことが実現できる環境か?

秦:

まだ自分のやりたいことが決まりきっていないような気がするが、実現できる環境だと思う。 ミクロな視点で見ると会社にとって必要なことであれば、自分でタスクを掴みに行くことができる環境だし、マクロな視点でもエンジニアという枠を超えて自分のやりたいことに近いキャリアを進んで行くことができる環境だなと思う。

小谷:

1on1などで自分のwillの話をするが業務などもそれに沿ったものをやるため実現できそう。

新開:

様々なエンジニア領域を触れてたくさんのことを経験できそう。さらに1on1で目標に対して成長の角度が適切かを定期的に振り返ることができる。

石川:

マーケティング・データ・統計学に触れられる環境ですごい魅力的だし、やっていて楽しい

ここは、今までの質問でも少し触れられていましたけど、皆共通してできるという認識ですね。 willが尊重してもらえるからこそ、willを自分自身が大事にもって公言していくのが大事そうです。 また「20%ルール」や「斧を研げ」といった社内文化やTriNovasellという社内制度でタスクだけに押しつぶされるのではなく、やりたいことに挑戦できる環境ですね。 (TriNovasellは月一で3日間をフルに使って業務改善や調査ができる仕組み)

最後に

最後に就活生の方々に向けて筆者それぞれからメッセージです。

秦:

会社を選ぶ上でいろんな軸があると思いますが、自分の中で何を大事にしたいのかを言語化してほしいなと思います。その上で、ビジョンへの共感、一緒に働く人、働く環境あたりが大事だなと思った人にはラクスルおすすめなのでぜひ選考を受けてみてください!

小谷: 

ラクスルはテクノロジーで業界構造ごと変えるチャレンジができる魅力的な環境です。 入社後は難しい課題に取り組むことが多くあると思いますが、果敢に挑戦していきます。

新開:

ラクスルのビジョンに共感できて、様々な挑戦をしたい方にはラクスルはとても良い企業だと思います。 皆さんと共に切磋琢磨できることを楽しみにしています!自分も頑張ります!!

石川:

「仕組みを変えれば、世界はもっと良くなる」、エンジニアを目指している方なら、日常生活の中でも感じたことがあるのではないでしょうか。ラクスルでは実際に業界構造という大規模なものから社内業務までたくさんの仕組みを絶えず変えていて、これからもより良くしていこうという姿勢を、まだ内定者インターンの身ですが感じています。エンジニアとしても、とてもチャレンジングで刺激的な現場です。みなさんと、どこかでお会いできるのを楽しみにしています!

25卒向け新卒採用始まっています! ぜひお申し込みください!!

hrmos.co