タグ

ブックマーク / tomoima525.hatenablog.com (19)

  • スタートアップでソフトウェアエンジニアとして10年たって大事にしていることリスト - tomoima525's blog

    今から10年前の2014年4月に、いわゆるIT系大企業のDBエンジニアを辞めてメルカリでソフトウェアエンジニアとして働き始め、そこから紆余曲折を経て10年たった。 当時の予定通り、まだ現役でコードを書いている。海外に拠点は移り、色んな国の人たちと仕事をするようになり、役割もテックリード、マネジャー、CTOと変わってきた。ソフトウェア開発について考え方もさまざまな変遷を経ているが、少しずつ培ってきた、大事にしていることをあげてみる。 ソフトウェア/アーキテクチャ/コード ソフトウェアは他者の価値(i.e. 課題を解決する/コストをカットする)を生み出してなんぼ。コードが綺麗でも売上は立たない。 アーキテクチャやプログラミング言語のトレンドは変化する。追いかけるよりも、その時々のチームやプロダクトに合った設計やプログラムを選択する。 遊び心は大事。チームやプロダクトにそれほど合ってなくても新し

    スタートアップでソフトウェアエンジニアとして10年たって大事にしていることリスト - tomoima525's blog
    peketamin
    peketamin 2024/04/02
  • パスワードレス認証サービスMagicとAmplify(Cognito)を使った認証システム - tomoima525's blog

    これは AWS Amplify Advent Calendar 2021 https://qiita.com/advent-calendar/2021/amplify 20日目の記事です。 Magic は Email や今はやりの web3 におけるパスワードレス認証を実現するためのツールです。 magic.link Magicのパスワードレス認証 AWS Amplify は Amazon Cognito を使用した認証機能をビルドインでサポートしているため、Magic のようなパスワードレス認証を導入したい場合、コードベースにいくつかのカスタマイズを行う必要があります。 今回は、Amplify の Web アプリケーションにこの Magic を統合し、Email を利用したパスワードレス認証をする方法を紹介します。もしコードをまず見たいということであれば、こちらへどうぞ。 github.

    パスワードレス認証サービスMagicとAmplify(Cognito)を使った認証システム - tomoima525's blog
    peketamin
    peketamin 2022/05/02
  • プロダクト思考とプロジェクト思考を理解し、優れたプロダクト、チームを作り出す方法 - tomoima525's blog

    ツイッターで偶然見かけたプロダクト開発に関する一連のツイートが、プロダクトチームと経営陣、あるいは開発メンバーやプロダクトマネジャーの間に起きる摩擦を見事に言語化していました。 As they grow in size, teams within megacorps and startups tend to implicitly bias more towards Project Thinking and not enough Product Thinking. Product Thinking is a mindset and a process that, once you see, you cannot unsee it. Product Thinking, Project Thinking, a thread: pic.twitter.com/rbY80wTVgE— Shreyas

    プロダクト思考とプロジェクト思考を理解し、優れたプロダクト、チームを作り出す方法 - tomoima525's blog
    peketamin
    peketamin 2021/12/23
  • 「なんとなく元気がない」状態には名前があり対応が必要だと全マネジャーは知っていたほうが良い - tomoima525's blog

    ポッドキャスト Today I Learned FMの28 回目はメンタルヘルスの話題について話しました。この記事はその収録に関する追記です。 anchor.fm 「なんとなく元気がない」 = languishing www.nytimes.com "バーンアウトでもないし、うつでもない。けどどこか希望がない。なんか楽しくないし、目的ももてない。なんだかモヤモヤする。" この症状に対し、社会学者の Corey Keyes 氏は languishing という名称をつけました。日語だと"衰弱"という意味ですが、要はゆるやかに不調になっている状態を指します。 languishing のやっかいなところは、これまで明確に言語化されていなかったために、症状として認識されていなかった点です。認識されていないために早期の対応が遅れ、やがて当のうつに移行していく可能性が高いです。 元記事では、パンデ

    「なんとなく元気がない」状態には名前があり対応が必要だと全マネジャーは知っていたほうが良い - tomoima525's blog
    peketamin
    peketamin 2021/06/17
  • iOS NativeからReact Native に乗り換えた Shopify の話聞いてきた - tomoima525's blog

    "最も使われているサービスのひとつを iOS Native から React Native に作り変えた" というアナウンスメントを出し話題となった Shopify で、まさにその内容を扱った React Native の meetup があり、参加してきたので内容と所感をまとめました。 React Native is the Future of Mobile at Shopify 発表内容 検証/導入フェーズ 技術スタック React Native がもたらした効果 途中でやめたこと 追加で登壇者に聞いたこと その他の発表 React Native for Web @twitter その他もろもろ React Native is the Future of Mobile at Shopify React Native で書き換えた話はしばらく前にアナウンスしていたのですが、Shopify

    iOS NativeからReact Native に乗り換えた Shopify の話聞いてきた - tomoima525's blog
    peketamin
    peketamin 2020/01/31
  • 2020 年の React Native 開発 - tomoima525's blog

    2019 年は React Native にとってはさまざまな変化があったので、それらを振返りつつこの記事では最近の React Native をめぐる状況と個人的見解について書きます。採用を検討している方、Flutter などのクロスプラットフォーム開発フレームワークと比べたいという方の参考になれば幸いです。 フラットに書くことを意識していますが、いち利用者としてのバイアスがあることをご了承ください。 開発体験 Fast Refresh Auto Linking CocoaPods の標準採用 Expo によるワンストップ開発環境構築 フレームワーク/アーキテクチャ Lean Core Android 最新の React への追随 コミュニティ What do you dislike about React Native? react-native-community 管理下のライブラリ

    2020 年の React Native 開発 - tomoima525's blog
    peketamin
    peketamin 2020/01/14
  • クライアントとサーバーどちらに実装するかの設計指針をチームで持つこと - tomoima525's blog

    モバイルアプリケーションを開発していると、この要件や仕様はクライアントとサーバーどちらに置くべきか、という議論がチームでなされることがしばしばあります。例えば、 あるレスポンスAを受けて処理Bを行い、その結果をユーザーに提示する 登録処理などで、処理C,処理Dという異なる処理を並列して行い、それらが完了したらユーザー側に通知する やろうと思えばクライアント側で処理を全て持つこともできますし、サーバー側で実装もできますね。 このような仕様のディスカッションが起きたとき、チームで統一した判断基準を持っていますか? 自分の場合、クライアントアプリはロジックをなるべくサーバーに移譲すべき という設計指針をチームに提案します。 上の例で言うならば、 サーバーから処理Bも踏まえたレスポンスA'を返してもらい、ユーザーに提示する クライアントは1リクエストをサーバーに投げる。サーバー側で処理C,Dを投げ

    クライアントとサーバーどちらに実装するかの設計指針をチームで持つこと - tomoima525's blog
    peketamin
    peketamin 2019/01/07
  • メルカリを退職してChanoma, Inc. にジョインしました - tomoima525's blog

    近況報告です。11月頭にメルカリを退職し、サンフランシスコを拠点とするChanoma, Inc.にジョインしました。 Chanoma, Inc. では何をしているのか Chanoma, Inc. ではChompというサービスを開発しています。Chompはレストランやお店でべたものを親しい人とシェアできるソーシャルアプリです。美味しいお店の美味しいごはんの写真はみんな撮ります。その写真はソーシャルでシェアされたり、あるいはスマホ容量の肥やしになったりします。Chompはこの写真や行ったお店の場所を、グルメな友人や家族といった人たちと気軽に共有できるサービスです。 chomp.app 現在 iOS版しかないのですが、もし興味もってもらえたらダウンロードしてユーザー名 tomoima525 に友人申請してください。飯友待ってます! なお、このようなサービスは High Value Niche

    メルカリを退職してChanoma, Inc. にジョインしました - tomoima525's blog
    peketamin
    peketamin 2018/11/30
  • React Native Meetup Portlandでハイブリットアプリ開発について話しました - tomoima525's blog

    先日React Native Meetup Portlandという勉強会でReactNativeとNativeのハイブリットアプリ開発について発表をしてきました。アメリカの自社開催以外のの勉強会で発表することは初めてだったので、知見と反省をメモしておこうと思います。 経緯 会社のオフィスは現在サンフランシスコとポートランドにあります。ポートランドは今アメリカで一番人気な街と言われているのですが、実はスタートアップやIT企業も数多くあります。React Nativeは今人気なフレームワークで、つい先週もReact ChainというReact Native(React.jsでない)のカンファレンスが開催されたばかりです。色々な経緯でそんなポートランドのReact NativeのMeetupグループにオフィスを提供して勉強会を開くことになり、自分が発表者の1人として登壇させてもらうことになりまし

    React Native Meetup Portlandでハイブリットアプリ開発について話しました - tomoima525's blog
    peketamin
    peketamin 2018/07/21
  • 日本向けのアプリとUS向けのモバイルアプリの違いはなにか - tomoima525's blog

    向けのアプリとUS向けのモバイルアプリを開発した経験から、よく「日のアプリとUS向けのアプリの違いって何ですか?」と聞かれることがあります。UIUX観点で色々な違いはあるのですが、個人的に最も違う点を挙げるなら、タイポグラフィだと思います。US、いやおそらくアルファベットを使う国のアプリは、タイポグラフィが日のアプリと比べて圧倒的に重要視されています。 具体的にどういうことなのか、またもし海外向けアプリの設計に携わることになった時にどういう点を考慮すべきなのかについて書こうと思います。 タイポグラフィを意識したアプリ タイポグラフィはwikipediaによると 活字(あるいは一定の文字の形状を複製し反復使用して印刷するための媒体)を用い、それを適切に配列することで、印刷物における文字の体裁を整える技芸 とあります。つまりいかにフォントのレイアウトを整えていくかというのがタイポグラ

    日本向けのアプリとUS向けのモバイルアプリの違いはなにか - tomoima525's blog
    peketamin
    peketamin 2018/04/17
  • アメリカ西海岸に移住して2年がたった - tomoima525's blog

    アメリカのベイエリアに移住して2年がたってしまいました。タイトルはベイエリアよりもキャッチーかなと思って"西海岸"にしました。ちょっとした節目であるので、環境や心境の変化などをつらつらと書きとめておこうと思います。 仕事 去年は会社のアプリをフルスクラッチで書き直すというプロジェクトがあり、業務ではずっとそれにかかりきりでした。一からアプリを作るという経験はそうそう得られるものではないので、失敗や苦労も含めてとてもよい経験でした。 開発については自由に取り組む機会があったので主として取り組んだAndroidだけでなくReactNative(Javascript), Go, Swiftなど色々なプラットフォーム、言語でコードを書きました。 多様な開発に携わるメリットとしては、その言語やプラットフォーム、フレームワークにおける思想を身につけられることでしょうか。たとえばReact Native

    アメリカ西海岸に移住して2年がたった - tomoima525's blog
    peketamin
    peketamin 2018/01/28
  • React Nativeハイブリッドアプリケーション開発ことはじめ - tomoima525's blog

    こちらはReact Nativeアドベントカレンダー 19日目の記事になります。 ここ1、2年でReact Nativeによるアプリ開発はますます盛んになっていますが、一方でNativeと組み合わせたとハイブリッドアプリケーション開発はまだ発展途上です。 React Nativeの公式ドキュメントにもIntegrating with existing appという項目がありますが、あっさりと書かれている上に鮮度がお世辞にも高くありません。 しかしながら、FacebookやAirbnbなど大企業がハイブリッドアプリケーションを積極的に導入していることや、Nativeアプリを部分的にリプレイスできる利便性から、今後も採用が増える分野と考えられます。記事ではハイブリッドアプリを開発した自分の経験から、プロコンや実装の基についてまとめました。 ハイブリッドアプリケーションの良い点/難しい点 そ

    React Nativeハイブリッドアプリケーション開発ことはじめ - tomoima525's blog
    peketamin
    peketamin 2017/12/20
  • 結婚式でLINE Message APIを使った写真共有サービスを作った話 - tomoima525's blog

    先日結婚式を挙げました。式中ご参列いただいた方と簡単に写真を共有したいなと思い、そういうマイクロサービスを作ってみました。ここではどのように実装していったのかを記憶が薄れぬうちに書いていこうと思います。 着想と仕様 自分が結婚式に参列する時、写真を撮るものの、主賓に送りそびれることがよくあって、だったらそのままさくさく送れたら楽じゃんねーと思っていました。で送りっぱなしだとグルーブ感がないので、出来たらその場でシェア出来たらよいかもと考えていました。それを踏まえて仕様としては、 その場でサクサク送れる 送った写真をリアルタイムに共有できる ことを目指しました。 全体構成 全体構成は以下のようになっています。 LINE Message APIを使ってLINEのチャンネルを参列者に登録してもらい、そこから写真を投稿してもらいます。webhookを介して画像データをサーバーに渡し、CDNに保存し

    結婚式でLINE Message APIを使った写真共有サービスを作った話 - tomoima525's blog
    peketamin
    peketamin 2017/10/17
  • Flow導入して数ヶ月がたった所感 - tomoima525's blog

    ReactNativeプロジェクトで、型がないことによるつらいシーンが多くなり(特に変数の解釈に起因するバグ)、Facebook製の静的型解析ツールであるFlowを数ヶ月前に導入しました。導入時の学びと、しばらく運用して感じていることについて個人的な感想を書きました。 Flow選定理由 Javascriptで静的な型付けをするといえばTypeScript(正確にはJavascriptのスーパーセット)がありますが、プロジェクト途中からの導入しやすさの観点からFlowにしました。Flowはお作法(行頭に @flow つける等)さえ押さえれば誰でも使えることから導入障壁はだいぶ低いといえます。導入のメリットについては以下のスライドがとてもわかりやすいです。 speakerdeck.com flow status でプロジェクトに対して静的型解析を走らせることもできますが、 コーディング時にワー

    Flow導入して数ヶ月がたった所感 - tomoima525's blog
    peketamin
    peketamin 2017/10/03
  • ReactNativeで理解しておくと良いReduxとMiddlewareのフローを理解する - tomoima525's blog

    (5/29/2017追記 ‘必要不可欠’ とタイトルに書いていたら'必要不可欠でない'と指摘を受けました。なんらかのデータフローの仕組みは必要だけどReduxである必要はないのでタイトル修正しました) 最近ReactNativeをちょこちょこ書いています。アプリ向けのReactNativeを書くにあたって理解がのぞましいのがデータフローの仕組みであるRedux、及び様々な処理を仲介するMiddlewareです。小さなアプリをつくってみて一通り把握したので、整理も兼ねて初めてReact-Reduxを触れる時にどの辺を見ればよいかまとめてみます。 作ったのはChuckNorris FactsのJokeを検索して表示するアプリです。 github.com デモ動画 昨日のReactNativeアプリ続き。Reduxにローディングのステートも追加してみた。iOSとAndroidでも想定通り動く。

    ReactNativeで理解しておくと良いReduxとMiddlewareのフローを理解する - tomoima525's blog
    peketamin
    peketamin 2017/04/25
  • サンフランシスコで強盗にあった話 - tomoima525's blog

    こともあろうにサンフランシスコで強盗にあうというステータス解除をしてしまいました。今回はその顛末と、周りの反応がアメリカっぽかったので、それについて書きます。 経緯 その日は19時半頃にオフィスを出て、最寄りの地下鉄駅(BART)に向かいました。ところが一駅移動したタイミングで車が線路に立ち入ったということで、電車が運転を停止。(そもそもこんな事態が初めて)再開を見込んで1時間ほど待ったものの結局復旧のメドは立たず、代替輸送のバスも200m位の列が出来ていたので、諦めてオフィスに戻ることにしました。 ダメだ😵 pic.twitter.com/GsWwSqe1lh— Tomoaki Imai (@tomoaki_imai) 2016年7月21日 復旧の見込みないらしい、詰んでからが勝負— Tomoaki Imai (@tomoaki_imai) 2016年7月21日 この時は余裕もあった

    サンフランシスコで強盗にあった話 - tomoima525's blog
    peketamin
    peketamin 2016/08/31
    怖いしツライ
  • 個人でサービス、OSS開発をする時にモチベーションを継続させるノウハウ - tomoima525's blog

    個人で(≒会社とは別に)サービスやOSS開発することは、会社で身につけられる以上のスキル、実績が得られたり、コミュニティを広げたりするなどメリットが多くあります。 tomoima525.hatenablog.com 自分自身もこれまでいくつかサービスやOSSを開発してきたのですが、一番課題なのが、モチベーションの継続です。最初はテンション高く開発しますが、段々とやる気が下がってきます。一旦リリースした後のメンテも面倒です。そうしていくつかのサービスをクローズしてきました(涙)。 けど、これってとてももったいないです。そこで意識して改善した結果、TwitCalというカレンダーアプリを開発期間も含めると1年間以上継続してメンテ、機能追加を続けられました。今回は自分がどうやって取り組んできたかを整理してみたいです。 ※ 飽きっぽい性格だったりなかなかサービスを継続メンテできない方向けです。たった

    個人でサービス、OSS開発をする時にモチベーションを継続させるノウハウ - tomoima525's blog
    peketamin
    peketamin 2016/03/14
  • エンジニアが手早く英作文をする時はかどる Tips - tomoima525's blog

    GithubのPRや海外Slackチャンネルでチャット、はたまた英語圏のエンジニアとやりとりする等、英語で文章を書くことはしばしばあります。そんな時、自分がよく使っている方法について書きます。 先に一番大事なこと 大事なことは、英語はあくまでもツールだということです。伝えたい内容が重要であり、英文を書くことに時間かけることはエンジニアにとって不毛です。 よっぽど英語が得意な人でないかぎり、一から英作文すると時間がかかって質的でないところで時間を消費するということです。 なので一から文章を考えるのでなく、なるべく"型"を知ることがポイントだと考えています。それを踏まえた上で御覧ください。 文章を書く アルクの英辞郎とGoogle, Githubを組み合わせる 恐らく多くの人がGoogle翻訳などを使って英文を作っているかと思うのですが、アルクの英辞郎と組み合わせるともっとはかどります。理由

    エンジニアが手早く英作文をする時はかどる Tips - tomoima525's blog
    peketamin
    peketamin 2016/02/22
  • プレゼンスライド英語化のススメ - tomoima525's blog

    ここ数ヶ月勉強会などで発表する機会がいくつかあったのですが、最近は技術系スライドをなるべく英語で作るようにしています。そこで英語でスライドを作るメリット・デメリットとちょっとしたコツについて、書きます。 英語でプレゼン資料を作るようになったきっかけ 海外エンジニア友人ができたから、というのが大きかったです。自分がプレゼンしている内容を理解してもらうのであれば、英語が一番良いと考えたわけです。あと、資料は大体SlideShareに公開しています。海外の人も多く見るサービスなので、英語で発信した方が意義があるんじゃないかと思って英語で作るようになりました。 英語でプレゼン資料を作ってのメリット 実際のところ英語で資料を作るのは毎回大変なのですが、以下のようなメリットがありました。 英語の表現が学べる こういう時はどう表現するのか?といったことを学べるのは良いです。 表現の仕方に困ったときは

    プレゼンスライド英語化のススメ - tomoima525's blog
    peketamin
    peketamin 2015/10/21
  • 1