ユニファ開発者ブログ

ユニファ株式会社プロダクトデベロップメント本部メンバーによるブログです。

経験者採用の裏側。

こんにちは。エンジニアの田渕です。

暑くなったり寒くなったりやけに台風が多かったり……。。。今年の夏は体調管理が難しいですね。 しかしながら、延々と続くかに思われた猛暑も最近は少しマシになり、夜には秋の虫が鳴くようになりました。 このまま涼しくなってくれるといいなあ。

最近、各種求人サイト等でユニファのエンジニアの採用情報を色々と掲載しております。 ご応募頂く前にこちらを見て頂いている方もいらっしゃるようですので、 今日は募集している私たちがどんなことを考えているか、その裏側を書いてみたいと思います。

※募集状況等は刻々と変化していきますので、ご興味をお持ち頂いた方は各種求人情報等で最新の情報をご確認ください。

ユニファ 株式会社の採用/求人 | 転職サイトGreen(グリーン)

募集要項の裏側

私は、ユニファに来るまでは比較的大きな会社のエンジニアでした。 稀に採用に携わることもあったのですが、私に決定権はなく、人事の方が中心で進められている採用活動でした。 その後、初めての転職活動を行いユニファに入社した訳ですが、転職活動自体が初めて、右も左も分からず。。。 応募用書類を用意するにもどんな情報が欲しいのか今ひとつ分からずあたふた……な感じでした。 そこからユニファに来て、エンジニア自身で採用活動を行う形になりました。 「採用される側」から「採用する側」になって、かなり転職活動や採用というものに対しての見方が変わったのを感じています。

新卒採用と違い、経験者採用では「これまでにやってきた仕事の実績、持っているスキル」をお伺いして検討していく形になります。 そのため、応募をして不採用になった場合は、あたかもこれまでのキャリアを否定されたかのように捉えがちですが、実は違います。 例えば、私はWebエンジニアですが、一口にWebエンジニアと言ってもその働き方は業界や会社の規模などによってまちまち。 きっちり設計が完了したものを形にするエンジニアもいれば、思い描く絵すら無いところから作り始めるエンジニアも居ます。 10の会社があれば、10通りのエンジニアの働き方があると考えて良いと思います。 それに加え、ベンチャーのような状況変化の早い会社では(まさに現在のユニファの様な感じですが)「今のタイミングではこういう人が欲しい」という求人が殆どです。

ここでポイントなのは、「今のタイミングでは」というところ。 もともと働き方に幅のあるエンジニアという仕事に対し、更に時限制の条件がついているのです。 ここまで来ればなんとなくお分りかと思いますが、つまり「来て欲しい」と思っている人物像が、結構ピンポイントだということになります。

そんなに条件がはっきりしてるなら応募条件とかに書けばいいじゃないか?とお思いかもしれません。 が、あまりに細かすぎる応募条件は、そもそも読んで貰えなかったり(苦笑)応募の意欲を削いでしまうことにも繋がります。 書いたことによって誤解を与え、応募の機会さえ奪ってしまうこともあるでしょう。 また、文字で表現することが難しい部分(例えば現在のメンバーとの相性や、人柄の部分だったり)もあるため、どうしても募集要項等に完璧に反映することが出来ません。

これは恐らく弊社に限ったことではなく、「募集要項の内容満たしてると思って応募したのに断られたよ!」ということが起こるのはそういうことです。

ご縁がなかった!?事情は色々。

せっかくご応募頂いたのにお見送りにさせて頂く、あるいは逆にお断り頂くこともありますが、その理由をいくつか書いてみたいと思います。

今のユニファにはマッチしない

私もこれまでにお会いした方の中で「ああ、来年だったら一緒に働きたかった。」とか「三年後だったら……」などと感じたことは多々ありました。 現時点では必要とされているスキルや経験が不足していても、「あと一年後だったらきっと条件を満たしていただろうな」と言ったパターンです。 弊社にそういった経験をゆっくりと積ませてあげられる土壌があれば良いのですが、残念ながらまだまだ発展途上の弊社では、ゆっくりとは時間が作れないのが現実です。 ご入社頂いて、弊社の事業スピードの中で無理なくその方の良い部分を伸ばしていけるかどうかを確認させて頂いております。

その方の描いているキャリアプランがユニファの今後とマッチしない

面接においては、応募頂いた方のこれからのキャリアプランや、実現したいこともお伺いしています。 仮に現時点のその方が現在のユニファで求めているスキルをお持ちだったとしても、お話を伺った結果、今後のユニファでそのキャリアを実現することが難しいと判断した場合には、面接の結果としてご本人にその旨をお伝えした上で次に進むかどうかを検討頂いています。 その結果、「それも込みでぜひユニファに」、と言ってくださる方もいらっしゃいますし、残念ながら応募者の方からのお断りとなることもあります。

「採用されなかった=
これまでのキャリアの否定/今後の可能性の否定」ではない。

ユニファにおけるエンジニアの経験者採用は、ご応募頂いた方が現在の弊社の「今のタイミングではこういう人が欲しい」という人物像にマッチしているか、ということを見ているものです。 したがって、お見送りは「これまでのキャリアの否定」でも、「今後の可能性の否定」でもありません。 単に「現在のユニファの状況と応募者の方の状況がマッチしていなかった」それだけのことです。

ですから仮にご縁がなかった場合でも、必要以上に落胆して頂く必要はありません。 単にちょっとタイミングが合わなかった、ただそれだけのことです。

さいごに

転職というのは応募頂く方の人生の中でそれなりに大きな決断だと思っているので、妥協や迷いのある中で採用の通知をお出しすることはお互いにとって良くないことだと考えています。 採用活動を通し、自分自身が転職活動をしていた頃に不採用の通知を頂いた会社さんに対しても、ちゃんと向き不向きを見てくれたんだなという感謝の気持ちが強くなりました。

面接では弊社のことも色々とお話させて頂いております。 また、これだけ色々堅苦しく書いておりますが、おそらく面接自体はかなり緩い雰囲気で実施しています。

もしも今、応募しようかどうしようか迷っている方がいらっしゃったら、「ちょっとユニファのエンジニアの顔見に行ってやる!」くらいの気持ちでお話だけでも聞きに来て頂けると嬉しいです。

ではでは!

テクトモ #5 で私と Python について話してきました

 先日 8/23(木)に、テクトモという勉強会シリーズの第5回に登壇させていただきました。

techtomo.connpass.com

 このシリーズではエンジニアやデザイナー向けに、未来×希望×キャリアをテーマに情報発信を中心としたイベントを開催されていて、以前 R&D チームの志田がこのシリーズの第3回に登壇しました。

techtomo.connpass.com

 この時私は一参加者として参加していたのですが、懇親会で主催者の方とお話しさせていただく中で、登壇させていただくこととなりました。

プレゼン資料

 第5回のテーマは「Pythonエンジニアが描く未来と希望〜キャリアを中心に考えるLT大会〜」ということで、私はこれまで業務のメイン言語としては Python を使っていたことはなかったのですが、必要に応じてツールとして Python を使っていたことはそれなりにあったので、これまでのキャリアを踏まえてどんなシーンで Python を使っていたかということを、多少の Ruby との比較を交えてお話しさせていただきました。

 当日使用した資料はこちらです。今回は Prezi で資料を作成しました。

わたしとPythonの出会い、別れ、再会、そしてこれから

f:id:akanuma-hiroaki:20180827231048p:plain

まとめ

 当日は私を含む4名のLTがあり、その後その4名でパネルディスカッション形式で会場の参加者からの質問に答えるという形で進みました。アットホームな雰囲気で、参加者の方にも楽しんでいただけたようです。

 Python については AI系技術や IoT などの領域で中心的に使われている言語であり、今後さらに利用範囲が拡大していくと思っています。現状のユニファでのメインの言語は Ruby ですが、 R&D チームでは Python をメインとして使用し始めていますし、ユニファの業務でもさらに活用されていくものと思われます。

 ユニファでは Python を活用してAI系技術領域で活躍したいエンジニアを募集しておりますので、興味のある方はぜひご連絡ください。

【サーバサイドエンジニア】家族×ITで家族コミュニケーションを変革する自社サービスのAI系技術サーバサイドエンジニアを募集!

PlantUMLで状態遷移図を書いてみた🌱

こんにちは、ビールが大好きなQA/ディレクターの鶴岡です。

先日WACATE2018 夏 ~もちもちモ・デ・リングで、もぐもぐテスティング~ 開催概要 - WACATE (ソフトウェアテストワークショップ)に参加して、モデリングについて勉強してきました。

そこで、テキストベースで簡単にUMLを書けるツール、PlantUML(http://plantuml.com/)を教えてもらったので使ってみたお話です。

セットアップはこちらのブログを参考にしました。 (とてもわかりやすかったです^^)

qiita.com

なんならこのブログを見てもらえば十分なような

やってみた!🌱

ということでPlantUMLで状態遷移図を書いてみました!

こんな感じでテキストで書いていくとプレビューにごりごり反映されます。 f:id:unifa_tech:20180815120547g:plain

画像ファイルとして出力もできます!

出力形式はpng, svg, eps, pdf, vdx, xmi, scxml, htmlから選べます。

pngで出力してみたものがこちら f:id:unifa_tech:20180815114043p:plain

Confluence上でも書けます!

インフラエンジニアにお願いしてConfluenceにPlantUMLのプラグイン(無料版)をいれてもらったら

  1. PlantUMLを選択してf:id:unifa_tech:20180815131257p:plain
  2. テキストベースで書いていくf:id:unifa_tech:20180815131720p:plain
  3. 「⇒」を押すとプレビューが見れますf:id:unifa_tech:20180815131242p:plain
  4. 完成!🎉f:id:unifa_tech:20180815131306p:plain

あとがき

  • この状態遷移図はブログ用に書きましたが、もちろん仕事用のまじめな状態遷移図もちゃんと書いてます(`・ω・´)

  • 状態遷移図を書くのは楽しい!PlantUMLを使うともっと楽しい!(WACATEに感謝)

  • このブログ用の状態遷移図はエンジニア勢みんなでレビューしてくれました。

f:id:unifa_tech:20180815134328p:plain

そんな弊社ではQAマネージャ候補やRubyエンジニアやデザイナー等々を募集しております!!!

www.wantedly.com

最後まで読んでいただきありがとうございました!

ママエンジニア1年目

こんにちは、Androidエンジニアのあいばです。 昨年7月に第一子を出産し、今年4月から職場へ復帰しました。今回は子育てと仕事の両立をするために、私がユニファで選択したワーク&ライフスタイルをご紹介したいと思います。

ワークスタイル

業務内容

産休育休前はAndroidエンジニアとして働いていましたが、復帰後はiOSアプリの開発を多く担当しています。

時短勤務

復帰時は8:30-17:30のフルタイムを選択しましたが、現在は9:00-16:00の時短勤務にしています。
勤務時間が以前の3/4になったため集中力を高める工夫は必要になります。毎日定時直前はシンデレラ気分です。
また、作業時間が減った上に子供の体調不良も割り込んできます。そのため、思うように仕事が進まずに周囲に迷惑をかけて口惜しく感じることもあります。

最近はタスクを15分か30分区切りで管理するようにしていますが、どちらかというと自分の作業スピードを把握するのに役立っています。(育休明けは色々な負い目から適切な工数を出せない病を患っていたためこれから役に立つかもしれません)
そのためこの点に関してはまだまだ課題を感じています。

リモートワーク

ユニファ ではエンジニアの自宅勤務が可能です。主に以下のツールを利用してコミュニケーションを取っています。

  • Slack
  • zoom

私も通勤に1.5hかかるため主にリモートワークをさせてもらっています。夫の勤務先も週1回はリモートワークができるため、週1回は夫に子供を託して出社しています。
保育園からの呼び出しがあった場合も自宅からならすぐに駆けつけられ安心ですし、帰りに小児科、買い物に行く時間もあります。

ライフスタイル

0歳児を保育園に預ける

子供を保育園に預け始める時期についても悩みましたが、1歳児の保活はかなりハードとのことでやむなく0歳児で入園しました。
しかし、保育園に預けてみるとメリットも大きいように感じています。それまでは親子の閉じた空間で悶々と育児の悩みに向き合っていましたが、一緒に子供を見守ってくれるプロフェッショナルの存在に助けられました。
また、子供と離れ社会との関わりを持つ時間が生まれたことでストレスの発散にもなりました。

1日のスケジュール

だいたいこのようなスケジュールで生活しています。

6:00-8:00 起床、朝食、準備
8:00-9:00 登園
9:00-16:00 業務時間
16:00-17:00 お迎え
17:00−18:00 必要なら買い物、遊ぶ
18:00-20:00 お風呂、夕食、遊ぶ
20:00-21:00 寝かしつけ
21:00- 残った家事、自由な時間

リモートワーク&時短勤務のおかげで時間にも気持ちにも余裕が生まれました。
今のスタイルになるまでは子供と遊ぶ時間が確保できなかったり、離乳食を用意できなかったり、毎日タスクをこなすのに精一杯で保育園の連絡帳に書くネタが無かったり、このままでは子供の成長を見逃すことになるのではとかなり焦っていました。

フルタイムも不可能ではありませんが0歳児は初めての保育園にとても体力を使っていることを認識し、一緒に過ごす時間を充実させるために余裕を持つのは大事なことだと思います。

最後に

周囲の理解、サポートがあって現在の状況にあった働き方を見つけることができました。
とはいえ毎日バタバタ過ごし、自身のキャリアプランにも頭を悩ませています。
ただ、子供はいつまでも0歳児でいるわけではないので、子供の成長と共にこれからも柔軟に働き方を選択していけたらいいなと思います。

なぜ違う値を見たのかーーMemory Barrier

こんにちは、ヘルスケア事業本部のちょうです。前回

tech.unifa-e.com

CPUレベルでなぜ並列プログラムはなぜ思った通りに動いてないのを分析しました。要するに、CPUのキャッシュ間でMESIなどのCache Coherenceプロトコルがあるものの、Store BufferとInvalidate Queueなど最適化するための仕組みによって、命令がreorderされたように見えます。

違う値を見ただけでまだいいですが、reorderにより並列プログラムの動作は予測できなくなり、つまりundefined behaviorは一番の問題です。reorderを制御するには、memory barrierという仕組みがあります。CPUアーキテクチャによって命令が変わるのですが、目的は一緒です:前後命令の実行に制限をかけます。

https://en.wikipedia.org/wiki/Memory_barrier

前回のプログラムで、 a = 1f = true の間に smp_mb() (symmetric multiprocessing memory barrier)を入れてみます。結果はどうなるでしょう。

CPU 0にfのキャッシュがあり、CPU 1にaのキャッシュがあるとする

int a = 0;
bool f = false;

void cpu0 {
  a = 1;
  smp_mb();
  f = true;
}

void cpu1 {
  while(!f);
  printf("%d\n", a);
}
続きを読む

なぜ違う値を見たのかーー並列実行におけるCPUの動作

こんにちは、ヘルスケア事業部のちょうです。今日は並列プログラミングによくある間違うコード及びその原因について共有したいと思います。

まずはコード(抜粋、C言語)

int a = 0;
bool f = false;

void cpu0() {
  a = 1; // 1
  f = true; // 2
}

void cpu1() {
  while(!f); // 3
  printf("%d\n", a); // 4
}

関数cpu0とcpu1が別々のスレッドで実行されると、結果がどうなるでしょう。

1?もちろんそのはずですが、100回やると、たまに0も出るかもしれません。

続きを読む

続・RailsアプリからGoogleフォトに写真をアップロードしてみる

暑い!Webエンジニアの本間です。

早速で恐縮なのですが、半年ほど前「RailsからGoogleフォトに写真をアップロードしてみる」というエントリーを書きました。

tech.unifa-e.com

こちらの記事では、PicasaのAPIを使って写真をアップロードしていました。 やりたいことは一通りできたのですが、記事の後半でも書いた通り、いつまでサポートされるかわからない問題がありました。

その後、2018年5月8日Googleから Google Phtos API の発表がありました。 正式なGoogleフォト専用のAPIということで、今後はこちらのAPIを使う方がよさそうです。 今回こちらのAPIを使って、前回作成したアプリケーションの改修を行い、使い勝手などを確認しようと思います。

続きを読む