株式会社Re:Build

株式会社Re:Build

エンジニア目線で見た沖縄の良さ

f:id:bumptakayuki65:20190105205359j:plain

目次

 1.移住までの経緯
 2.沖縄でエンジニアをやるメリット
 3.移住して良かったこと

この記事は 沖縄 Advent Calendar 2018 - Adventar の24日目の記事です。

株式会社リビルドの鈴木です!
東京で約4年間エンジニアをやった後に沖縄で半年間、フリーランスをやった後に沖縄に起業するにあたって、 感じたことを書いていきます。

1.移住までの経緯

元々、自分の性格的に人とは違う道を行きたいというのが、昔からありました。

理由としては、おそらく、自分の中では苗字が一般的な苗字(鈴木)だったり、
3人兄弟だったり、自分の存在が薄れていると感じる瞬間があり、他の人より目立ちたいだったり、 普通とは違う道に行きたがる傾向があったのかなと思っています。
常に自分が生きているという実感が欲しくてがむしゃらに突っ走ってた感じです!笑
その中で自分が生きている内に自分が生きた証を残したいという想いが芽生え、
大学4年生くらいから起業を視野に入れて活動してきました。

また、私の出身は神奈川県なのですが、地方が好きでよく旅行に行ってました。
その中でビジネスマンとしても成長し続ける且つ、
自分の好きな地方でバリバリ働ける道を模索していました。

正社員で会社に所属している期間中にも自分の住んでみたい地方(島根、福岡など)に何泊か泊まってみたりなどして、
いろいろと自分の人生を今後、どうしていくか考えてました。
ただ、在職中には具体的な道筋が決まりきらなかったので、一旦、フリーランスエンジニアになって、
リモートワークしながら、自分の住む地域を探すことにしました。

思い切って、会社を辞めた後は、リモートワークしながら、自分の住んでみたいと思った候補地を回りました。 例えば、長野、高知、福岡、京都など各地に短期間で滞在してました。そんな中で最後に行ったのが沖縄でした! 沖縄にはちょうど、ギークハウス沖縄ができるタイミングで、迷わず、入居しました!

2.沖縄でエンジニアをやるメリット

沖縄でエンジニアをやって良いと思ったことをざっと、上げていきます!

  • ギークハウス沖縄(シェアハウス)がある!
    ギークハウスとは、主にエンジニアやプログラマーを職種とする人や、Webが好きな人などが共に住むコンセプト型シェアハウスです。共通する趣味を持った人たちが価値観を共有し合い暮らしています。エンジニアなどが多いことから住民同士でプログラミングを教え合ったり、一緒に仕事をすることもあります。現在約30戸のギークハウスが存在します。これらは個人で運営されていたいり企業が運営したりと様々な形態で運営されています。

blog.geekhouse.okinawa

最初は私もギークハウスに1年くらい住んでおり、そこで沖縄のエンジニア友達であったり、
多くのIT系のコミュニティを紹介して頂きました! 沖縄に知り合いがいなかった自分にとっては、本当に感謝しきれないです。

  • 勉強会・コミュニティが多い
    沖縄にはたくさん勉強会があり、他の地方と比べても多い方だと思います! 詳しくはこちらをご覧ください。 mint.hateblo.jp

私自身も沖縄で複数の勉強会を主催したりもしています! 参考としては下記です! laravel-meetup-okinawa.connpass.com www.itcokinawa.jp

  • 県外の方も旅行するついでに勉強会に登壇してくれることがある!

  • 他の地方と比べるとIT企業が多い!
    こういった沖縄専用のIT転職サイトもあったりします! www.itcokinawa.jp

3.移住して良かったこと

  • 年中温かい!
    ランニング好きの自分にとっては、冬でも温かいのは、とても嬉しいです! あとは自分が寒がりで、ベトナムに2週間くらい滞在してたことがあったのですが、
    ベトナムくらいの気温が自分に合ってました(笑)

  • 沖縄料理が美味しい!
    これは元々、自分が沖縄料理が好きだったのもありますが、 特にステーキがめちゃくちゃ美味いです!

  • 海が綺麗
    江ノ島の海を見て、育った自分からすると最初、見たときは衝撃でした!笑

まとめ

上記の点から、他の地方も見た上で、エンジニアとして移住するのは良さそうと思い、沖縄に移住しました! 沖縄で起業した決め手としては、また別の点があるので、別の機会にでも記事を書ければと思います。

「Webナイト宮崎 Vol.2」にLT枠で登壇しました

株式会社リビルドの嘉数です!

12/13(木)に宮崎で開催されたWebナイト宮崎 Vol.2に参加してきました。 イベントで沖縄から東京に行くことはよくあるのですが、今回は沖縄から宮崎、しかも嘉数にとっては初の宮崎ということで不安と期待が高まります。

以下はイベント詳細ページになります。

Webナイト宮崎 Vol.2 ~てげ○○やってみた~ ※11/21参加枠15名→30名に増加 - connpass

今回嘉数はイベントのゲスト枠でLTを行いました。 イベント直前に参加表明したので、ゲストとして無理やりねじ込んでもらった感があります。スタッフの皆様に感謝...。

Webナイト宮崎 Vol.2に参加した理由

そもそも何故宮崎の本イベントに参加したのかというと、弊社の自社サービスの開発メンバーとして宮崎の方々に加わってもらっているため、その顔合わせも兼ねてイベント参加+宮崎旅行をしてきました。

普段のミーティングではビデオ通話を用いて会話をするのですが、直接顔を合わせて話すことも大事ということで今回宮崎に伺った次第です。

Webナイト宮崎 Vol.2について

宮崎のWeb系フリーランス集団「てげほげ」が主催するイベントで、今回が第二回の開催となります。 技術・知識を共有する場や機会が少ないということが地方あるあるだと思うのですが、そういった場や機会を設けるために「てげほげ」というグループが作られたとのこと(うろ覚え)。 実際イベントには40人以上の人が訪れていたので、非常に需要があるのだなと感じました。

f:id:kkznch:20181230153205j:plain

本イベントの今回のテーマは「はじめて○○やってみた」ということで、アプリを作ってみた話、ヒートマップで売上をアップする話、ペアプロの話など、様々な内容のLTが繰り広げられました。 全体的にレベルが高くて面白かったのですが、その中でも星占いアプリを作ってみたという話が個人的には印象に残っています。

そして嘉数はいつもどおりBDDについての発表を繰り広げてきました。 BDDの発表するのはいいのですが、そろそろ自分でBDDしてる写真を使わないといけない気もしています。来年の夏あたりに弊社のメンバーで撮りに行くか...。

f:id:kkznch:20181230153203j:plain

おわりに

初の宮崎は最高でした。 宮崎に飛行機到着後はてげほげスタッフ(弊社のサービス開発メンバー)が車で迎えてくれるし、会場でスタッフにトイレの場所を聞いたらトイレの入り口までエスコートしてくれるという高待遇っぷり。 LTも全部面白かったし嘉数もゲストとしてLTさせてもらうしと、本当に至れり尽くせりでした。

そしてイベント後の懇親会では、出された料理全てが美味しかった。 特に鶏肉、味も食感も普段食べているものとは全く違うと分かるほど美味しかったです。また鶏刺しと叩きが食べたい。

最後になりますが、宮崎に行って本当に良かったなと思っています。 イベントに参加して開発メンバーと顔を合わせるだけのつもりでしたが、現地のエンジニアと交流を持てたり、色々な方の話が聞けたりと自分にとってかなり刺激になりました。 てげほげスタッフの皆さま、有意義な時間をありがとうございました! また宮崎に伺いますので、その際もどうか宜しくおねがいします!

広告・告知など

弊社(株式会社リビルド)は沖縄県内でLaravel勉強会、JS勉強会など様々なイベントを開催しています。 沖縄県内にいる方はもちろん、沖縄県外の人も沖縄旅行も兼ねてイベントに参加していただけると嬉しいです。

また、沖縄県外のイベントにも積極的に参加するつもりですので、お声をかけていただければ幸いです。

株式会社Re:Build

「NuxtMeetUp#5」に参加しました

株式会社リビルドの嘉数です!

10/18(木)に渋谷で開催されたNuxtMeeutup#5に参加してきました、渋谷です。基本的に嘉数は渋谷にいるときは楽天カフェで作業してます。楽天ペイで支払うとカフェ半額だし、電源もあるし素晴らしい。

NuxtMeetUp#5(再度枠増加) - connpass

はい、NuxtMeetup#5について書いていきたいと思います。

NuxtMeetup#5に参加した理由

かんぼ(社長)「自社サービスはSPAでいこう(突然)」

最近から開発を始めた自社サービス、社長の意向でSPA化することになりました。嘉数は普段はバックエンドの開発をしている人間ですが、フロントエンドにも興味があったため良い機会と思いSPA化に賛成しました。

かんぼ(社長)「SPA化する際はNuxt.jsを使おう」

嘉数「Vue.js+VueRouterでよくないですか?」

かんぼ(社長)「とりあえず流行にのっておけ」

なるほど。嘉数は流行に疎いのですが、流行にのるのは大事だなと思いNuxt.jsを導入することにしました。あと触ったことが無いものを触るのって凄く楽しいですよね。

そんなわけでNuxt.jsを導入する前にある程度どういったものか情報収集することと、Nuxt.jsを使って普段から開発を行っている人たちと関わることを目的にNuxtMeetup#5に参加しました。

NuxtMeetup#5について

connpassのNuxtMeetup#5募集ページを見ると、参加枠の人数が160人に達していることが分かります。非常に多い。嘉数もインフラ系のイベントにはよく参加するのですが、そういったイベンドでは多くてもせいぜい30人程度でした。フロントエンド界隈の、今回で言えばNuxt.jsの人気具合が伝わりますね。半信半疑だったけどちゃんと流行ってたんだな...。

LTセッションでは、はじめの挨拶とスポンサーLTを含めて合計8人の方が登壇していました。Nuxtがビルドされた際に出力されるバンドルサイズでかすぎる問題、nodeサーバをクラスタモードにしてマルチスレッドで捌く話、Nuxtのハマりどころ、nuxt-i18nを使って多言語対応したけどSEO対策するとheadタグの中身が消える話、NuxtでJAMStackな開発をする話など、様々な話題がLTセッションで繰り広げられました。以下は本イベント内で使用された、現在アップロードされている分のスライドになります。

おわりに

今回はNuxtMeetup#5に参加するためだけに当日早朝から東京入りし、翌日の朝に沖縄に帰りました。沖縄・東京間は流石に結構な旅費がかかりましたが、本イベントに参加したことはそれ以上の価値があったなと思います。情報収集も出来たし、何よりNuxt友達が出来たことが嬉しかったです。イベントを運営してくれたスタッフの皆様、有意義な時間を本当にありがとうございました!

広告・告知など

弊社(株式会社リビルド)は沖縄県内でLaravel勉強会、JS勉強会など様々なイベントを開催しています。沖縄県内にいる方はもちろん、本土の人も沖縄旅行も兼ねてイベントに参加していただけると嬉しいです。

「レガシーコード改革!UT/CIでWebサービスの技術的負債を解消する取り組み」に登壇しました

株式会社リビルドの嘉数です!

8/7(火)にランサーズ、BASE、リビルドの三社で「レガシーコード改革!UT/CIでWebサービスの技術的負債を解消する取り組み」というイベントを実施し、リビルド枠として嘉数は「Laravel5.5的継続的インテグレーション」というタイトルで登壇させて頂きました。

【好評につき増枠!】レガシーコード改革!UT/CIでWebサービスの技術的負債を解消する取り組み - connpass

というわけで各セッションについて非常にざっくりとした感じで書いていきたいと思います!

「決済リプレイスとPHPバージョンアップを支えたユニットテスト

スピーカーはBASE株式会社の東口和暉さん。ユニットテストについてお話して頂きました。

  • テストをしやすくするためにコードを疎結合にしてMockを差し込めるようにする、テストしにくい部分は破壊的だがrunkitを使用してコード内部の処理を変更する
  • テストを書く人・書かない人に分かれないよう全員がテストを書きやすい環境を整える
  • 溜まってきたテストの知見を活用して「破綻しやすいテスト」を書いていないか確認する

手探りで何が最適なのかを探しながらテストコードを書いている自分としては、非常に共感が得られる内容でした!

「レジェンドコードと向き合いレガシーからモダンへ変革する」

スピーカーはランサーズ株式会社の永田真也さん。ランサーズがこれまで行ってきた開発の歴史、もっと言えばテストの歴史についてお話して頂きました。

  • アプリ自体はPHPで実装しているが、E2EテストはRSpec+Capybaraのように疎結合に導入できるものを使用した
  • 技術的負債を解決するために多くの失敗を重ねるが、その失敗と向き合い改善を続けて前に進み続ける、徐々にコードを進化させていくことを意識する

起業から11年経った会社のテストに対する取り組みの変化は非常に面白かったです!

弊社の発表!「Laravel5.5的 継続的インテグレーション

発表!

そしてこちら弊社のプレゼン資料、タイトルで「〜的〜的」と的が連続しているのが気になります。

こちら発表風景になります。

20180807_レガシーコード改革01.jpg - Google ドライブ

20180807_レガシーコード改革02.jpg - Google ドライブ

質疑応答!

弊社の発表後にいくつか質問を頂いたのですが、質問内容が興味深いものでした。以下はその時の質問と回答の内容になります。

  • Q:「LaravelのPHPUnitでテストを書く際、どこからどこまでがユニットテスト結合テストの範囲なのか?」
  • A:「現在の開発であれば、結合テストには"機能の一連の手続き"と"コントローラ内のアクション"についてのテストを記述している。ユニットテストには"他に依存しない独立されたサービスクラス"のテストを記述している。ここらへんの配分って難しい、分かりみ。」

Webアプリだとユニットテスト結合テストの境目がどこからやねーんってなりますよね。皆も同じように思ってるんだなぁと感動しました(笑)。

  • Q:「GitLab CIでコンテナを使用してテストをしているようだが、最終的なデプロイ先もコンテナなのか?そうでない場合は冪等性が保証できないが、環境のテストも行っているのか?」
  • A:「今回はデプロイ先はEC2を想定していたので、コンテナは使用していない。また、環境のテストは行っていない。」

この「環境のテスト」という考えがとても面白いなと思いました。テストをする環境とデプロイ先の環境が全く同じであれば環境のテストは必要ないかもしれませんが、これらの環境が異なる場合は何が異なっていてどういった影響があるかなど確認しておく方が良さそうですね。かなり勉強になりました。

おわりに

今回のイベントでは、テストについて自分だけでなく皆が四苦八苦しながら取り組んでいるのだなと感じました。共感を得られて且つ知見の共有にもなる、とても良いイベントでした。イベントを主催してくれた方々、スタッフの方々、参加してくれた方々、皆さん本当にありがとうございました。そして懇親会のお肉が最高だったことは忘れません、ありがとう。

TDD Boot Camp in 香川 #1に参加してきました!

こんにちは!株式会社Re:Buildの中西です。今回は7/22(土)に香川県の情報通信交流館 e-とぴあにて行われたTDD Boot Camp in 香川に参加してきましたのでイベントのレポートをお届けします!

agile459.connpass.com

参加の動機

これまでプロジェクトをスクラム開発で取り組んできましたが、どうにも毎週のコードレビューとテストがボトルネックになっている気がしていました。

また独学でテストを勉強し、チームメンバー全員でテストコードを書くようにはしているのですが、うまくテスト駆動開発できていなかったり、テストの書き方の方向性はこれでいいのかなど迷っていました。

そんななか、なんとあの「テスト駆動開発」を翻訳された和田卓人さんが来てくださるテスト駆動開発の勉強会があるということで参加させていただきました!

トークセッション「テスト駆動開発 質を作り込む」

午前中は和田卓人さんによる講演会でした。

まず印象に残っているのが、テスト駆動開発のゴールは「動作するきれいなコード」だという言葉です。ハンマー釘病にかかってしまわないよう、まず最初に目標を設定することはとても大切なことですよね。

参考:IT業界を蝕むハンマー釘病 - Togetter

次に非常に印象に残っているのが、とりあえず動いてる汚いコードをリファクタリングするときにとりまく下記の3つの感情のおはなし。

  • 堕落:「コード動いてるからええやん?」
  • 焦り:「うわああああテスト書く時間ないでござる」
  • 恐怖:「動かなくなったら嫌だから、リファクタできひん。。。」

どれもビジネスでプログラミングをしたことがある人なら感じたことがあるとおもいます。解決法としては、

  • 恐怖:テストコードを書くことによって克服
  • 堕落:怠けようとする弱い自分を倒すことで克服

焦りに関してが問題で、本当に時間がない場合ってのもあるのでしょうが、日をまたぐと自分のコードでも意味がわからなくなったりすることって頻繁にありますよね!?なので最低でもその日のうちで最低限のテストコードくらいは書こいておこうというのがひとまずの解決策でした。

全体を通してすごく話がわかりやすくスライドもシンプルでみやすく、発表の仕方自体も勉強させていただきました。

テスト駆動開発ハンズオン!

午後はお待ちかねのテスト駆動開発のハンズオンでした!会場の人とペアになってプログラミングをしていく、いわゆるペアプログラミングでのハンズオンでした。

ペアプログラミングとは、2人1組になって1つの画面でプログラミングをしていく手法のことで、ドライバー(キーボードを叩いてプログラミングする人)とナビゲーター(設計したりドライバにアドバイスをしたりする人)の役割に分かれて共同で作業を進めていきます。一見開発効率が2分の1になるかのように思えるのですが実際はそうではなく、誤った実装をしそうになったときにペアに指摘してもらえたり、煮詰まったときにドライバーとナビゲーターを交換することで1人で煮詰まらずに作業が進んでいくという感じで、メリットの方が多い作業方法のように感じられました。

各チームある程度作業が進んだところで会場全体でコードレビューの時間に。最初は自分のコードを大勢の方にみられるということで緊張していたのですが、実際やってみるととてもおもしろく、様々な指摘を貰うことでコードがその場でブラッシュアップされていく感じがエキサイティングでした。

他のペアの方のレビューの際も、自分が指摘する側にまわることで良いコードからは刺激をもらいますし、俺だったらこうするけどなと感じた部分に関してはすぐに質問してみるなど、お互いにとってプラスになることがとてもおおい時間だなと感じました。

懇親会!

TDDBC in 香川に参加していた約20名くらいで、ホテルの屋上で開催されているビアガーデン会場へ!

ものすごいでかい会場にたっくさんの人がおりました!笑

香川県ってこんなにもビアガーデン文化が広まっているんやなぁと、沖縄県民の中西としてはカルチャーショックでした!

まとめ

これまでテストコードや、テスト駆動開発に関する勉強を独学でしかしてこなかった自分にとっては本当にたくさんの学びがある1日になりました!

最後に、和田卓人さん、TDDBC in 香川の運営の方々、重厚で楽しい時間を本当にありがとうございました!

PHPカンファレンス関西2018に行ってきました

こんにちは!株式会社Re:Buildの中西です。今回は7/14(土)にグランフロント大阪で行われたPHPカンファレンス関西2018に参加してきましたのでイベントのレポートをお届けします!公式サイトから「ネコとワタシとPHP in 沖縄」というタイトルでLT枠に応募したところ、発表順1番で採用されましたのでLTもしてきました!

2018.kphpug.jp

各セッションの感想

会場が3会場に分かれており、自分の好きなトークセッションを聴くスタイルでした。以下は中西が拝聴させていただいたセッションの感想です。

脱!なんちゃってフロントエンド

スピーカーの榊原さんの「フロントエンドをPHPでかくのがアンチパターンになるのはすぐそこだ!」という発言が非常に印象的で、実際僕もそうなるのでは?と思わされました。その理由として、

  • しっかりフロントエンド組めば、Webベースでもネイティブ アプリに見た目や機能が劣らない時代になってきた
  • 実際PHPでViewをレンダリングするのは非常にコストの高い処理である
  • APIを利用してフロントエンドとバックエンドを疎結合に保ち、描画する際のエラーをしっかりハンドリングしておけば、PHPのFatal Errorなどで画面がユーザー表示されないこともなくなる

という理由を上げていました。

やはり既存の技術を惰性で使い続けるのではなく、どうすればUXが向上するかを常に考え続けることが非常に重要だとあらためて認識させられました。

将来的にはフロントエンドエンジニアとか、バックエンドエンジニアとか垣根がなくなっていくのではとも思いました。

チャットディーラーの高速開発を支えるLaravel

株式会社ラクスの主力サービス、「チャットディーラー」をLaravelで開発した際に得られた知見をまとめた感じの発表でした。Laravelのいいところ、気をつけるべきところのまとめが非常にわかりやすかったので、Laravel初学者の方は以下のスライドが参考になると思います。是非ごらんください!

CircleCI 2.0 を使い倒そう

CircleCI2.0って実際どうなの?という話から、CircleCI 2.0を利用する具体的な方法。また、CIを構築する際に技術的な障壁となってくるDockerを使いこなすためのテクニックまで盛りだくさんな内容でした!

僕も知らなかったのですが、CircleCI2.0は無料枠があるらしいので個人的なプロダクトで今度触ってみようと思います。

DockerHubのイメージのソースをダウンロード、改造して自分のDocker Imageを作成するのが超勉強になるみたいなので近々取り組んでみようと思いました。

LTしましたよ!「ネコとワタシとPHP in 沖縄」

沖縄を代表してLTの発表頑張りました!カンファレンスの参加者が1つの部屋に集結するイベントの運びとなっており、非常に沢山の人の前でLTさせていただきました!緊張したけど会場の反応もあったかく楽しく発表させていただきました!

f:id:kaoru6strings:20180716155435j:plain

懇親会!

技術の話からお仕事の話まで、非常にたくさんの方々と交流できました。お話してくださった方々、本当にありがとうございましたー!

f:id:kaoru6strings:20180716155423j:plain

まとめ

はじめて県外遠征での勉強会参加となりましたが、非常に濃い内容の勉強会となりました!1人で参加したので最初はアウェイな感じがありましたが、近くの方と技術の話を通してすぐ仲良くなれたのでそれからは居心地のいい雰囲気で参加させていただきました。やっぱりエンジニアっておもしろい!

最後に、PHPカンファレンスの運営の方々、スピーカーの方々をはじめ、関わってくださったすべての人に感謝!楽しい時間をありがとうございました!

株式会社リビルドではWebエンジニアを募集しています

弊社ではWebエンジニアを募集しています。ご連絡は下記のコーポレートサイトから!

株式会社ReBuild | ReBuild

また、沖縄でネコ駆動リモート開発したいエンジニアの相談も中西が受け付けていますのでお気軽にご相談ください。

大阪のコワーキングスペースいってみた!

こんにちは!Webエンジニャーの中西です。

本日はPHPカンファレンス関西2018に参加するため大阪に前入りして、現地のコワーキングスペースで仕事してみました。

1. Blue+(ブルータス)

bluetas.com

梅田のヨドバシカメラの裏手くらいにありました。

今回は2時間30分くらい利用させていただきました!

床に緑の芝生が引いてあり落ち着いた空間に仕上がっておりました。料金を支払えば個室空間を借りれたり、専用のロッカーを借りれたりするみたいなので気に入った方はがっつり契約してみるのもいいかもしれません。

2. オオサカン

www.osakan-space.com

ほとんどの利用者が月額会員ということで根強いファンが多い印象でした。お互いが気持ちよく作業するためにルールの整備もしっかりされており、通いやすい環境にあれば是非契約してみたいなーと思いました。また、お昼時間にはみんなでご飯を食べる文化があったりと、他のコワーキングスペースにはないいい雰囲気が!この雰囲気がすきな人はすぐ月額会員になっちゃうんだろうな〜。

最後に、作業風景をパシャリ。

f:id:kaoru6strings:20180714142634j:plain

まとめ

今回は2件のコワーキングスペースにお邪魔させていただきました!

どちらのコワーキングスペースも個性が出ていてビジターとして利用させていただくだけでも非常に勉強になりました!

フリーランスやリモートワークの方は、自分のお気に入りのコワーキングスペースを探す旅とかしても面白そうです。

みなさんおすすめのコワーキングスペースがあったらコメントで教えてください!それでは!