サカナ未遂

プログラミング、筋トレ、子育て

Ruby Business Users Conference 2018 WinterでMatzさんに会った

昨日、Ruby Business Users Conference 2018 Winterに参加してきました。

Rubyアソシエーション主催のカンファレンスで、Ruby開発者のまつもとゆきひろさん(通称Matz)が基調講演を行なってくれました。

 

まだ今年からRubyを始めたばかりなので、Matzさんが参加するイベントには初参加となりました。

もしかしたら、少しは会話することができるかも?、ひょっとしたらサインを貰えるかもと期待を膨らませていました。

 

平日金曜の昼から、また忘年会シーズンということもあり、それほど参加者は多くありませんでしたが、カンファレンスはとても楽しめました。

 

Matzさんの講演では、世間ではRubyが死んだと言われているとについてや、Rubyの今後についてなど、開発者目線でのお話を聞くことができました。

特に印象深かった言葉は、

『死なないこと』

『諦めたらし試合終了』

Rubyはコミュニティが広げる、誰かではなく私(たち)で広げる』

『どこでもRuby

『いつもポケットにRubyを』

など。Rubyはまだまだ進化するし、時代に合わせて変化させて行くんだなぁと感じました。

私も微力ながらRubyになにか貢献できることを探していきたいと思いました。

 

その他登壇者の発表のあと、懇親会がありましたが、皆さん遠慮してかMatzさんの周りにあまり人がいないので、思い切って話しかけにいきました。

アジアやヨーロッパのエンジニアについての話や、Rubyを開発して初めて公開した時の話を聞くことができてとても楽しかったです。

世界的スーパープログラマーが目の前にいるので、楽しく喋っていたけど、ちょっと足震えていました(笑)

本当に気さくで、質問には何でもニコニコ答えてくれて、人柄も最高で、会う前より憧れが強くなりました。

写真も撮ってもらい、買ったばかりのHHKBにサインも貰うことができました、イェイ!

今日からもっとRubyをたくさん書いて行こうと強く思いました。

Matzさん、本当にありがとうございました!!!

 

f:id:tera_chan3700:20181215091007j:plain

Matzさんとツーショット

f:id:tera_chan3700:20181215091108j:plain

HHKBにサインもらったー!

 

転職活動報告記

来年一月から新しい会社に転職することが決まりましたが、転職活動は思ったより心が折れかかったので、忘れないように記録しておきます。

 

まず転職しよう、新しい技術を使った仕事をしエンジニアとして生き残ろうと考えたのが去年の11月ごろ。

12月にMacBookProを購入し、N予備校というオンラインのカリキュラムでNode.jsを学び、次にRubyを勉強して3月にRubyの資格を取得。

そのあと4月くらいからRailsを勉強(Railsに特化したオンラインスクールにも3ヶ月通いました)し、通勤中はマネジメントや組織論、セキュリティなどの本を読んでいました。

 

Rubyの資格をとった4月くらいで一度転職活動してみました。

ある転職サイトに経歴を乗せて見ると、たくさんの企業から「気になる」的な奴がきます。

こりゃすぐに転職できちゃな〜なんて思ったりしていま。(今思えばなんて能天気!)

 

一度テック系の企業からスカウトメールが届き面談したのですが、すぐに自信がなくなりました。

面談で何をアピールすればいいのかわからなくなったのです。

無駄に経歴は長いのに、37才のおっさんが「Rails勉強中です!頑張ります!!」なんて、ちょっと言えないですよね。全然面談対策していませんでした。

スカウトが来たので入社できるもんだと思って(←馬鹿すぎる)、ろくにその会社のことを調べることもしていませんし。

その会社で使っている技術は使えるのが当然で、さらに付加価値を提供できないといけないんだと思いました。(もちろんお祈りメールをいただきました。)

 

それで4月以降、とにかくRubyRailsについて学習ばかりしていました。

妻や娘たちとの時間も結構削ったので、本当に申し訳ないと思っています。

またGo言語も基礎的な学習をし、セキュリティやDB周りの知識も強化し、フロントエンドのReact.jsやVue.jsも触るようにしました。 

で自分のスキルに自身がついてきたので10月くらいから転職活動を開始しました。

以下、結果です。

【オンラインスクール経由での応募】
20社中11社返事なし
6社が書類選考落ち
3社が1次面談でお祈り

→全滅

【Green】
1社から気に入ったをもらい面談、2次選考でお祈り

→成果なし

Wantedly
「あってみたい」を押した企業1社、一次選考でお祈り
スカウトが来た3社
1社は会っただけで終わり
1社は2次面談でお祈り
1社から2回面接の上、内定をGet

Wantedlyさんありがとう

 

とまあ、スムーズではなかったけど、思ったより大変ではなかったです。

お祈りメールを頂くたびに、あと10歳若ければ、、、と何度も思いました。

10歳くらい若ければポテンシャル採用とか行けるかもなんて思ったりして、、

何度もお祈りメールをもらうと結構心が折れそうになりましたが、仕事はまあホワイトな環境だったし、焦って転職しなくて良い所に入れなかったら、来年もスキルアップを続ければいいやと考えると少し楽になりました。

 

転職期間はだいたい1ヶ月くらいでしたが、そのために1年前から準備してきたので、やっぱり1年継続して結果が出たのでとても嬉しいです。

ただ転職はゴールではなくスタートなので(勝って兜の緒を締めよ)これからも技術習得を継続していきます。

とあるSES企業を退職し、WEB系自社開発の会社に転職します。

タイトルの通りです、転職します。

 

今年いっぱい在籍して、来年から心機一転新しい会社で頑張ります。

 

今の会社は特に誰も知らないような会社なので、あえて社名は出しませんが、

世間で槍玉にあげられるSESやってる会社ながら、意外とホワイト企業だったと思います。

休んでも有給は後から申請すればいいし、みなし残業40時間分込みの給料なのに一切残業しなくても何も言われないので、とてもストレスなく過ごせました。

だいたい毎月の稼働時間が150時間を切るくらいでした。

 

僕はこの会社は5社目なのですが、前の会社で一緒に働いていた仲間に声かけられて入社することになりました。いわゆるリファラル採用ってやつですかね。

 

前の会社は結構なブラックで、残業代一切出ないし、給料安いし、だったのですが今の会社に転職して年収が100万以上、上がったのはとても感謝しています。

 

じゃあなんでやめるかって言うと、やっぱり自分のスキルに不安を感じることが多くなってきたからです。

ホワイト企業なんですが、やっぱり現場に常駐するわけで、そこはあまり選ばせてくれませんし、現場の理不尽な指示に従わないといけないのはやはりあります。

特にCOBOL使う現場だったり、開発はオフショアに投げて、テスト結果の確認してくれとかの作業やったりと、テンション上がらない現場が多くてこのままじゃイカンと言う気持ちが強くなったためです。

そのあたりの気持ちは下記に書いています。

blog.tera-chan3700.com

 

去年の12月にMacBookPro買ったのでちょうど一年経ちました。

一年頑張ればある程度環境を変えることができるんだなぁと言うのが率直な感想です。

この調子でまだまだスキルアップ目指し、新しい会社でも頑張ります。

 

新しい会社は、まだ所属前なので社名は出しませんが、技術スタックは、

RailsGolang、Vue.js、Docker、kubernetesなどを使うと聞いているので、モダンな開発ができるのではないかと期待しています。

まだまだ小さい会社なので会社の成長の助けになれるように頑張りたいと思います。

スマートウォッチが便利すぎて手放せない

今年買ってよかったものの中で、スマートウォッチが一番かもしれません。

 僕が買ったのはHUAWEI Band2と言うやつで、5000円くらいのやつです。

HUAWEI Band 2 / ブラック  スマートウォッチ ※メタルボディ 防水機能50m 21日間連続使用可能【日本正規代理店品】 Band2/Black

 

スマートウォッチで一番欲しかったのは通知機能でした。

これまで公園で子供と遊んでいるときは、基本的にスマホはバッグにしまっておくので、妻や友達から連絡が来ても気づかないことがよくありました。

でもスマートウォッチは常に腕につけているので、Lineや電話が来るとブルブルと教えてくれます。

そのため大事な連絡などを見逃さずに済むようになりました。

 

スマートウォッチを買うにあたり重視したのは、

・通知機能

・バッテリーの持ちがいいこと

の2点でした。

通知機能については上記の通りですが、バッテリーについても重視しています。

こまめに充電するのは面倒だし、使いたいときにバッテリーが切れていると、もはや何の役にも立ちません。

このHUAWEI Band2はだいたい2週間くらいはバッテリーが持つので、前いつ充電したっけな?ってくらい充電しません。

お風呂と料理するとき以外はだいたい着けています。

さらに目覚ましアラームもあるので(音はなりませんが、ブルブル震えて教えてくれます)、家族で同じ部屋で寝ていても、周りを起こさずに起きることができます。

僕は結構寝覚めがいいので、バンドのバイブ程度で起きられますが、爆音の目覚ましでも起きない人は無理かもしれません。

 

難点はバンドが外れやすく、無くしていまう可能性があるので、そこだけマイナスポイントかなと思いますが、とにかく、起こしてくれる、知らせてくれる、長持ちするの3つがあれば自分は満足なので(歩数や心拍は別に興味がないので)、このバンドはとても気に入っています。

 

"「納品」をなくせばうまくいく"を読んだ

ソニックガーデンの倉貫さんの「納品」をなくせばうまくいくを読みました。

 

リーンスタートアップを土台に、エンジニアがいない会社に必要な技術を提供する仕組み、ビジネスモデルを提唱しています。

わざとだと思いますが、タイトルは若干大げさにつけているかなぁと。
納品がなくしてうまくいくわけがない!と内容を読まずに批判する方もいることでしょう。
私も銀行の巨大な勘定系システム担当していたこともあるので、納品しないなんてありえない、と思って、なかなか読んでみようと思わなかったですが、、、

でも読んでみるとタイトルに嘘はなくて
「納品をなくせば”すべて”うまくいく」とも「”すべての”納品をなくせば~」でもない点がミソですね。
これは本の中でキチンと説明していますが、このビジネススタイルが適するのは、スタートアップ企業など、ビジネスが決まり切っていなく、顧客の要望などによって方向転換(ピボット)を繰り返す必要がある企業が対象です。

仕様を決める→作る〜、の開発フローだと、サービスを開始後にユーザーの反応が悪かった場合、修正に時間もお金もかかり、
・企業は時間とお金が無駄になる
・エンジニアはせっかく作ったものがすぐに仕様変更させられる。
・エンドユーザーは使いたいものではない
とみんなが不幸になってしまします。
そのためにシステム納品ではなく、毎日どういう機能が本当に望むものかを検討し、追加していくことでサービスを日々進化させていくことが必要とされます。

そういった柔軟に開発を続けていくモデルを「納品がない」ソフトウェア開発と名付けて実践されています。

お金を稼ぐだけなら、人材派遣や一括受注、あとは運用や仕様変更で追加料金をとるなどが効率がよいのでしょうが、本当に顧客やその先のエンドユーザーのことを真剣に考えたら、納品をしないという選択が最適解のような気がします。

また働く場所をとわず、残業しないなど、エンジニアのパフォーマンスをあげるための理念はすばらしいです。
エンジニアが最高のパフォーマンスを出せる環境を会社が提供することで、結果的に、顧客の満足につながっていく。よいサイクルを生み出すための取り組みなのだと思います。
社員のスキルと人間性を信頼しているからこそできることだと思います。


プロを目指す人のためのRuby入門 の著者の伊藤淳一さんもソニックガーデンですね、このレベルの技術者がごろごろいるソニックガーデン、きっと日本のソフトウェア開発の新しい基準になっていってくれると思いす。 

 

 

Go言語でechoサーバーを作る

Real World HTTP ―歴史とコードに学ぶインターネットとウェブ技術

という本で、現在HTTPの歴史を勉強しています。

HTTPの挙動を確認するにあたり、Go言語でechoサーバーを作る方法があったので備忘録。 ソースは以下のようになります。

package main

import (
    "fmt"
    "log"
    "net/http"
    "net/http/httputil"
)

func handler(w http.ResponseWriter, r *http.Request)  {
    dump, err := httputil.DumpRequest(r,true)
    if err != nil{
        http.Error(w, fmt.Sprint(err), http.StatusInternalServerError)
        return
    }

    fmt.Println(string(dump))
    fmt.Fprintf(w,"<html><body>hello</body></html>\n")
    
}

func main(){
    var httpServer http.Server
    http.HandleFunc("/",handler)
    log.Println("start http listen :8080")
    httpServer.Addr = ":8080"
    log.Println(httpServer.ListenAndServe())
}

上記コードを記載したファイルをserver.goとし、 go run server.goで実行します。

すると、mainメソッドが呼ばれ、localhost:8080でリクエストが来るのを待つ状態となります。 それから、ブラウザで、http://localhost:8080にアクセスすると、handerの処理が呼ばれ、画面に「hello」の文字が表示されます。

このserver.goとLinuxcurlメソッドを使ってHTTPの挙動を学習中、RealWorldHTTP、良書です、皆さんも是非!

超電導ナイトクラブについて

今まで読んだ小説で、一番好きなものを選ぶとしたら、村上龍の「超電導ナイトクラブ」をあげます。

 

初めて読んだのは20歳くらいの時で、以降数年ごとに読み返しています。

 

超電導ナイトクラブと呼ばれる、ボディビルダーのママがやっているバーにハイテックの常連が夜な夜な集まり、最先端の技術から下ネタまで、まとまりなく議論し、時に起こる問題にハイテク技術を使って解決を試みる、という内容です。

 

村上龍節というのか、前半は丁寧に描写し、物語を構築していくのですが、後半になるにつれ、物語自体が暴走し、ラスボス級のキャラがあっけなく死んだりして終わります。

 

なんでこの本が一番なのかとちゃんと考えてみたのですが、この本に書かれている禍々しく混沌とした場所に憧れているからだと思います。

頭良すぎてクレイジーになった人間とか、なんかぶっ飛んでる人間や、危ない匂いのする場所に憧れていて、でもそんな場所なくて、あっても近づかなくて。

だから小説の中に求めるのだと思います。

自分の行けない場所につれて行ってくれて、あってみたい人に会わせてくれるのが小説なのでしょうかね。

 

最近、あまり小説を読む時間がないですが、また時間を見つけて読みたいですね。