LCL Engineers' Blog

バス比較なび・格安移動・バスとりっぷを運営する LCLの開発者ブログ

hadlintとdockleをつかってモダンでセキュアなDockerfileを書こう

こちらは、2020年LCLアドベントカレンダーの1日目です! qiita.com こんにちは。最近は作業用BGMがもっぱらバーチャル猫さんの曲になっている id:kasei_san です 今回は、LCLで実際に使用している LinterとセキュリティチェッカーをつかったモダンなDockerfil…

1環境あたり月約2.7USDで、ECS Fargateを使ってブランチ毎にQA環境を自動生成した話

こんにちは。id:kasei_san です バス比較なびのバスツアー検索サービスにて、ブランチ毎にECS FargateでQA環境を自動生成する仕組みを格安で作成したので、ドヤりたくなり記事を書きました! 課題 バス比較なびのバスツアー検索サービス(以降「バスツアー」)…

PostgreSQLとの付き合い始めました

Hello PostgreSQL!! & Keep in touch MySQL!! ご挨拶 エンジニアチームの杉山です。あと1ヵ月程で今期も終了し、新しい期に向けて準備を進めています。来期は、更に多くの方にLCLのサービスをより快適に利用して頂く為に、エンジニアからも積極的にアイデア…

ほぼ未経験でフロントエンドエンジニアとして入社して3ヶ月経過後に綴る入社エントリー

はじめまして、フロントエンドエンジニアの亀田です。昨年の秋に入社し気が付けばあっという間に3ヶ月が経過しました。 そういえば今日はバレンタインデーですね。自席のボックスの中はチョコレートで溢れかえっていることでしょうが、ブログを書いていて忙…

YouTrackのIssueを素早くターミナルに表示する

1月に入社しましたバックエンドエンジニアの星野です。 バックエンドの中でもインフラ周りを中心に取り組んでいきますのでその中で得られた知見をブログに書いていきたいです。 さて、LCLではタスク管理にYouTrackを利用しているというのはブログにも書かれ…

人力の名寄せを機械学習のエッセンスを加えて自動化する

Androidアプリ兼バックエンドエンジニアの高橋です。 弊社のサービス「バス比較なび」では、たくさんのバス会社さんから頂いた高速バスデータを掲載していますが、バス会社さん間での「データの揺れ」が課題の一つとしてあります。 例えば、バスの「停車地」…

バス比較なび for iOSでリリースノートに載らなかったカイゼン集 vol.1

早くも1月が終わろうとしていますが、明けましておめでとうございます。 モバイルアプリエンジニアの山下です。 新年一発目の今回は、モバイルアプリエンジニアらしく弊社のiOSアプリで行った施策のことについて紹介していこうと思います。 去年は業務委託の…

物理カンバンとWeb上のカンバンでの進捗管理の比較

フロントエンドエンジニアの川辺です。 今回はある新規案件のフロントエンド側の進捗管理に物理カンバンを使用したので、 普段使っているWeb上のカンバンと比較した場合のメリットとデメリットを紹介できればと思います。 物理カンバンを使用した背景 まずは…

EpoxyでRecyclerView in RecyclerView を簡単に実現する

バックエンド兼Androidアプリエンジニアの高橋です。 久しぶりの更新となってしまいました。 というのも、バスツアー検索サイトのバックエンド開発をこの数ヶ月間ずっと担当していて、つい先月ようやくサイト公開の運びとなりました。 (宣伝) tour.bushikaku…

チャットツールを約半年かけてSlackへ全社移行した知見と運用ガイドラインの話

モバイルアプリエンジニアの山下です。 LCLでは今年の4月から社内で利用するチャットツールをSlackに完全移行しました。弊社は小さな組織ではあるものの、全社で日々利用しているツールの移行を一エンジニアが遂行することはあまりない機会なので、今回得た…

Ruby / Ruby on Railsでサービス開発をしている弊社ブログに蓄積された過去記事を振り返ってみた

モバイルアプリエンジニアの山下です。 LCLでは全てのWebサイト・APIや社内ツールでRuby / Ruby on Railsを採用しています。 当ブログでも開発中に得た色々な知見がアウトプットされてきました。 そこで今回は、Ruby / Ruby on Railsに関する過去の記事を振…

Railsで大量データを扱うときに気をつけていること

バックエンドエンジニアの横塚です。 Railsで中規模以上のサービスを運用していると、大量のレコードやcsvをバッチで処理したい場面などが出てくると思います。 当たり前のように意識できている人も多いかと思いますが、今回はおさらいの意味も込めてバッチ…

SES + S3 + LambdaでGmailの添付ファイルを自動抽出する

AWS

バックエンド兼Androidアプリエンジニアの高橋です。 弊社のシステムの一部に、特定のメール(Gmail)を受信したタイミングで、その添付ファイルを使ってバッチ処理を行いたいという要件があります。 Gmailには受信トリガーを設定する事ができないので、Gmail…

2019年上半期の記事を振り返ってみる

モバイルアプリエンジニアの山下(@yamshta)です。気づいたらもう7月ですね。 つい先日、去年の振り返りを書いた気がしますがあっという間に上半期が終わりました.. techblog.lclco.com 上半期はこの記事を含め、35本もの記事を公開することができました こ…

時間オタクの僕がオススメする「時間術大全」

はじめに フロントエンドエンジニアの川辺です。 今日は「時間術大全」という本について紹介したいと思います。 時間術大全 人生が本当に変わる「87の時間ワザ」作者: ジェイク・ナップ,ジョン・ゼラツキー,櫻井祐子出版社/メーカー: ダイヤモンド社発売日: …

エンジニアの僕が採用面接に携わるようになって感じていること

はじめに フロントエンドエンジニアの川辺です。 弊社ではエンジニアがスカウトや面接を行っているのですが、僕もここ最近で現場で働くエンジニアとして中途採用の面接に関わるようになってきたので、実際に人を採用する立場のエンジニアが感じていることを…

エンジニアブログをはてブからnoteに移行できるか検討してみた

6月からnoteを始めたモバイルアプリエンジニアの山下(@yamshta)です。 今回は個人的に始めたnoteですが、最近は企業ブログでも採用されていることが多いですよね。 はてなブログやWPを使った自作のブログでは企業のドメインに強く根強いてしまうため、ブロ…

Swaggerを導入してみた話

バックエンド兼Androidアプリエンジニアの高橋です。 前回の更新から大分空いてしまいました。 入社してから早2ヶ月を過ぎまして、ブログに書きたいことも積もってきたものの、同時に仕事の方でもやる事が増えてきて、なかなかブログを書く時間が取れなくな…

細か過ぎる求人票を作ってみた!

こんにちわ。WEBエンジニアの横塚です。 転職するときに、実際に入社してからでないとわからない、求人情報からだと伝わりきらない情報や社内の雰囲気ってありますよね。 今回はフィードフォースのなべはる (id:nabeharu) さんの記事に影響されまして、転職…

チームビルドミーティングの紹介

最近バックエンドエンジニアからフロントエントエンジニアになった川辺です。 今まではバリバリとコードを書いていたのですがこれからはプロジェクトマネジメントの仕事もやっていく予定なので弊社でやっている取り組みの一部をブログで紹介していければと思…

BitriseでFastlane Pilotを実行してiOSアプリをアップロードする際に2FAでエラーが発生した時の対応

iOS

モバイルアプリエンジニアの山下(@yamshta)です。 Apple IDの2FAが必須となり暫く経ちましたが、皆さんのCIは問題なく動いたでしょうか? LCLの環境では案の定 Bitrise上で動かしているFastlaneのplistで6digitコードを聞かれてしまいワークフローが失敗す…

YouTrackでアサインされたIssueを自動でひとつのカンバンに表示する

5月病と夏バテを併発しているモバイルアプリエンジニアの山下(@yamshta)です。 今回はYouTrackでアサインされたIssueを自動でひとつのカンバンに表示する設定を紹介します。 YouTrackってなに? このタイトルに興味を持っていただいた方は存在をご存じかと…

AWS SDK for Rubyの S3署名バージョン2廃止に対応しました [2019/6/24期限迫る!]

AWS

こんにちは。 バックエンド兼Androidアプリエンジニアの高橋です。 今回は最近担当したAmazon S3のAWS署名バーション2の廃止への対応について書こうと思います。 S3の署名バージョン2の廃止? AWS公式のこちらのページに書いてある通りです。 docs.aws.amaz…

AndroidアプリにViewModelを導入した

Androidアプリ兼バックエンドエンジニアの高橋です。(肩書き長い...!) GW終わってしまいましたね。自分は特に予定も立てていなかったので近場を散策したりMr. Robotという海外ドラマを見たりして時間を潰しました。 Mr. Robot、主人公がハッカーの話で面白そ…

MySQLで特定のテーブルの一部のデータだけ dump するときには --where オプションを使いましょう

using mysqldump with where option こんにちは。MCUを追いきれていないために、エンドゲームを見れないバックエンドエンジニアの id:kasei_san です 代わりにDCの シャザム! を見てきました。CMの印象と異なり、優しいファミリー向けの内容で、誰でも楽しく…

書けることは全部書くという日報の書き方のはなし

モバイルアプリエンジニアの山下(@yamshta)です。平成最後は日報について書きたいと思います。 最近になって日報を再開しました。1月からジョインされた id:kasei_san の日報の形式に倣って、デイリースクラムの進捗報告よりも、想定外のことや当たり前の…

年度末なので今期のお仕事を振り返ってみた 第三部(12月~3月)

モバイルアプリエンジニアの山下(@yamshta)です。 遂にMCUのフェーズ3最終章である『Avengers: エンドゲーム』が公開されましたね。私は公開日にGWの振替休日を使って朝一の上映で観てきました。何を言ってもネタバレになりそうなので感想も控えますが、20…

RubyGemsのアップデート

Webエンジニアの横塚です。 先日、Rubyのパッケージ管理システム・標準添付ライブラリであるRubyGemsに複数の脆弱性が発見されたことが開発元から公表されました。 悪意のあるGemにより任意のファイルを削除されたり、エスケープシークエンスインジェクショ…

LCLに入社しました

4月からLCLにバックエンド兼Androidアプリエンジニアとして入社しました高橋です。 これから自分もブログ編集部の一員となり、有意義な情報を発信していきたいと思いますので、どうぞよろしくお願いします。 自己紹介 まずは軽く自己紹介します。 前職では某…

追加機能の実装前にタスクの分解をしてみた

こんにちは、バックエンドエンジニアの id:kasei_san です 最近、アメリカン・ゴッズを見始めて、ようやく最新話まで追いつきました! シーズン2からの主人公の行動原理がイマイチつかめなくなったのですが、ここからどのように話を畳むか気になって仕方ない…