Subscribed unsubscribe Subscribe Subscribe

ジャバ・ザ・ハットリの日記

日本→シンガポール→ベルリンへと家族と共に流れ着き、ベルリンのスタートアップで働くソフトウェアエンジニアの日記

海外におけるエンジニアのキャリアをヨーロッパ貴族のお父様がタトゥー娘にメッセンジャーを送信するとこを想像しつつ考える

同僚のTはチェコ出身のカスタマーサポートを担当する女で、肩から手首にかけて派手な入れ墨があって、ヨーロッパ言語5ヶ国語を操ることができて、普段から各国の言葉で電話を通して客と対応していて、最初会った時は髪の毛の右1/3が緑色だったし、眉毛あ…

テキトー実装だとハッカー攻撃の恰好の的になりがちなRubyライブラリopen-uri

open-uriってちゃんと実装しないとなにかと危険な香りがしますな、という話。module OpenURI (Ruby 2.4.0)例えば外部のAPIを叩く必要があって require "open-uri" として使っていたとする。 フォームから受け取ったパラメータを入れてopen(なんやら)とする場…

まともなコードが書けるエンジニアならどこでも海外移住できるという単純な理由

ベルリンでもシンガポールでもITスタートアップのエンジニアチームで一緒に働いたチームメンバーの中に現地人はひとりも居なかった。そういう現状からITエンジニアならほぼどこでも移住できますよ、という理屈になる。現地人とはその国で生まれ育った人のこ…

Web系エンジニア必須の環境設定 <その2>ssh接続 は全てsshrc

前回の続き。週に1度でもサーバーにssh接続して作業するなら生のsshを使わずにsshrcにしましょう、と。普通にsshをするとvimの設定なんかの全ての設定がサーバーの設定に依存する。vimでサーバーファイルを編集していて、いつものキーバインドを使っても「…

Web系エンジニア必須の環境設定 <その1>dotfilesをGitHubで管理

シンガポールからヨーロッパに来てもソフトウェアエンジニアとしての職種が同じで言語も英語なので「やってることほぼ同じだな」と感じることがほとんど。そして開発の環境設定もほぼ同じ。人種国籍問わずエンジニアなら「これはやってるだろー」というよう…

朝っぱらから路上でゲイがディープキスしているのがベルリン

今朝、出勤するためにベルリンの美しい街を歩いているとヒゲを生やした中年小太りのゲイが二人でキスをしていた。軽い挨拶程度のキスではない。お互いの腕を絡ませて、抱きついて、ブッチュー、、、、、、とかなりディープだった。朝の9時半の路上で。で、…

海外転職でクソなスタートアップにひっかからないようにする方法

ホントにいいスタートアップには優秀な人材と刺激的なプロジェクトがあり、そこで働く人には無数の成長機会が存在する。ならばスタートアップで働くに限るぜ!となりがちだが気をつけなければならないことがある。それは箸にも棒にもかからないようなクソみ…

ベルリンに移住して3週間経った

家族と共にドイツのベルリンに移住した。ベルリンのスタートアップでソフトウェアエンジニアとして働いている。シンガポールに移住した際も最初の3週間と、その後の3ヶ月、3年の印象とは少しづつ変化していった。やはり最初の何も知らない時点で見るもの…

どこにでもある場所とどこにもいない私(著:村上龍)書評

「なぜ海外で暮らすことにしたの?」「なぜわざわざまたヨーロッパなんかに家族を連れて行くの?」こうした質問になんとか自分なりの考えを伝えるのだが、いつもしっくりこない。そんな時にいつも思い返す本が村上龍の「どこにでもある場所とどこにもいない…

ITエンジニアの海外転職を成功させるちょっとしたテクニック集

ITエンジニアが英語圏の会社へ海外転職する際、それを成功に導くちょっとしたテクニック集。これはとかではない。あくまでもちょっとしたテクニックになる。こういうのが意外と重要。シンガポールからヨーロッパのIT企業に転職することになった。オファーを…

ITエンジニアの海外転職で出された技術問題をそのままここに貼り付ける - その1

エンジニアが海外転職をする際に必ず出されるのが技術問題で、それらは本当に玉石混交。いい問題もあれば、なんかしっくりこないクソ問題もある。私が現職で応募者に技術問題を出す際にはいつも「外部のネットに書いたり、人に問題の内容を教えたりしないで…

外国人の家に泊まる、結婚式に出席する、葬式に出席する、という変な目標

シンガポールに移住した当初に個人的に立てた目標があって、パソコン内のファイルに書いて残しておいた。もうすぐヨーロッパに引っ越す予定で、ファイルを整理していたら、その当初の目標書いたファイルが出てきてそれを確かめたら、なんかあまり意識せずに…

ごく少数の日本の音楽を除いて子供の感性に引っかかるのはほとんどが英語の音楽になってしまう

うちの子供たちが子供の感性で選ぶ音楽、映画、本にはほとんど口を出さないことにしていたら、彼らが触れるのは全て英語の作品になってしまって、いまさら軌道修正しようとしても、どうにもなりませんでしたわ(ただし少数の日本人の作品を除く)という話。…

ITエンジニアの海外転職で気にするべきこと、気にしなくていいこと

ITエンジニアが海外転職をする際に気にするべきこと、気にしなくていいことをまとめた。なんか最近やたらとエンジニアに海外転職をすすめている記事が目につく。(このブログも基本そういうスタンスだけど)エンジニアが海外に仕事場を移して、そこでさらに…

動的計画法(Dynamic Programming)をサルでも分かるように説明する - その1(フィボナッチ数列)

「動的計画法(Dynamic Programming、以下DP)をどんな人にも分かるように丁寧に解説する」というこれまで何人もの優秀な方々が挑戦した内容にあえてまた参戦することにした。「動的計画法」とか「Dynamic Programming」でググると山のように解説ページがヒ…

小学3年生向け英語ボキャブラリーテスト【シンガポールの地元校版】

こちらの小学生達は英語のテストをリスニング編、スピーキング編、書き取り編と3部に分けて行う。書き取り編のボキャブラリー選択問題を抜粋した。英語のテストとしてまーまーいいので6問だけ試してみてはいかがでしょうか? 勝手に作ったり改編したのでは…

東京都民と千葉県民の違いなんてシンガポールで説明できるはずもない、という話

以前、ウチの娘が同じクラスのドイツ人の男の子とちょっとしたケンカをしたらしく、先生から電話があった。先生からはその経緯やらその後の解決したことまでの報告を受けたので安心はできていた。まだ小学校低学年だし、深刻ないじめでもないし、気にするま…

転職候補先で仕事内容や条件は素晴らしいのに「なんだか働きたくないなー」な会社があった

2年ぐらい前、シンガポールで転職活動をしていたときに仕事内容がバッチリで条件もそこそこいい求人が見つかった。さっそく応募書類を送って最初の面談が決まって、面談した。その後に「1次面談ありがとう。次回の2次面談の予定が**でして、来てもらえ…

「ITスタートアップで**を考えている奴ってバカじゃね?」と一刀両断されたがバカで結構です、と

こちらのスタートアップ界隈でのランチはだいたい周りの会社なんかにいるエンジニア達4,5人と一緒に食べて話をする。話の内容はいろいろだが、最新技術系の話が多い。 「おい、人工知能でその人にあった好みの料理を作る機械知ってるか?」とか「ドローン…

DJマシュメロのマーケティングが絶妙なのでウェブ系エンジニア目線でその考察を書く

特にEDM(エレクトロニック・ダンス・ミュージック)に造詣が深い訳ではない。しかしDJマシュメロのEDM界におけるマーケティングの素晴らしさを目の当たりにして「これはウェブ系エンジニアがしっかり参考にするべきなのでは」と思ったので書いた。 DJマシュ…

「プログラマが知るべき97のこと」はやたらリピート率の高いキンドル本

「プログラマが知るべき97のこと」の英語版がKindleに入っていて、結構な頻度で読んでいる。エンジニア向けエッセイ集で全てのエッセイが2ページほどに収まっており、スキマ時間に読むのにちょうどいいからだ。各エッセイには97人の熟練エンジニア達がそ…

エンジニアの技術力とプロジェクトのヒット率の悲しい相関性

元同僚のエンジニア達に会っていろいろ話す機会があって、彼らと話すうちにエンジニアの技術力とプロジェクトのヒット率の悲しい相関性について言及するに至った。人材の流動性が高いシンガポールのスタートアップで働いていると、同僚と仲良くなっても自分…

天才プログラマーと自分との実力差をカンタンに測定する方法

天才プログラマーと自分との実力差をカンタンに測定する方法を発見しましたよ、という話。結論から言うと、いろんなところで過去に開催されたプログラミングコンテストの入賞者の結果を見て、その問題を同じ条件で解いてみること。あるウェブサイトに201…

オブジェクト指向設計実践ガイド 「Practical Object-Oriented Design in Ruby」待望の日本語版がついに発売

本ブログで絶賛オススメしていた 「Practical Object-Oriented Design in Ruby」の日本語版がついに発売された。こちらの記事でオススメを書いたのだが、アクセスはたくさんあってもアマゾンのアソシエイトプログラムを通して購入にいたるケースは少なかった…

RubyのEnumeratorとEnumerator::怠惰(Lazy)の使い所とベンチマーク

RubyのEnumeratorとEnumerator::Lazyの使い所とベンチマークをまとめた。使うと意外と便利なのがEnumerator。 Enumeratorの基礎動作 irbを起動して配列のeachの後にブロックを渡さないでおくと、それはそのままEnumeratorオブジェクトにして返される。 ~ $ i…

エンジニアとして優秀な奴が全部持っていって、後は残りカスすら無いという現状を直視する

あらかじめ言っておくと結論はなく、今までの考え方はちょっと間違っていたな、というだけの話。エンジニアの世界にはやたら技術レベルの高い人が居て「こんな人にはかなわない」となることがある。そういう人と真っ向から勝負しても、負けるだけなので私な…

人種差別も宗教問題も独特のユーモアと鋭い視点で表現したエッセイ「No Land's Man」

実際の英会話において実用的に「使える本」に出会った。アメリカのテレビで活躍するコメディアンAasif Mandvi 氏のNo Land's Man。No Land's Man作者: Aasif Mandvi出版社/メーカー: Chronicle Books LLC発売日: 2014/11/04メディア: Kindle版この商品を含む…

5000件の解答者登録達成!ほとんどのエンジニアには解けるパズル1

ほとんどのエンジニアには解けるが、下位10%のダメなエンジニアにだけ解けないパズル?などというITパズルを作成して、それが解けたら解答者登録できる仕組みにしておいたら、8ヶ月かかってやっと5000件に到達した。「だからナニ?」と言われてもそれま…

海外転職の面接で英語で聞かれるRubyとRailsの質問事例とそれを会話で対処する方法 - その3

前回のつづき。 その1 その2 その3 【問題3】 What’s the issue with the controller code below? How would you fix it? class CommentsController < ApplicationController def users_comments posts = Post.all comments = posts.map(&:comments).fla…

海外転職の面接で英語で聞かれるRubyとRailsの質問事例とそれを会話で対処する方法 - その2

前回のつづき。 その1 その2 その3 【問題2】 What will val1 and val2 equal after the code below is executed? Explain your answer. val1 = true and false val2 = true && false もしすぐに答えが分かったとしても「え?なんか同じに見えるなー。こ…

海外転職の面接で英語で聞かれるRubyとRailsの質問事例とそれを会話で対処する方法 - その1

エンジニアが海外転職する際に面接で英語で聞かれる基礎質問において、その解答と同じぐらい重要なのが「会話」になる。前回「海外転職の面接の時に英語で聞かれるRubyとRailsの基礎質問を徹底マスターしておく方法」という記事を書いた際に自分で書いておい…

クソコードとは何か?を写真で説明した

「クソコード」と言っても一体なにをもってクソとするのかは難しい。さらにほとんどのコードは一応は動いている。目の前で動いているコードに対して「クソ」と判断するからにはもうちょっと分かりやすい説明があってもいいんじゃないだろうか、と考えたので…

RubyのリファクタリングでNull Objectを使ってコードをスッキリさせる方法

前回、Rubyのリファクタリングでイケてないコードを美しいオブジェクト指向設計のコードへ改良するための方法という記事を書いて、いい反響をいただいたので第2弾を書いた。Ben Orenstein氏の講演で話されていた前回のとはまた別のリファクタリング方法。元…

次世代スマフォのあり方を再定義したAmazonのFireタブレット

Amazonの激安Fireタブレットを買ってしばらく経ったのでそのレビューを書いた。仕事がら常に最新のスマフォに触れている。いつもデスクにはiPhone4から最新のiPhone6sまでの歴代機とAndroidがそれぞれのバージョンと主要メーカーのがデバッグ機として置いて…

「ポケモンGO」の世界的大ヒットをとても嬉しく思う海外在住日本人の視点

海外在住の日本人としてポケモンGOの快挙をとてもとても嬉しく思っている。 あらかじめ言っておくと本日時点でシンガポールではまだポケモンGOがリリースされていない。したがって街のどこを見ても誰もポケモンGOをやっている人は居ない。それでもここ数日、…

Rubyのリファクタリングでイケてないコードを美しいオブジェクト指向設計のコードへ改良するための方法 - その3

前回からの続き。 Rubyのリファクタリングでオブジェクト指向設計に沿った美しいコードになるまでの方法を書いた。 「イケてない」から「マシ」にするためのリファクタリング 「マシ」から「いいね」にするためのリファクタリング 「いいね」から「スゲーい…

Rubyのリファクタリングでイケてないコードを美しいオブジェクト指向設計のコードへ改良するための方法 - その2

前回からの続き。 Rubyのリファクタリングでオブジェクト指向設計に沿った美しいコードになるまでの方法を書いた。 「イケてない」から「マシ」にするためのリファクタリング 「マシ」から「いいね」にするためのリファクタリング 「いいね」から「スゲーい…

Rubyのリファクタリングでイケてないコードを美しいオブジェクト指向設計のコードへ改良するための方法 - その1

Rubyのリファクタリングでオブジェクト指向設計に沿った美しいコードになるまでの方法を書いた。元ネタはこちらのBen Orenstein氏のリファクタリングで、そこに私なりの解説とコードを加えた。かなり追加したのでOrenstein氏の原型とはだいぶ違う箇所もある…

英語圏のITスタートアップにおいて日本人であることの唯一のメリットを転職で活かす方法

もうぶっちゃけて言ってしまえば英語圏のITスタートアップで働く場合に日本人であることのメリットなんてほとんど無い。日々の業務で実感できることなんて皆無だ。ほとんどの情報は英語で発信されているし、会議もランチ中の会話も英語。ジリ貧状態の日本市…

はっきり言う。コードレビューが嫌いだ。そしてその理由が分かった

だいたいどこでもコードレビュー絶賛中だ。「コードレビューで知識を共有できる」「クオリティが上がる」「開発者が成長できる」といいことずくめみたいに言われている。そうしたメリットを分かった上で言う。コードレビューが嫌いだ。コードレビューはとに…

初心者でもカンタンにRailsの中身のコードをコードリーディングする方法

ここで言う「Railsの中身のコード」というのはRailsを使ったRailsアプリのコードのことではない。Railsそのもののコード。DHHが書いたRailsのコード。$ rails new AppNameとかのコマンドが動く仕組みが書かれたコードのこと。 これって職場の同僚と英語で話…

特殊文字の英語表現は英語圏の職場ではよく使うけど、普通の英語学習では出てこないので対策しておくべし

特殊文字の英語表現は勉強して覚えたってよりも、シンガポールで働き出して職場の同僚が何度も話すのを聞いて自然に覚えた。最初の頃はその辺りが慣れていなくて「『#』って入れて」言いたいのにどう表現すれば分からないから、キーボードに手を伸ばして「…

履歴書の技術欄にRailsとかのフレームワークを書くならせめて自分のGitHubアカウントにフォークしとけば多少なりとも印象あがりまっせという話

香港人の若くて可愛いインターンのJ(男)が「就職活動する時になんかいい方法ありますか?」と聞いてきて、その時なにげに答えた内容がまーまーマシな回答だったな、と思ったのでここにも書くことにした。それは「もし履歴書の技術欄にRailsって書くなら、…

ボスの評価をあんまり気にしてないシンガポールで働く多国籍なエンジニア達が気にしてること

シンガポールで働く多国籍なエンジニア達はボスの評価をあんまり気にしてないけど、その代わりにその何百倍も気にしていることがありますよ、という話。先日オフィスで仕事している時に「ワぁあああー!」という声がして、ドタっとなにかが落ちる音がした。…

英語のリスニング強化のためにホントに必要なことを身にしみて体感した話

英語においてリスニングは手強い。文法や語彙は「覚えればいいだけ」という単純な理屈が成立するが、リスニングはそうはいかない。聞いても分からない状態を克服するのはそうカンタンではないのだ。ところがある事でそのリスニング強化にホントに必要なこと…

南国の美しい海を見て「なんで日本の周りには高い国境の壁があるんだろ」と考えてしまった

先日、休みを取ってマレーシアとタイの国境近くにある小さな島に遊びに行った。とてもキレイな海があって、潜ると美しい魚やサンゴがあって、ご飯が美味しくて、南国のフルーツがまたありえないぐらいに旨いところだった。で、考えてしまったのは「なんで日…

AWSのEC2をLambdaでスケジュール設定して決まった曜日や時間だけ稼働させる方法

AWS

stagingのEC2インスタンスはデバッグ用にしか使っていないので、土日とか真夜中の時間帯は眠らせて、朝になったら起きる設定にした。その作業メモ。こういうのを365日24時間稼働させておかないで、要らない時には眠らせておくとAWS様に支払う金額が割…

英語圏のエンジニア職への転職応募で書類選考を5割以上合格させる3つのポイント

英語圏のエンジニア職への転職応募において最初の関門は書類選考になる。その書類選考でどこかの会社に10通履歴書を送ったら5通以上は合格させる方法を書いた。就職活動において書類選考漏れというのは妙に精神的にヘコむ。特にある程度キャリアを積むと…

RailsでMicrosoftのFace APIを使って写真の顔認識をする方法

写真の顔認識はいろんなプロジェクトで地味に実装されていて、まーまー重要な機能のひとつになってきた。いろんな方法があるが今のところMicrosoftのFace APIに一日の長を感じる。精度が高くまた無料枠でもいい感じに使えるからだ。しかしなぜかドキュメント…

海外転職の面接の時に英語で聞かれるRubyとRailsの基礎質問を徹底マスターしておく方法

海外転職の技術面談の形式に関してはこのブログに何度か書いたので、今回はその具体的な対策を書いた。ずばり「RubyとRailsに関する英語の基礎質問と解答例」書類選考をみごとに通過したら次は電話面談かもしくはオフィスでの面談になる。いづれにしても採用…