投稿者「上野諒一」のアーカイブ

ランサーズというサービスが大切にしていることとメンバーのこと

上野諒一|2019年12月16日
エンジニア組織

エンジニアブログに投稿するのは 2年ぶりの上野 です。 ランサーズ Advent Calendar 2019 16日目を担当させていただきます

入社してから4年エンジニアとして ランサーズ や各種サービスの開発を携わり、現在は ランサーズ の事業部長として事業側の推進を行っています。

12/16はランサーズサービス開始の日

アドベントカレンダー的には単なる16日目という普通の日なのですが 、本日 12/16 はランサーズにとって 2008年 にサービスをリリースした非常に重要な日になります。奇しくもサービスをリリースしたその日に会社としても上場を迎え、改めて自分たちがランサーズというプロダクトを運営していくにあたっての 決意表明 をさせていただきました。エンジニア時代から続けてプロダクトを作っていく上で大事にしていることを込めました。

11年間多くの人がバトンを繋いでくれたランサーズというプロダクトの運営に関わっているすべてのメンバーを代表して、我々のプロダクトづくりにおけるスタンスを記載させてもらっているのでぜひ読んでいただけると嬉しいです。

ランサーズリリース11周年のご挨拶

 

ランサーズ株式会社に所属するメンバーの想い

今回の決意表明とは別ですが、先日ランサーズ株式会社として意見広告を出させてもらったときに、個人としてなぜランサーズという会社でサービスを作っているかを 「#採用やめよう」に “私” が込めている思い  で書かせてもらっています。そのほかにも社員一人ひとりが想いを綴っています。どんなメンバーがどんな想いを持ってサービスを提供しているのか、働いているかを知れるのでこの場を借りてご紹介させてもらいます。

みんなのnoteを探しつつ読み込んでしまいました。職種に関わらずこういったメンバーの中で仕事をできているのが嬉しいなと改めて感じる年末になりました。

引き続き ランサーズ Advent Calendar 2019  は続きます!次は長島さん。よろしくおねがいします

CakePHP3.5における各種実装例 ~ LancersTop 開発現場より ~

上野諒一|2017年11月21日
CakePHP

こんにちは エンジニアの上野 です。本日「CakePHP3.5における各種実装例」という題目で登壇するので、発表資料をアップロードします。資料として使えるようにコード例などを厚めに盛り込んだスライドですので役に立てると嬉しいです。

 

おまけ

15分の発表ですが、Lancers Top を作る過程で出てきた課題と対処について色々喋りたいことがあったのでAppendixとして、実際の発表と同じ分量のTipsをおまけとして載せてあります。一つでも活用できる項目あれば嬉しいです。

 

CakePHP関連については、毎週クックブックリーディングも開催中で Connpass などで情報を掲載していますので、参加お待ちしています。

 

[イベント報告] phpcon2017でのPHPクイズ ~答え合わせ編~

上野諒一|2017年10月10日
PHP

こんにちは、エンジニアの上野です。

先日行われたPHPカンファレンス2017でブースを出展して Lancers Top で使っているシステムを利用したPHPの問題(超難問)を出題しました。問題をかなり難しく作ってしまったため、答えを知りたいという声が会場でちらほら聞こえていたので、当日の懇親会LTで発表させていただきました。

名前を一方的に知っている方々の中に割って入ってのLTは非常に緊張しましたがいい経験でした。

答えだけ簡単に記事上に記載しておきます。問題と解説付きの解答はphpcon2017の懇親会でLTを行ったときのスライドを御覧ください。


 

正答一覧

 

第一問 (比較演算子 `==`)

答え(複数): $b == true, $b == 0

第二問 (traitのメソッド定義優先順)

答え: Cb::x(), Tb::x(), Ca::x(), Ta::x()

第三問 (PSRについて)

答え(複数): PSR-2, PSR-4, PSR-7, PSR-13

第四問 (constで配列を定義できるバージョン)

答え: PHP5.6

第五問 (PHP5.3で使えない関数)

答え: array_column()

PHP, CakePHPバージョンアップに向けてCIで品質を担保・向上していく

上野諒一|2017年06月27日
CakePHP

こんにちは、エンジニアの上野です。

今回はソース例や実際のサンプルソースを交えながら 「PHPバージョンアップに向けてCIで品質を担保・向上していく」と題してlancers.jp本体に導入しているCircleCIでの取り組みについてご紹介します。

導入背景

PHPバージョンアップに向けて現状のソースの品質を担保・向上していく目的で

  1. コーディング規約の遵守
  2. syntaxの先取り修正
  3. 複雑度悪化への歯止め
  4. UTの継続実施

の4つを継続的に実施していこうとなったためCircleCIを用いて順次整えていっています。
UTについては、テスト量が多く(なんと10000超!!)継続的に実施するためには時間的な制約が残っているためCIではなく毎日一回のチェックを行っています

それぞれの設定について

1. コーディング規約の遵守

cakephpのバージョンを上げていくとPSRへの適用が徐々に行われています。(直近のCakePHP3.4でもPSR-7への準拠が行われました)
そのため自分たちのソースもできるだけそこに近づけていくためにPHP-CS-Fixerを用いて規約のチェックと自動修正をできるようにしました

cd CAKE

# composer.jsonにPHP-CS-Fixerの記述を追加
vi composer.json

# .php_csを追加(幾つか方法はありますがランサーズではapp配下においています)
vi app/.php_cs
{
  "require-dev": {
    "phpmd/phpmd" : "^2.4",
    "friendsofphp/php-cs-fixer": "^2.1"
  }
}
<?php
// on cakephp1.3 APP_DIR
$finder = PhpCsFixer\Finder::create()
    ->notName('README.md')
    ->notName('.php_cs')
    ->notName('composer.*')
    ->notName('phpunit.xml*')
    ->notName('*.xml')
    ->exclude('vendor')
    ->exclude('plugin')
    ->exclude('tmp')
    ->in(__DIR__);
return PhpCsFixer\Config::create()
    ->setRules(['@PSR2' => true])  
    ->setUsingCache(false)
    ->setFinder($finder);

php_cs_fixerを起動するshellを作成
ちょっとワンライナーが細かいですが、commitのdiffを取って差分実行させています

IFS=$'\n'; COMMIT_SCA_FILES=($(git diff --name-only --diff-filter=ACMRTUXB origin/master )); unset IFS
./app/vendors/composers/friendsofphp/php-cs-fixer/php-cs-fixer fix --config=app/.php_cs -v --dry-run --diff --path-mode=intersection "${COMMIT_SCA_FILES[@]}"

2. syntaxの先取り修正

circle.ci を7.0環境でビルドしてsyntaxチェッカーを回すことで、非推奨関数を使った場合などエラーになるようにしています。
ここでも差分実行させています。(coreのソースは準拠していないものが多いので、万が一coreソースに手をいれるとなると必ずエラーになります)

machine:
  php:
    version: 7.0.4
git diff --name-status origin/master -- | grep -E '^[AUM].*\.php$'| cut -c3- | xargs -n1 php -l

3. 複雑度悪化への歯止め

PHPの静的解析ツールであるPHPMDの差分実行シェルを作りました。
また、レガシーなソースも多くあるのでPHPMDでの警告は参考に出力してリファクタ対象としてCircleCIの終了ステータスには影響を及ぼさないようにexitは0で返しています

FILESTRING=`git diff --name-status origin/master -- | grep -E '^[AUM].*\.php$'| cut -c3- | tr '\n' ',' | sed -e 's/,$//g'`

if test "${FILESTRING}"; then
  vendor/bin/phpmd $FILESTRING text codesize,controversial,design,naming,unusedcode
fi
exit 0

3つのチェッカーをtestフェーズで実行

machine:
  php:
    version: 7.0.4
test:
  orverride:
    - app/tests/php_cs_fixcer.sh
    - app/tests/php_syntax_checker.sh
    - app/tests/phpmd_checker.sh

ランサーズでは今回作成したスクリプトを流用して、app配下全ファイルに対して適用して、数日で

  • 修正が必要な数十個程度の記述を洗い出し
  • 主に改行や空白、アクセス修飾子などソースには影響しない6万行程を自動修正

を行うことができました。改善したソースを日々CircleCIがチェックしてくれています。
特にコーディング規約はルールの統一ができ余分なレビュー時間の削減にもつながっていておすすめです。

この他、pre-commitで事前にソースを自動修正させたり、新しくCakePHP3.4で作っているプロジェクトではphpunitの自動実行なども実施しています。
それらはまた追ってお伝えできればいいなと思っています。

ソースのサンプルはgithubからも閲覧できます。参考になれば嬉しいです。

チャットワークをもっと使いやすくする拡張機能を作った

上野諒一|2016年12月22日
JavaScript
こんにちはエンジニアの上野です。
2016年のAdventCalendar も残すところあと僅か!
12/5の投稿(githubのissue, pull request 検索をハックする!)に引き続き、今日はチャットワークの拡張プラグインのご紹介です。エンジニア合宿で作成してウェブストアで一般にも公開している拡張機能になります。

主要な機能一覧

自分が使っていてほしいなと思った機能のうち汎用的に使いそうだなと思ったものを思いつくままに取り込んで作成しました。
  • 全員toを短縮形で使えるようにする
  • toListを開く
  • 全て既読にするボタン付ける
  • [info][/info]などのタグを簡単に作る
  • 自分へのto以外は隠す
  • 自分の送信以外は隠す
  • 隠したメッセージを戻す

利用法

chromeのストアに登録しているので、こちらから拡張機能を追加してください

chatwork helper(chromeストア)

全員toを短縮形で使えるようにする

chatworkには全員にtoを付ける機能があるのですが、人数が多いチャットだとtoの指定だけで画面が埋まってしまうのでtoのタグだけを全員分発行するショートカットを作りました。
a9020581a57dc076ea2c15884c35bfdc

toListを開く

エンジニア的には、toつけるたびにキーボードから手を離したくない。そこでtoListを開くためのショートカットキーを作成しています。
a19e6f1b7e8b37dd57d0c2907ef38536

全て既読にするボタン付ける

通知系をチャットワークに集約していたりすると、見る必要のないメッセージが大量に貯まってしまい、既読にするのが大変だったので追加しました。結構便利です
7287829e33f8e987f7285f74ac1d05ef

[info][/info]などのタグを簡単に作る

チャットワークにはinfoなど幾つかの特殊記法が用意されています。閉じタグを含めて記述するとちょっと長いので短縮するためにショートカットを作成しました
507c1e731e53a98f37fd98c5dcf5ae95

メッセージの表示を自分へのto や 自分のメッセージに限定する

投稿が多いチャットで自分へのメッセージを探す時や、以前の自分の発言を引用したいときなど、表示量を減らして、見つけやすくするために用意した機能です
ちょっと無理矢理感がある実装ですが、自分へのtoのみを表示したいという要望が周りから出ていたので作ってみました
  • 自分へのto以外は隠す
  • 自分の送信以外は隠す
  • 隠したメッセージを戻す
b9210fd053a472c0d39a79419ff12bd5

課題

ソースコードはこちらで公開(https://github.com/ryoichi-u/chatwork_helper )しています
開発合宿の1日という時間の中、 作ったものなのでまだまだ幾つかの課題感を持っています。
  • 見直したらもう少しスマートにかけそう
  • :toの処理などではサジェストしていく動きを実現したかった
  • 各ショートカットを使った後にカーソルが一番下に移動してしまう
  • :mine, :meで該当するものがローディングされてない場合、うまく表示できず追加ロードになる(力技でやりすぎた感)
上記の課題感や、汎用的に組み込んだほうが良さそうな機能がありましたらご意見、pull requestいただけると、とても喜びます。
今回、拡張機能としてchrome storeに登録するために汎用的に使えるコマンドのみを採用していますが、テンプレート自分用のテンプレートを多数登録したり、特定の何人かのグループにtoを送ったりとカスタマイズして使うこともできると思います。是非ご活用ください

参考にしたページ

今回の拡張機能作成には以下のようなページを参考にさせてもらいました。chromeの拡張機能はjavascriptがかければ簡単に作れるので、試してみてください。

Publish in the Chrome Web Store

Manifest File Format

初めてでも理解できるようになる「Google Chrome機能拡張の開発」

githubのissue, pull request 検索をハックする!

上野諒一|2016年12月05日
DevOps

こんにちは、エンジニアの上野です。
ランサーズストア の開発責任者として日々奮闘中です。

今日は、エンジニアみんな大好きgithubの検索クエリをハックする!!と題して、検索クエリの解説をしようと思います。githubではissueやpull requestを検索するときにクエリを指定すると結構柔軟に条件を指定して調べることが出来ます。

自分自身、入社してから数え切れないリリースをしているので、しばしばこのクエリを用いて過去のissueなどを調べています。せっかくの機会ということで、「公式helpに沿ってルールのまとめ」と「普段使っているクエリの紹介」の2部構成でお届けします。

スクリーンショット 2016-12-05 16.04.45

 

githubのissue, PR検索用で使えるクエリ一覧

ここからは公式helpにある文法を日本語で解説していきます。
公式のhelpのまとめ方が少し冗長だなと感じる部分は項目を合体させてできるだけ簡潔に記述するようにしています。

元のヘルプはこちら
https://help.github.com/articles/searching-issues/

文法の基礎はこちらで確認できます
https://help.github.com/articles/search-syntax/

 

曖昧にキーワード検索する – hoge

titleやコメント、ユーザー名などでキーワードに引っかかれば表示されます(曖昧な検索)

リファクタリング
仕事検索

 

issue か pull request(PR)に限って検索する – type:pr

通常、issuesとPRの両方が表示されます。typeを指定することで片方を限定して表示することが出来ます

type:pr
type:issue

 

検索範囲を絞り込む – in:field名

キーワードの後に`in:field名`を指定することで、キーワードの検索範囲を絞ることが出来ます。複数指定したい場合はカンマ区切りにすることで絞込可能です

# タイトルにwarningがついている
warning in:title

 

# タイトル or 本文にerrorがついている
error in:title,body

 

# コメントにLGTMがついている
LGTM in:comments

 

リポジトリの公開ステータスを指定して検索する – is:private

githubを横断して検索する時にリポジトリの公開範囲を指定して絞り込むことが出来ます

is:public
is:private

 

関係している人を指定して検索する

githubでは関係している人を指定して検索する事ができます。関わり方によって幾つかの検索キーが用意されています

# そのissue or PRを作成した人
author:ryoichi-u

 

# アサインされている人
assignee:ryoichi-u

 

# コメントしている人
commenter:ryoichi-u

 

# メンションが飛んでいる人
mentions:ryoichi-u

 

# 関連している人(author or assignee or commenter or mentions)
involves:ryoichi-u

 

ステータスを指定して検索する – state:ステータス

open状態やclose状態のものだけを指定して検索することが出来ます。

state:open
state:closed
state:merged

 

ラベルを指定して検索する – label:ラベル名

ラベルを利用して絞込をかけることが出来ます。複数のラベルを指定するときは、複数個記述することでand条件で指定することが出来ます。
否定を表す時は`-label:`を指定することで検索することが出来ます。

# bugラベルがついている
label:bug

 

# bug, resolved両方のラベルがついている
label:bug label:resolved

 

# bugラベルなしでpriorityラベルがついている
-label:bug label:priority

 

マイルストーンを指定して検索する – milestone:マイルストーン名

milestone:”overhaul”

milestone:v3.1.0

 

〇〇が付与されていないという条件で検索する – no:項目名

ラベルやマイルストーン、アサインなどが付いていないissueやPRを検索するときは`no`キーを使うことで検索することが出来ます。

# マイルストーンが指定されていないissue
no:milestone type:issue

 

# javaが主言語のリポジトリでアサインされている人がいないissue
no:assignee language:java type:issue

 

# ラベルが付いていない
no:label

 

主要言語で検索する – language:主要言語

language:ruby
language:php

 

issueやPRの状態で検索する – is:状態名

# issue, PRがオープンである or クローズである

is:open
is:closed

 

# マージされている or されていない

is:merged

is:unmerged

 

# issueである or PRである

is:issue

is:pr

 

コミットのステータスで絞込んで検索する – status:commitステータス

コミットのステータスで絞り込んで検索する事ができます各種APIやCIを使っている場合、特に便利なキーです

# 待機中、失敗、成功
status:pending
status:failure
status:success

 

マージ先ブランチ、対象のブランチ名で絞り込む

branch名でも検索することが出来ます。
PRをブランチ名`fix_ref1234`(head)を`master`(base)にマージするpull requestと読み替えるとキーを指定しやすいと思います

# マージ先がmasterブランチ
base:master

 

# ブランチがfix_ref1234のPR
head:fix_ref1234

 

時刻を指定して検索する – イベント名:時刻

時刻を指定できる項目

4種類の時刻をキーに設定することが出来ます。

# 作成日
created:時刻

 

# 更新日
updated:時刻

 

# マージした日
merged:時刻

 

# クローズした日
closed:時刻

 

時刻指定の方法

時刻指定は`YYYY-MM-DD`の形式で行うことが出来ます。標準時のズレについては`+HH:MM:SS`で指定することが可能です。(日本なら`+09:00)
AからBの間は`A..B`で表現することが出来ます

# 2016年より前に作られていてまだopen状態のissue
created:<2016-01-01 state:open type:issue
created:*..2016-01-01 state:open type:issue

 

# 2016-12-01から今までの間で更新されているPR
updated:>=2016-12-01 is:pr
updated:2016-12-01..* is:pr

 

# 2016-04-01から2016-09-30までの間にマージされたPR
merged:2016-04-01..2016-09-30

 

コメント数で絞り込む – comments:数値

# コメントが100個以上ついてクローズしているもの
state:closed comments:>100

 

# コメントの数が500~1000個のもの
comments:500..1000

 

特定のコミットハッシュが含まれるもの – ハッシュ値(前方一致)

特定のコミットハッシュが含まれるPRを検索することが出来ます。
ハッシュ値をそのまま記述することで前方一致でそのハッシュを含むPRを検索することが出来ます。

# e1109abから始まるコミットを持つPR
e1109ab

 

# 0eff326d6213cから始まるコミットを持つマージされたPR
0eff326d6213c is:merged

 

表示順を指定する – sort:条件句

特定のキーワードを指定することで、順番を入れ替えて表示することが出来ます。
`ascending(昇順)`と`descending(降順)`を指定することも可能です。

# コメントが多い順
sort:”Number of comments”

 

# 作成日が新しい順
sort:”Date created”

 

# 作成日が古い順
sort:”Date created” asc

 

# 最新の更新順
sort:”Date of last update”

 

公式のhelpには載っていないが覚えておくと便利なTips

空白文字列がある場合

ダブルクォーテーションで囲むことで利用することが可能です `”hoge fuga”`

# タイトルに「ref 1234」という文字列が入っている
title:”ref 1234″

 

# タイトルにrefが入っていて、bodyなどのどこかかに1234が入っている
title:ref 1234

 

否定条件をつけたい場合

キーワードの場合は`NOT`をつけることで検索可能です。必ず大文字にしてください

# fixという文字列が入っていない
NOT fix

 

# notとfixという文字列が入っている
not fix

 

キーの場合には`-(マイナス)`をつけることで検索可能です。

# bugラベルがついている
label:bug

 

# bugラベルがついていない
-label:bug

 

キーワードの大文字小文字は区別されない

# 以下は全て同じ結果になる
fix
FIX
Fix

 

便利なgithub検索チートシート

文法の説明の前にとりあえずこれだけでも覚えておけば便利になりそうな検索用のクエリを紹介します。
この検索結果をブックマークやチャットの概要にしておくと便利です!

スクリーンショット 2016-12-05 3.47.32

 

bugラベルがついているissueを探す

is:issue label:bug

 

自分が関わっているissueやPRを探す

# 曖昧に自分が関わっているもの
involves:ryoichi-u

 

# アサインされている
assignee:ryoichi-u

 

タイトルにIR(In Review)がついているPRを探す

is:pr IR in:title

 

11月でランサーズストアに関わるissueも含めた課題の消化数を調べる

is:closed closed:2016-11-01..2016-11-30 label:lancers_store

 

11月にランサーズストアに関わる新しい課題を調べる

is:closed created:2016-11-01..2016-11-30 label:lancers_store

 

自分が担当したブランチの4~9月のmaster branchへのマージ数

これは半期の振り返りなどで使えます。自分がどのくらいリリースしていたか、どんなリリースをしたのかを振り返るときに役に立ちます

is:pr is:closed assignee:ryoichi-u merged:2016-04-01..2016-09-30 base:master

 

いかがだったでしょうか?
それぞれのプロジェクトのショートカットや振り返りをする時のissueリストの作成などに活用してもらえたらうれしいです。

横須賀ハッカソン合宿

上野諒一|2016年03月15日
イベント/登壇

12747255_1239615939401239_3626260374062368488_o_2

 

こんにちは! エンジニアの上野諒一です。
先日、ランサーズ2回目となる開発合宿が開催されました! 今回の合宿は1日弱でしたが、いくつか公開できるものも含めていろんな成果物ができた合宿となりました。その様子をご紹介します。

今年は、ランサーズが地方創生の取り組みとして提携させていただいている横須賀市から声をかけていただいて横須賀リサーチパークの施設で行なうことになりました!

開発合宿(ハッカソン)〜準備編

大事な大事なテーマは・・・

スクリーンショット 2016-03-12 20.42.47

今回は「自分の創りたい世界を実現する」になりました。そして、昨年から開発部として大事にしていることとして「やり切る力」があります。

ランサーズ開発部は横井CTOの号令のもと、即興のテーマを元に「30分で作りきる」ラピッド会を定期的に開催しています。なのでテーマも「作る」じゃなくて「実現する」に変わってます。しおり冒頭にも「ちゃんとやり切るのが重要です」

スクリーンショット 2016-03-12 20.47.58

開発合宿(ハッカソン)〜いざ、1日目

横須賀中央に集合

まずは、、、卓球・ダーツ(旅行気分です)せっかく来たのでみんなはしゃいでます。そして一部メンバーは温泉へ

12779022_1238376659525167_6113831336116437575_o12771783_1238377242858442_5284113358321454620_o12764523_1238377306191769_3007417121575874995_o

温泉から帰ってきたらみんなガチで開発してる。このON OFFの切り替えがランサーズです

12771839_1238376812858485_631974080277479731_o 12719300_1238376819525151_9098691873693340528_o

 

ご飯が終わった後もビール片手に開発は続き、、元メンバーも終電で駆けつけ合流して最終組は26:30までgitへのコミットログは28:30くらいまで続いていました。

12778793_1238379119524921_3740717698571521456_o12772026_1238378979524935_2264974493617537639_o

 

開発合宿(ハッカソン)〜2日目

11:00から発表会、開発の時間はいつでも有限です大事なのは「作りきる」です。みんな追い込みで必死

12764356_1238379042858262_3495323667123277541_o 12747319_1238378982858268_4630342804988915922_o

発表会

ついにタイムアップ。これから発表です。個性あふれる思い思いの名前を付けてます

今回はMVP、技術賞、アイデア賞を用意してMVPには豪華賞品とのこと。

1日弱でも、みんな作りきってプレゼンまで用意してる。ガチンコ勝負

12764366_1238389196190580_842013704354953299_o


12671667_1238391096190390_5544337132020780390_o12772050_1238390366190463_7927032064639815168_o 12779052_1238390016190498_9210175438792311885_o

 

結果発表

 

アイデア賞

普段の業務をちょっとしたアイデアでよくできるそんな2つの成果物でした

  1. chromeExtentionでgithubをかいてきに
  2. エスカロッター 〜いい人の逆襲〜

技術賞

ES6でフロントエンドを書き直した時の経験から独自のフレームワークを提案した「虎徹」が大賞

  1. Fluxフレームワーク 虎徹
  2. RIngidesu

MVP

頂きましたMVP!チャットワークのかゆいところに手を届かせるプラグインを作りました。

  1. チャットワークをもっと便利にしちゃうぞ
  2. RIngidesu

受賞者の皆さん

12615193_1238391562857010_8284850131965437124_o12768260_1238391572857009_1002477265810280477_o 12493614_1238391699523663_6854863743696952797_o

 

発表会終了後は

せっかく遠くまで来たということで、近くを散策したり有志で戦艦三笠を見に行きました。

12719081_1238395439523289_136206509939202121_o12778800_1238394699523363_6546036084695225088_o
12764336_1238391956190304_8565695120358989238_o

みなさんお疲れ様でした!そして、合宿の場所を提供してくださった横須賀市の皆様、ありがとうございました。

 

後日談

上野「そういえば豪華賞品は?・・・・」

合宿マスター「え? ブログを書ける権利ですけど?」

上野「ランサーズの商品といえば寿司とかじゃないんですかぁぁ!!!!!」

合宿マスター「ま、頑張って書いてね〜」

ってなわけで今回書かせてもらいました。

 

当日作っていたプラグインは user_script で書いていましたがこちらで正式にchromeのプラグインとして登録しています。

chrome拡張 – chatwork_helper    使い方

他にも、今後いくつか合宿で作ったものを公開していきたいと思いますので楽しみにしてください


ランサーズではサービスを成長させてくれるエンジニア、デザイナーを募集しています!
ご興味がある方は、以下URLよりご応募ください。
ランサーズ株式会社 採用情報

 

また、3/30 に渋谷にて Lancers Night を開催します。規模を大きくしつつ開発のスピードを人数以上に上げることがてきたこの1年。その具体的な実践をお伝える場になると思います。ぜひ足を運んで見てください

【満員御礼につき増席☆】社員数100名の壁を越えるタイミングに在籍する、組織・サービスを支えるプロダクトチームの苦悩と喜び−ランサーズ−