サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
tech.smartcamp.co.jp
スマートキャンプで業務委託でエンジニアをしている佐藤です。BOXILの開発を1年3ヶ月前から、沖縄からフルリモートでやっています。 皆さんは、毎日楽しくお仕事できていますか? エンジニアという職業は労働時間やストレスが多く、IT業界は他の業界と比べて精神疾患にかかりやすいと言われています。 私はもともと自己否定ばかりしてしまう思考の癖があることに加えて、7年前に起業に失敗してメンタルを壊してしまったことをいまだに引きずっていて、日々悩みながら生活をしています。 スマートキャンプは、過労とは無縁で、メンバー間のサポートもよく、これ以上ないくらい私に合った職場です。それでも自分の心の問題で不安になったり、絶望感に襲われたりすることがあります。今回はそうなるたびに書き綴ったメモを、開発中にネガティブな気持ちにならないための技術としてまとめようと思います。 メンタルが強くないエンジニアはこんな気持
平成も残るところわずかとなりましたね。 ティム・バーナーズ=リーによって、WWWの原型が生み出されたのが平成元年(1989年)なんですよね。 そんなことをエンジニア達で話していて、せっかくなので平成に登場した情報技術を時系列にしてまとめる自由研究をしてみることにしました 。 「自分の生まれ年になにができたのか」 「こんな技術もあったなあ」など思いを馳せていただければ幸いです。 ※ スマホなどでは見にくいかと思いますので、画像版やPDF版などもお試しください。 ※ 片手間でまとめたので、「年が間違ってる」「ロゴがおかしい」などあるかと思いますがご容赦ください。 【追記 2019-04-27】 たくさんコメントありがとうございます! 皆さんそれぞれ平成を思い返していただけたようでとても嬉しく思います。 思い入れのある技術が入っていない、誤りがあるなどのお声も頂いているので、再度調べまして反映さ
デザイナー兼エンジニアの葉栗です! スマートキャンプでは以前からWebフロントエンド開発にVue.jsを取り入れています。 Vue.jsなどコンポーネント指向のフレームワークは、UIフレームワークも豊富で、お手軽にリッチなUIが構築できるのでいいですよね。 今回は私のお気に入りの、Vue.js + Elelment UI + Lottie というライブラリを使って、数十分でできる簡易的なログインページを作ってみようと思います。 0から構築をはじめて、レイアウト設計、ElementUIで実装、Lottie組み込み、完成といった感じで詳しく説明していきます! 完成画面 😊 使用技術 Vue.js Element UI Lottie(ロッティー) 実装します! 事前準備 Vue CLIをインストール プロジェクトを作成 ElementUIをインストール ログイン画面を作成 不要コードの削除 コ
スマートキャンプ、エンジニアの入山です。 弊社で技術的挑戦の意味も込めて始めたKubernetes(k8s)も、小規模ながら運用を開始して1年以上が経ちました! 現在では、k8sでのインフラを採用したプロダクトが無事に本番リリースを迎え、ユーザーが本番稼働を行うまでになっており、躓きながらも少しずつ運用知見が溜まってきています。 今回は、k8sを実際に運用してわかった3つの知見を紹介したいと思います! PodのNode配置が偏る 解決策 ローリングアップデート時にダウンタイムが発生する 解決策 Pod削除時にコンテナによってプロセスが終了するタイミングが異なる 解決策 最後に PodのNode配置が偏る k8sではPodを新規作成する場合に、kube-schedulerが各ノードのリソース使用状況等から判断した最適なNodeへスケジューリング(配置)を行います。 しかし、このスケジューリン
スマートキャンプのエンジニア瀧川です! クライアントサイド(JavaScript)で処理を定期実行したい場合は皆さん使いますよね! そうsetInterval関数です。 ただ何も考えず使ってしまうと色々な問題が起こったり... そこで本記事ではsetInterval関数を使う際の困りごとを挙げて、それをまるっと解消するVue.jsプラグインを作る方法を紹介したいと思います! (今回はVue.jsで実装しますが、特に依存しているわけはないので他のフレームワークをお使いの方も参考にしてください!) まずVue.jsプラグインの雛形を作る 困りごと1 困りごと: ブラウザ(タブ)を開きっぱなしにすると必要以上に実行されてしまう 解決法: Page Visibility APIを利用してアクティブなときにしか処理を実行しない 困りごと2 困りごと: ページ遷移してもsetIntervalが維持され
はじめに ざっくりしたシステム構成の紹介 全体の構造 設計のポイント コーディング規約 上の階層を見に行かない 変数名は全体でユニークにする 変数のデフォルト値は設定しない main, outputs, variables 以外のファイルを原則置かない ポリシードキュメントはJSONファイルのまま管理する 変数で処理を変える仕組みを極力使わない 値のハードコードをためらわない コードが冗長であることをためらわない 残っている課題 AWSアカウント単位でしか用意しないものの扱い ECSのタスク定義の扱い 最後に はじめに はじめまして。スマートキャンプのおにまるです。 2022年10月に入社し、SRE兼インフラエンジニアとして働いています。 今回は、あるプロダクトの再スタートにあたって新しく作った、AWSのTerraformについてお話したいと思います。 再スタートにあたってアプリケーション
こんにちは!!!スマートキャンプ、エンジニアの吉永です。 私は8月にスマートキャンプに中途入社し、今月で3ヶ月目となります。 前職では受託開発を主にした小さな企業に未経験で入社し、そこで一年間フロントエンド、バックエンド問わず開発したり、テックリードのような業務も行ったりしていました。 小さな会社なので部署というような区切りはほぼ無く、社長含め全てのメンバーがエンジニアといったようなエンジニア集団の環境で、日々開発タスクをこなしていました。 しかしある時期をきっかけに、外部の方と協力する機会が増え、エンジニアだけがいる環境から様々な人間が関わる環境へと変わっていき、とあるプロジェクトを進めている最中、私達エンジニアサイドと、企画サイド、デザイナーサイドでうまく噛み合わず、スケジュールが大幅に遅れてしまいました。 そして、このことをきっかけに私自身がエンジニア以外の人間に対して苦手意識を持っ
こんにちは!スマートキャンプでエンジニアをしている中川です。 先日Twitterを何気なく眺めていたところ、Vue.js 生みの親の Evan You氏が何やら興味深いツイートをしているのが目に止まりました。 As I was going to bed, I had an idea about a no-bundler dev setup (using native browser ES imports), but with support for Vue SFCs **with hot reload**. Now it's almost 6AM and I have PoC working. The hot reload is so fast it's near instant.— Evan You (@youyuxi) 2020年4月20日 ...なるほど。これまでReactやVueを
スマートキャンプ、エンジニアの入山です。 2020年7月にDockerとAWSのコラボレーションにより、単一コマンドでDocker ComposeのyamlファイルからAmazon ECS上に各コンテナをデプロイできる機能追加が発表され、非常に注目を集めました! From Docker Straight to AWS - Docker Blog AWS and Docker collaborate to simplify the developer experience | Containers ローカルでDockerを利用して開発を行っている方々は、ほぼ間違いなくDocker Composeを利用してアプリの動作に必要な各コンテナを一括管理しているかと思いますが、このECS Pluginを利用するとAmazon ECSへの各コンテナのデプロイとECSの動作に必要な各AWSリソースを一括し
挨拶 おすすめする人 dotfiles とは dotfiles を使ってみた感想 セットアップ方法 リポジトリ構成 自動セットアップ アプリケーションの管理 カスタマイズ デスクトップアプリケーション CLI アプリケーション Mac App Store のアプリケーション 完成系 プログラミング言語の管理 カスタム例 設定ファイルのシンボリックリンク作成 カスタム例 .gitignore および README.md .gitignore README.md さいごに 挨拶 こんにちは!スマートキャンプエンジニアの石井(トマス)です。現在、Boxil Event Cloudの開発に携わっています。 好きなことは「開発体験の向上」に取り組むことで、プロダクト参画時、開発環境をホストマシンに直接構築している状態で手順書もなく非効率だったのでDocker化し環境構築を簡略化しました。 今回は「開
UNIXという考え方 スマートキャンプでエンジニアマネージャーをしています林です。 私はエンジニアマネージャーをやっているのですが、エンジニアではありません。 マーケターとしてスマートキャンプに入社し、マーケティングの成果を最大化するためにディレクターの立場でプロダクト改善を行ううちに開発チームのマネージャーになったという経歴です。 tech.smartcamp.co.jp 非エンジニアがエンジニアのマネジメントをするにはエンジニアについて学ばなくてはいけないことが多々ありますが、私が色々と学んできた本の中で、特に役に立った書籍を紹介していこうと思います。 「UNIXという考え方」 この本をオススメする対象者と読むメリット この本を読んだ背景 本の内容・構成・読みやすさ 私視点で学びになったポイント3点 ①「スモール・イズ・ビューティフル」 ②大きな一まとまりをつくるよりも、分解した小さな
こんにちは!スマートキャンプ ソフトウェアエンジニアの中川です。 リモートワーク全盛の昨今ですが、みなさんはチームのコミュニケーションをどうされていますか? 弊社のBOXIL開発チームはこのたびメインのコミュニケーションツールをDiscordからGatherに移しましたので、今回の記事ではそのなかで得られた知見やコツなどをご紹介できればと思います! 前提・リモートワークにおけるコミュニケーションの二大方針について Discordによる同期的なコミュニケーションで起きた課題 Gatherとは Gatherによって起きたポジティブな効果 カジュアルな雑談の創出 ほどよいプライベート空間の確保 オフィスの視覚的な再現 全体 執務室エリア キャンプスペース(広間的なエリアやなんとなく集まる場) 会議室エリア 1on1エリア Gatherに足りてないこと・期待したいこと 提供されていない機能は補完で
みなさん、WebAssembly聞いたことありますよね? スマートキャンプでエンジニアをしている瀧川です。 私が初めてWebAssemblyを目にしたのは確か2018年、VimをWebAssemblyに移植してブラウザで動くようにしたという記事だったかなと思います。 https://github.com/rhysd/vim.wasm 当時は「はー、なんだか未来を感じるけど、どう使われてくんだろう」くらいな認識で、最近までほとんど注目していませんでした。 しかし、少し前にffmpeg.wasmについての記事がバズっているのを見かけたときビビっときましたね。 ブラウザ上でffmpegが動かせるのはWebアプリケーションを作る上で可能性が広がりますし、何よりWebAssemblyのポテンシャルが活かされていると感じました。 そこで今回、WebAssemblyの世界観を味わうために、代表的なWeb
スマートキャンプの郷田です。 私はBiscuet(ビスケット)という新規SaaSのプロダクトマネージャーをしております。 Biscuetでは開発プロセスに課題を感じていたため、外部からアジャイルコーチの天野さんをアドバイザーとして召喚し、スクラムの導入を進めています。 そこで今回は、Biscuetチームで先月から導入を進めているスクラムの現状を、たくさんの画像を用いてまとめてみたいと思います! スクラムの役割 開発チーム プロダクトオーナーチーム スクラムマスター スクラム全体像 スクラムのセレモニー PBL(Product Backlog) SBL(Sprint Backlog) 朝会(Daily Scrum) モブプロスペース KPT(Sprint Retrospective) その他 最後に スクラムの役割 開発チーム 開発チームはエンジニアの3人が中心となって開発を進めています。
スマートキャンプ、エンジニアリングマネージャーの入山です。 私は現在、弊社BOXIL SaaSの開発部長を務めており、タスクの管理や開発メンバーのマネジメントを中心に行っています。また、BOXIL EVENT CLOUD開発メンバーのマネジメントも兼務しており、弊社エンジニア組織の中でも直接業務で関わるメンバーの数が多い立ち位置となっています。 そんな私は、2つのプロダクトの開発メンバーだけでなく、上長やPM、他チーム開発メンバーなど、頻度はさまざまですが10名以上の方々と日々1on1をさせていただいています。 1on1は入社当時から今に至るまで役職や立場が変化しつつ色々なメンバーと実施していますが、最近では自分との1on1に対する満足度が高いという声をいただく機会が増えたように感じています。 今回は、私が1on1を実施する際に意識している内容について、紹介したいと思います! スマートキャ
スマートキャンプのプロダクトマネージャーの郷田です。 皆さんは普段の業務で、以下のように感じる場面はありませんか? - 「同じチームで働くあの人と、いつもなんだか認識がずれてるかもと感じる」 - 「一通り会議はやったものの、なんだかいまいち話しきれてないようなモヤモヤがある」 - 「あの人にはもっと注力してもらいたいことがあるのに、なかなかそこまでやってもらえない」 こういった場面に遭遇したときには、リーンコーヒーを実施されることをおすすめします! この記事では、チームのMTGで活用してみていただきたい「リーンコーヒー」を紹介します。 リーンコーヒー(Lean Coffee)とは? リーンコーヒーの進め方 準備するもの その1:トピック出しと優先順位の決定(5分~15分) その2:トピックのディスカッション(10分〜45分) 初めてのリーンコーヒーでのハマりどころ 継続するかの判断をせずに
こんにちは、スマートキャンプでBiscuetを開発している井上です。 今回はSendGridでメール配信をするときにやったこと、知っておきたいことなどをまとめてみました! SendGridとは? SendGridでメールを配信する理由 メールに必要な機能が充実している 送信実績 日本語ドキュメントの充実感 料金プランについて検討する 共有IPと固定IPの違い 共有IPの場合 固定IPの場合 共有IPと固定IPでの作業の違い IPを育てる なぜ, IPを育てる必要があるのか? レピュテーションとは? IPウォームアップ とは? IPウォームアップのやり方 レピュテーションを維持するための宛先のクリーニング 宛先のクリーニングとは? 宛先のクリーニング対応方法 SendGrid側でやってくれる対応 オプトアウトの対応をする オプトアウトとは? SendGridのオプトアウト機能 メールイベント
こんにちは!スマートキャンプでWebアプリケーションエンジニアとして働いている中川です。 さて、唐突ですがみなさんは別の開発チームに異動した経験はありますか? いくつかプロダクトを抱えていたり受託開発をしている会社では割とよくある現象なので、少なくない数の方が経験されたことがあるかなと思います。 と、この書き出しで察しの良い方はお気づきかと思いますが、かくいう自分もこの度チームを異動して、6月からBOXIL開発チームで働いています。 今回の記事では、自分が新しいチームに参加することになったときにどういうキャッチアップを行っているかについてご紹介していこうと思います! また、今回の記事で前提としているのは異動のシーンですが、転職でも通ずるような内容は多いと思っています。 キャッチアップする目的を考える なにをキャッチアップしていくか考える プロダクトに慣れる ビジネスモデルを知る 使われてい
最近社内でElixirをひっそり布教しようとしている、瀧川です。 弊社の一部プロダクトでは、gRPCでGolangアプリケーションを呼び出す構成をとっています。 それを説明するためにハンズオンをしたので、その一連の流れをこちらにもつらつら書いていきます! 内容は、以下の画像みたいなのを作っていこうと思います。 必要なコードは記事中に載せるのでコピペで動くはずなので、ぜひ実際にやってみてください! そもそもgRPCって? 実践 事前にインストールしてください リポジトリを作成しましょう さっそくProtocol Buffersで通信を定義しましょう GolangのgRPCサーバ作りましょう 定義からGolangのソースコードを生成 生成したGolangのインタフェースを実装したサーバを作成 動作確認 Railsを実装しましょう gRPC定義からRubyのソースコードを生成 呼び出すコードをC
スマートキャンプの今川です。 先日、AWS認定資格の ソリューションアーキテクト - アソシエイト を受けて無事合格してきました。今回は受験対策・受験を経ての感想や覚えておきたいことをまとめました。 AWSの認定資格をこれから取ろうとしている方、興味がある方の参考になれば幸いです。 背景 受験当時の経験・保持資格 受験準備 勉強方法 基本的な進め方 重要項目 ネットワーク系 コンピューティング系 ストレージ系 DB セキュリティ 振り返ってもう少し見ておけばよかったと思うところ 問題集 模試 受験の流れ 結果 資格特典 受けてみて まとめ 背景 ずっと仕事でAWSを触っていて、以前からAWS認定資格には興味があって取りたいな、と思っていたもののきっかけがなくずるずるときていました。 そんな時、部署的にAWSのテクノロジーパートナーになろうという機運が高まり、AWS認定資格保有者が必要だとな
スマートキャンプエンジニアの今川です。 この記事はスマートキャンプ Advent Calendar 2019 - Qiita 10日目の記事です。 qiita.com 別のネタで書こうと思っていましたが、ちょうど昨日今日でAWS5年やってたのに誤解してた!という経験をしたのでそれについて忘備録&人に共有するためにもまとめます。 T2 Unlimitedって何が嬉しいの?という方には読んでいただきたいです。 t2インスタンス - バースト可能なインスタンスタイプ AWS EC2にはt2という安価なインスタンスタイプ群があります。 aws.amazon.com ベースラインから必要に応じてバースト可能な汎用インスタンスタイプ という見出しがついており、 オンデマンドインスタンスの価格は 1 時間あたり 0.0058 USD から開始され、T2 インスタンスは最も安価な Amazon EC2 イ
スマートキャンプのデザイナー/エンジニアのhaguriです。 弊社では3月からリモートワークに移行しています。 スマートキャンプでは開発チームが、「BOXILチーム」と「Biscuetチーム」の2つあります。 以前の記事では、リモートワーク中の開発チームの様子や、行っているコミュニケーションの工夫などを紹介しました。 tech.smartcamp.co.jp 今回は、2ヶ月弱リモートワークをすることで見えてきた「Biscuetチーム」内の課題と解決に向けて試した方法について紹介します。 発生した課題「認識のズレ」 改善1:共通で呼べる名前をつける 改善2:必須確認事項をいつでも見れるようにする 改善3:アイテムごとにUIを作成して、UIを軸に話し合う 改善4:KPTを付箋のようにやる 「認識のズレ」をビジュアルコミュニケーションで改善 発生した課題「認識のズレ」 通常では、あるトピックにつ
こんにちは!!!スマートキャンプでエンジニアをしている吉永です! 自己紹介記事はこちら 前回の記事はこちら 私は現在、スマートキャンプの主力サービスであるBOXIL SaaS(以下、BOXIL)の開発にフロントエンド、バックエンド問わず携わっています。 恐らく新年一発目になる弊社テックブログの記事は私の記事ということで、今年もよろしくお願いいたします。 はじめに なぜパフォーマンス改善を行ったのか Core Web Vitals(以下: CWV), Lighthouseとは? CWVとは Lighthouseとは CWV & Lighthouseの改善結果 サービスページ(改善前) サービスページ(改善後) レビューページ(改善前) レビューページ(改善後) 改善をするにあたってチームで行ったこと コミュニケーション的なお話 タスクの洗い出し、調査方法 優先順位付け DatadogやSea
スマートキャンプのデザイナー/エンジニアのhaguriです。 弊社では8月1日、インサイドセールスに特化したCRM Biscuet(ビスケット) という新サービスをリリースしました。 biscuet.jp Biscuetでは Vue.js + Atomic Design でコンポーネント設計をしています。今回はその構成と考え方・Biscuetチームでの運用について紹介していきます。 Atomic Design について templatesとpagesについて Biscuetでのルール atoms molecules organisms pages ディレクトリ構成 App.vue components/ plugins/biscuet-materials/ さいごに Atomic Design について Atomic Design とは、コンポーネント単位で設計していくデザイン・開発手法で
スマートキャンプの郷田です。 先日行われたRoppongi Product Manager Meetup #8 にスピーカーとして参加させていただきました。 本記事では、私がPM(自称)となるまでの発表内容をまとめましたので、ご紹介します。 pm-roppongi.connpass.com 発表内容まとめ 発表の目的 プロダクトと私のタイムライン 1回目の越境 多くの問題と行動意識 実施した施策サマリ 2回目の越境 勉強中の参考書 発表スライドはこちら 最後に 発表内容まとめ 発表の目的 開発リーダーとして振る舞っていた私がいつの間にかPMの振る舞いをしていた話のため、対象者はPMになりたいエンジニアかなと思います。 また、PMの仕事を全く知らなかった私が、泥臭く問題解決に動いていることを紹介しているスライドとなります。 ※ちなみに、主催の pm-roppongi - connpass は
スマートキャンプ、エンジニアの入山です。 突然ですが、みなさんはAmazon ECSを利用したことはありますか? コンテナで開発したアプリケーションをフルマネージドで運用してくれるECSですが、その環境構築を簡単に一括で行ってくれるサービスAWS Copilotが先日発表されました! AWS Copilotでは、ECSの環境構築だけでなく、GitHubと連携したCI/CDの構築もできるようになっており、AWSやCI/CDの知識や知見がなくとも手軽にコンテナでのサービス立ち上げができます。 AWS Copilotを利用したECSの環境構築については、AWS公式のブログで詳しく紹介されていたので、今回はAWS Copilotを使ったGitHubと連携したCI/CDパイプライン構築を中心に紹介したいと思います! aws.amazon.com AWS Copilot とは AWS Copilotで
スマートキャンプのエンジニア瀧川です。 弊社では昨年からエンジニア合宿を企画していまして、今年は10月15日から17日までの2泊3日で実施しました! 合宿のテーマや全体感は別記事でまとめるかなと思いますが、3日の限られた時間で1チーム(4人)1つのプロダクトを作り、成果として発表する必要がありました。 この条件だとあまり技術的なチャレンジもできないな...と感じてはいたのですが、どうしてもチーム内でGraphQL触りたい欲求が高まってしまったので、なんとか負荷があまりかからない形で導入できないか調べて見つかったのがPrismaというツールでした! 本記事ではPrismaを試した際のメモ、Tips、所感を書いていきます! (公式でPrisma2がアナウンスされてますが、ほぼ別物なので今回はPrisma1について書いています) (多分最終的な成果物の進捗は、慣れ親しんだツールを使った場合とほぼ
こんにちは、BOXIL開発チームの徳田です。 ついに(?)緊急事態宣言が発令され、社会全体がバタバタしていますが皆さん元気にやっていますでしょうか。 スマートキャンプでは3月2日から新型コロナウイルスの感染防止対策として在宅勤務が行えるようになり、現在では原則出社禁止となっています。 これまでほとんどの業務時間を対面で過ごしていましたが、全員が在宅で仕事をするようになったので、今回はその様子をお伝えしようと思います! これまでの開発体制 BOXIL開発チームの様子 基地Zoom部屋 ペアプロ・モブプロ 週次振り返り (Retrospective) 週次成果発表 (Sprint Review) テキストコミュニケーション Biscuet開発チームの様子 サブZoom部屋 週次振り返り (Retrospective) おまけ: 全社的な動き これまでの開発体制 スマートキャンプは開発チームが2
次のページ
このページを最初にブックマークしてみませんか?
『SMARTCAMP Engineer Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く