タグ

ブックマーク / medium.com (344)

  • エンジニア採用面接の難しさ

    エンジニアを採用していく中で「採用面接」は非常に難しい問題と言える。 経験上、今までかなり多くの面接をこなしてきたが、未だに「完璧な面接」というものにはほど遠い。 60分といった短い時間でお互いを知るには時間が足りない。 また面接は「お見合い」であり、極々短い時間の間にお互いに「相手と結婚するか」を決めなければならない。 失敗するとお互い不幸なことになることが解っているのにもかかわらず。 ……とはいえ、数百回と繰り返してきた面接の中で見えたこともあり、それを書いていくようにする。 主にゲーム関連のエンジニアを対象にしてきたケースが多いが、領域としては、クライアント、サーバ、インフラと一通りの人を見ている。 担当したプロダクトに使われている技術をどれくらい理解しているかを尋ねる

    razokulover
    razokulover 2017/10/17
    技術に関する見極めは実はそんなに難しくない気がしてる。それよりこの会社の文化(その会社で当たり前になってること)にマッチする人間なのかどうかを見極めるのはほんと難しいなと感じる。
  • Video player with controllers using React Native

    If you are already familiar with React you can skip to Video Player Component part. React is a View library which is developed by Facebook to improve their development experience. Later on they added React-Native to develop native mobile applications using same principles of React. Their motto is “Learn once, write everywhere” which was controversy to other frameworks philosophy of “Write once, ru

    Video player with controllers using React Native
  • Getting Started with React Native and Flow

    Flow allows us to easily add static type checking to our JavaScript. Flow will help you prevent bugs and allow for better code documentation among other things. A lot of the React Native documentation and source code already also uses flow, so there has never been a better time to start using it!

    Getting Started with React Native and Flow
  • config/routes.rb の書き方を見直した – r7kamura – Medium

    開発を手伝っている Rails アプリの config/routes.rb の書き方を見直した。 ルール以下のようなガイドラインを設け、これを守るように書き換えた。 resource(s) などの DSL の利用を避けるパスの辞書順に定義するHTTP メソッドの部分だけ特別にインデントする具体例こういう形の、素朴なルーティングがひたすらに羅列されていくコードになる。実際のコードでは数百行以上に及ぶ。基的に1行に1つのルーティングが定義される。 MyApp::Application.routes.draw do get '/' => 'top_pages#show', as: :top_page delete '/api/applications/:applicaiton_id' => 'api_applications#destroy', as: :application get '/a

    razokulover
    razokulover 2017/09/23
    resource使えるところは使ってて、うまく表現できないところは同様のルールでやってる
  • 大規模と言う名の「黒船」襲来 – Isoparametric – Medium

    大規模と言う名の「黒船」襲来アプリのリリースが続きつつも、それぞれのチームにエンジニアリーダーがつき、何とかチームは回っていた。 とはいえ、この時期はエンジニアからディレクター/プロデューサーに対しての不安が強くあがった時期でもあり、ズレが徐々に表面へ現れようとしていた。 「プロデューサーが数字に弱い、5%と5割を間違えていた」みたいな話から「決めてもらえない、ギリギリまで仕様が決まらない」という話が日常的に散見されていた。 エンジニア側も完璧であったかというと勿論そうではなく、歴史的な経緯からコードがボロボロで潜在的なバグに悩まされてもいたことは明らかな事実として存在していた。 それに加え、単純に忙しさは加速し、やらなければならないことが増え続けていた時、古くからいた人の頭の中には「そもそもソーシャルアプリをやりたいのか?」という考えが芽生えかけていた。 特に昔から中枢となっていたエンジ

  • 成長期のベンチャーにおける採用の失敗 – Isoparametric – Medium

    成長期のベンチャーにおける採用の失敗2011年2月「任侠道」などのゲームがヒットし、売上が伴ってきたとき、それは終わらないマラソンが始まったことを意味していた。 そして、以後横展開した「道」シリーズがヒットを飛ばしていくために、様々な問題が噴出し始める時期である。 プロジェクトを広げようにも、どのプロジェクトも人が足らない。 加えてエンジニアだけではない「初期の頃のメンバー」が退職を重ねていく時期でもあった。 バックオフィスも開発も、見よう見まねでやっていたところに経験者が入ってきて、ポジションが入れ替わるようなことが頻繁に起きていた。 「自分の好きだったgumiは死んだ」というような事を言って辞めていく人たちもいた。 開発現場でも、のんびりと仲良く売れないゲームを運営していれば良い時代は終わってしまったのである。 「任侠道」が明確なヒットを飛ばしている傍らで、のびのび結果のでないプロジェ

  • CTOと技術執行役員就任 – Isoparametric – Medium

    CTOと技術執行役員就任会社の最も大きな課題であった「ゲームが売れていない」は解決し、それぞれの技術的な課題も解決できないほど大きなものではなかった。 しかしながら、そうしてゲームを高速に水平展開することを進めていく中、ヒットゲームの運用ノウハウを持っていないために、チームは疲弊を溜め込んでいた。 運用の仕組みをつくる前に運用が始まって負荷が急上昇したのだから、必然とも言える。 速度が必要とされるソーシャルゲームでは、ゲーム内イベント開始の前日に正式なグラフィックが出来てきて、テストプレイしたら修正依頼が入り、直前であっても修正を余儀なくされるということが頻発していた。 朝7時に始まるイベントをギリギリまで開発していて夜中の2時に「これは無理だな」といって延期のお知らせを出したことさえある。 また、積み重ねがないため、障害時のトラブルも頻発していた。 夜中だろうと何だろうと、たった一人しか

  • 崖っぷちからの生還 – Isoparametric – Medium

    崖っぷちからの生還気がつけば会社は売上がない状況なのにもかかわらず社員は100人を超えようとしていた。 計算すればわかることだが、100人の給与を払うことを考えるといかに安い給料だとしても100人×60万(保険、税金や間接費含む人件費)として、月に6,000万かかる計算である。 100人の組織を毎月維持することはメチャクチャ大変なのである。 安定的に月に6,000万の利益を出せるサービスを作ることは並大抵の話ではない。 会社は2009年に複数社から7,000万を調達していたわけだが、それが1ヶ月ちょっとで溶けてしまうレベルだ。(だから、普通は売上が立つまで組織を拡大しない) が、國光さんはそういう意味では凡人ではなかったといえる。 そして、その頃に丁度ホットだったのが、Mobage、GREE問題である。 どの会社もどちらのプラットフォームにゲームをリリースするかを考えていた時代だ。 (個人

  • 知らないうちにどんどん人が増えていく会社 – Isoparametric – Medium

    知らないうちにどんどん人が増えていく会社gumiに入って一ヶ月か二ヶ月が過ぎたころ、チームに所属して様子を見てみると、gumiには一ヶ月の間にかなりの多くの人(5人とか10人とか)が入ってくるのに気がつかされた。 幾つかのチームが組成され、それぞれがゲームを開発、運用しており、解析班などと呼ばれるようなチームもあった。 (そして、それは機能していなかった。売れてないのだから、解析する内容などあるはずもない) そして、入ってきたプログラマは時折適当にプロジェクトにアサインされたりした。 私のチームにも新しいプログラマがやってきたわけだが、そのことを切っ掛けに、うやらプログラムがまともに組めない(仕事を任せられない)人が入ってきていることに気がつかされることになる。 困ったので当時のCTOにどういう基準で人を採っているのか訊いてみた。 特に基準はない、みんな頑張ればできる、とのことだったので、

  • iPhone X の Safari における Web コンテンツの表示 - ONO TAKEHIKO - Medium

    iPhone X が発表されて間もなく、ディスプレイの「切り欠き」については至るところでちょっとしたイジリ合戦が始まっています。中には実際に信じてしまっている人もいるほど秀逸なものがありまして、それがこちら。 思わずクスッときてしまいますが(笑)、まあ当然こんなことにはなりません。 iPhone X にはディスプレイの上下左右に iOS の占有領域が存在し、それ以外(アプリのタッチイベントを認める領域)を Safe Area と呼ぶようです。Safe Area の外にある上部領域にはステータスバーとして時計やアンテナのインジケータなど iOS のシステムアイコン等が並び、下部の領域には iPhone X で導入された「ホームバー」が存在することになります。 では iPhone X の Safari で Web サイトを表示した場合に一体どのようになるのか?それを Web 上の情報を元にまと

    iPhone X の Safari における Web コンテンツの表示 - ONO TAKEHIKO - Medium
  • Color in Design Systems

    I’m no color expert. Far from, actually. Throughout my career, I’ve depended on visual designers better than myself to produce an engaging palette and apply it harmoniously across a UI. Yet, as a systems designer, I’m often in the position to provoke and validate color decisions as a system takes shape. Here’s a 16 lessons I’ve learned while stabilizing a primary palette, tint and shade choices, s

    Color in Design Systems
  • React Native Animations Using the Animated API

    Looking to learn React Native? Check out React Native Training. The recommended way to animate in React Native for most cases is by using the Animated API. The final github repo for this project is here. There are three main Animated methods that you can use to create animations: Animated.timing() — Maps time range to easing value.Animated.decay() — starts with an initial velocity and gradually sl

    React Native Animations Using the Animated API
  • How to Add a Splash Screen to a React Native App (iOS and Android)

    Updated: February 27, 2018 I’m often asked about that last mile of developing a React Native app (actually getting it into the app store). There’s more to it than just building your app and sending it off to Apple/Google — you’ve got to add icons, splash screens, write descriptions, and more before sending it off for review. Today we’ll cover splash screens on iOS and Android. Using Expo or Create

    How to Add a Splash Screen to a React Native App (iOS and Android)
  • 11 mistakes I’ve made during React Native / Redux app development

    11 mistakes I’ve made during React Native / Redux app development After working almost a year with React Native I decided to describe mistakes that I’ve made while being a beginner. 1. Wrong estimateReally — estimate for the first React Native (RN) application was completely wrong! Totally! 1) You need to estimate layout for iOS and Android versions separately! Of course — there will be a lot of r

    11 mistakes I’ve made during React Native / Redux app development
  • サポートエンジニアが読む「医療とコミュニケーションについて」

    「レジデント初期研修用資料 医療とコミュニケーションについて」を読みました。これは、内科医である筆者が視点を医療現場に置きつつ、普遍的なコミュニケーションの技術を紹介する一冊です。 普段、ソフトウェアのプロダクトサポートを生業としている自分にとって、顧客とのコミュニケーションは避けて通れません。顧客が報告してくる問題をいち早く解決するのは当然の業務ですが、その過程におけるコミュニケーションのあり方についても常に向上させる必要があるのです。特に、サポート契約を継続してもらうことで大半の利益を得ているサブスクリプションビジネスにおいて、問題に遭遇した顧客に、満足したと思える体験を提供するのは至上命題ですが、難しいのも事実です。なぜなら、サポートエンジニアは問題を解決して当然、と思われるのが常からです。 書で取り上げられる、内科医として患者とどうコミュニケーションすべきか、という技術は私たちの

    サポートエンジニアが読む「医療とコミュニケーションについて」
  • ソフトウェア開発で学んだが使わなかったもの

    開発手法など、一通り学んだが実際に使っていないものは多少なりあると思う。それらについて掘り起こしてみたい。 スクラム開発認定スクラムマスター研修には研修会場ホストという立場で数回立ち会った。認定外の研修も幾つか受講した記憶がある。書籍もそれなりに読み、Scrum Gathering Tokyoなどのコミュニティにも顔を出し、まあそれなりに色々考えて捉えてきた。でも、自分のチームでは使っていない。スクラム開発というアイデアに矛盾があるからだ。 そもそもスクラム開発ではチームの自律的な行動を良しとしており、それに対する”フレームワーク”を提供しているということになっている。イテレーション、バックログ、ふりかえり、デイリーミーティング(いまだに「朝会」って言ってる人いないよね?)、そしてそれらのお作法。誰が言ったかわからないが、それぞれの作者の意図を察するためには「守」が大事らしい。守破離の「守

  • 「今年は…何か大きめのOSSにコントリビュートしたいですね」

    これはポエム。 先日、晴れてGoにContributeできまして、積年の目標であった「なんか大きめのOSSにコントリビュートする」を達成した。 これは前から当にやってみたかったことで、Issueを立ててはCloseされ、をRubyやらGoやらで何度かやった末のコントリビュート。 割と一個のマイルストーンを経た感じがして、個人的には感慨がある。 OSSにコントリビュートしてみたいそもそも、プログラミング初めてからというもの、「Rubyにpull-req送ってます」とか、言語そのものへのコミットにはかなりの憧れを感じていて、社会人になる前後からというもの、3年前くらいから、何か面談とかで目標を聞かれるたびに、ずっと「技術的には…言語とか有名なソフトウェアへのコミットをしてみたいですね…」と言っていた。 とはいうものの、心理的障壁が高くて、自分のような技術力でできる気がしなかったのと、ソースを

    「今年は…何か大きめのOSSにコントリビュートしたいですね」
  • 7,600行のコードを安全にこの世から抹消した話

    qsonaです。今回はコードを安全にこの世から抹消していく の実践編ということで、7,600行のコードを削減してデプロイした話を書きます。 7,626行削減しているPull Request経緯「ランキング」のマイクロサービスを作った話 でも登場した、ランキングサービスでの話です。APIは一度リニューアルし最新はv2でした。 その後、新しい形のランキングを実装することになり、同時に、いままであった形式のランキングはなくなり、リプレイスされることになりました。そのため、新規の実装をするとともに、新しくバージョンを上げてv3のAPIを新設することにしました。 コアなロジックやデータストアにアクセスするコードについては、大部分を使い回すことができ、無事に番リリースを行いました。 一方で、古いランキングはもう開催しないため、v2以下のAPIやそれに紐づくコードは実質的に不要になりました。そのコード

    7,600行のコードを安全にこの世から抹消した話
  • Swift5の議論がスタート:ABIの安定化、並行処理、言語の進化プロセスの変更

    8/9(水)の日時間午前1時に、Swiftのマネージャー Ted KremenekはSwift4のProposalフェーズが終了し、下期に予定されているリリースに向けたエンジニアリングコンバージェンスが完了した旨と、Swift5への議論がスタートしたことをメーリングリストで発表しました。 更新されたswift-evolutionのREADMEによると、Swift5では以下の領域を中心に議論、開発が進行する見込みとなっています。 ABIの安定化ABIの安定化はSwift5におけるメインの開発領域となります。TedはSwift4では目標だったが、Swift5ではリリース要件であり、重要な言語の変曲点となるので、これ以上引き伸ばすことはできないと述べています。 また、ABIの安定化の着手へ必要となるが、Swift 4に間に合わなかった下記の項目に対しても優先的に実装が行われる見込みです。 標準

    Swift5の議論がスタート:ABIの安定化、並行処理、言語の進化プロセスの変更
  • ビットコインの非中央集権性が失われる日 - 西欧の車窓から - Medium

    こんばんは、ヨーロピアンです。 夏の悩みの99.9%はロッテのスイカバーで解決されると信じてやまない毎日ですが、皆さんはいかがお過ごしでしょうか。 前回の記事を書いてからまだ日が浅いにも関わらず昨日(7/18)はまた大きな動きがありました。なんとBitcoinCashなるページがいきなり誕生しています。 またしても面白い展開になってきたので是非記事を書いてやらねば!という気持ちがムクムクと湧いてきたところです。 前回の記事はできるだけ広い範囲の方に届けたいという考えもあり、ビットコインの技術要素の詳しくない方が躓かないように理解の難しいキーワード(SegwitやBIP等)をできるだけ避けて記事を構成しました。 今回もその趣旨は変わっていませんが、混み入ったビットコイン政治事情を解説するためにどうしても専門的な用語の数が増えてしまっているのと、正確さを重視するために記事そのものも長くなってい

    ビットコインの非中央集権性が失われる日 - 西欧の車窓から - Medium