tomoima525's blog

Androidとか技術とかその他気になったことを書いているブログ。世界の秘密はカレーの中にある!サンフランシスコから発信中。

開発

AWS CDKを使用したモノレポサーバーレスプロジェクトの実装

現在、AIを使った採用支援ツール(https://noxx.net)を開発しています。このプロダクトでは、仕事情報の分析や応募してきた候補者の評価のために、Step Functionsを含めて100を超えるLambda function を実行しています。インフラを含めたプロダクト内のすべて…

合宿inトーキョーのふりかえり

ちょうどコファウンダーのふたりが日本に滞在する期間が重なったので、会社のメンバーを東京に呼び寄せて7月中旬に会社合宿(オフサイト)をした。記憶が新しいうちに、どんなふうに合宿をしたか、決めたことや良かったことなど振り返ってみる。 どんな合宿だ…

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

今から10年前の2014年4月に、いわゆるIT系大企業のDBエンジニアを辞めてメルカリでソフトウェアエンジニアとして働き始め、そこから紆余曲折を経て10年たった。 当時の予定通り、まだ現役でコードを書いている。海外に拠点は移り、色んな国の人たちと仕事を…

あなたのしらない米国所得申告システム

確定申告の時期なので、米国の一風変わった(?)所得申告システム(Information Return)と連携するアプリケーションを開発した話について書こうと思う。 米国の所得申告 所得申告システム、FIRE 不思議なファイルフォーマット みよ、これがメジャーの仕様書だ …

プロンプトエンジニアリングってソフトウェア開発?と感じるあなたへ ~ LLM開発とソフトウェア開発の違いの話

この記事はLLM開発におけるプロンプトエンジニアリングに違和感がある人に向けた、捉え方を変えてみたら少し印象が変わるかも、という提案をするものです。 かくいう自分もなんだか普通のソフトウェア開発とは異なると感じていました。この違和感の言語化を…

TypeScript の AWS Lambda function を2000倍見栄え良くする

AWS Lambda Advent Calendar 13日目の記事です。 qiita.com 今回は AWS Lambda function で TypeScript の 関数を書くときにコンソール上で2000倍(※当社比)見栄え良くする方法を書きます。 ちなみにここでの"見栄えの良さ"はAWS コンソール上での読みさすさ…

LLM開発のいろはをおさらいする~手法からツール、開発ノウハウまで

最近PoCやサービス開発を通じて、どっぷりLLMの開発をしています。この記事では最近の大規模言語モデル(LLM)を使ったアプリケーション開発の種類や手法、ツール群について一通りまとめました。よくあるチャットボットからReActといった最先端のものまで、こ…

Amazonのサーバレス→モノリス移行記事から学ぶこと

今年の3月頃、Amazon Prime のテックブログでストリーミング監視システムのマイクロサービスをモノリスに作り替えて90%コストを削減した記事が投稿され、ソフトウェア業界に波紋を呼びました。この記事の真相はなんだったのか、我々が学ぶべきことはなんだ…

Lambda LayerからRustベースのWebAssemblyを使用する

最近、とあるRustベースのモジュールを、Lambda function(Node.js)のサーバレスプロジェクトで利用できるか調査しました。その際に、 WebAssembly (wasm)をLambda Layerからどう活用するか検証したので、記事にまとめました。 RustベースのWebAssemblyを使用…

ゼロ知識証明を学ぶ ZKUniversity を修了しました

zku 3 月から参加していたゼロ知識証明を学ぶプログラム ZKUniversity を先日修了し、卒業生の NFT も貰ったので、感想や最終プロジェクトについて書き残します。 zku graduate NFT ZKUniversity とは Learn to Earn コースの構成 受講の感想 最初がつらい。…

アムステルダムで Web3 カンファレンス Devconnect に参加した

2022年 4/17 - 4/25 にかけてアムステルダムで開催された Devconnect というカンファレンスに参加したので、そこで得た知見、ブロックチェーンや web3 が向かう先について感じたことをまとめます。 Devconnect とは 参加したイベント Layer2 Amsterdam zkSum…

パスワードレス認証サービスMagicとAmplify(Cognito)を使った認証システム

これは AWS Amplify Advent Calendar 2021 https://qiita.com/advent-calendar/2021/amplify 20日目の記事です。 Magic は Email や今はやりの web3 におけるパスワードレス認証を実現するためのツールです。 magic.link Magicのパスワードレス認証 AWS Ampl…

プロダクト思考とプロジェクト思考を理解し、優れたプロダクト、チームを作り出す方法

ツイッターで偶然見かけたプロダクト開発に関する一連のツイートが、プロダクトチームと経営陣、あるいは開発メンバーやプロダクトマネジャーの間に起きる摩擦を見事に言語化していました。 As they grow in size, teams within megacorps and startups tend…

ブロックチェーン知識ゼロから Solana ハッカソンに参戦するまでの学習記録

つい先日、Solana というブロックチェーンを使ったオンラインハッカソンに参加し、1 つのプロダクトをローンチしました。この記事はブロックチェーンについて全く無知の状態から2ヶ月後にスマートコントラクト(Solana ではプログラムと呼びます)を書き、ア…

Provisioned Concurrency を Amplify 上の Lambda Function で利用する方法

Provisioned Concurrency は、Lambda 関数を常にクラウド上に起動させておく機能です。Amplify はこの機能をサポートしていませんが、CloudFormation ファイルをカスタマイズすることで Provisioned Concurrency の生成を自動化することができます。この記事…

初回の AppStore レビューで7回リジェクトされたので項目と対応をまとめとく

最近パイロットアプリを AppStore にリリースしました。最初の審査は通常よりもきびしいという噂の通り、いや、噂を通り越して審査を通るまでに 7 回リジェクト(メタリジェクト含む)され、休日も挟んで 12 日ほどかかりました。しんどかった気持ちを供養する…

Serverless Framework で作る mono repo AWS プロジェクト構成

サーバーレスなアーキテクチャを実現するサービスは世の中いくつか存在します。その中でも Serverless Framework(serverless.com) はベンダーに依存せずサーバーレス構築を提供するユニークなサービスです。サポートするベンダーも AWS, Google, Azure とい…

React Nativeの次世代アーキテクチャTurboModuleとJSIの話

stand.fm 社が主催する React Native 勉強会にて Catching up with TurboModules という題名で未だ全容がはっきりしない TurboModules について発表しました。 speakerdeck.com この記事は発表では伝えきれない部分を補うものとなっています。 現状の Native…

Google Speech To Textでそこそこ使える書き起こしツールを作る

奥さんが自分のメディアを持っていて日々サステナビリティや育児について発信しており、その一環で色々な方にインタビューをしています。 www.misamisaz.com インタビューページ インタビューは録音した音源をもとに対話形式で書き起こすわけなのですが、こ…

Apollo Client v3 アップデートのハマりどころまとめ

先日会社のプロジェクトにて、ようやくApollo Clientをv3にアップデートしました。今回のメジャーアップデートはいくつか大きな変更点があり、我々のプロジェクトでは影響を受けたファイルは合計300以上になりました。この記事ではどのような変更があったの…

React NativeでiOSアプリをAndroidアプリに移植するときに気をつけること

数ヶ月前、自社製品(2年以上前にiOS版をリリース)のAndroid版アプリを開発/リリースしました。アプリはReact Nativeで実装されており、多くのコードがそのままで動きます。しかし、ビルド設定やデバイス固有のNativeコードについては、アプリを正しくビルド…

柔軟に開発チームを拡張する ~スタッフ・オーグメンテーションの知見~

ベイエリアにある今のスタートアップに入っておよそ一年ちょっとが経過しました。入社してから開発の他に採用やチーム作り、プロジェクトの推進などに力を入れて取り組んでます。今回は UI 改善や短期的なプロジェクトを回すために、スタッフ・オーグメンテ…

2020 年の React Native 開発

2019 年は React Native にとってはさまざまな変化があったので、それらを振返りつつこの記事では最近の React Native をめぐる状況と個人的見解について書きます。採用を検討している方、Flutter などのクロスプラットフォーム開発フレームワークと比べたい…

旅をしながら仕事をする、あるいはリモートワークができるチームの作り方の話

12月中旬から1月中旬のおよそ3週間と少しのあいだ、ヨーロッパを旅しつつリモートで仕事をしていました。自分が働いている会社は現在サンフランシスコと日本に拠点があり、日本にいるメンバーも北海道や北関東など様々な場所からリモートで働いています。今…

クライアントとサーバーどちらに実装するかの設計指針をチームで持つこと

モバイルアプリケーションを開発していると、この要件や仕様はクライアントとサーバーどちらに置くべきか、という議論がチームでなされることがしばしばあります。例えば、 あるレスポンスAを受けて処理Bを行い、その結果をユーザーに提示する 登録処理など…

メルカリを退職してChanoma, Inc. にジョインしました

近況報告です。11月頭にメルカリを退職し、サンフランシスコを拠点とするChanoma, Inc.にジョインしました。

Android App Bundle/Dynamic feature modulesにみるモジュール化の未来

Google I/O 2018で発表された新機能であるAndroid App BundleとDynamic feature modulesが大規模アプリのペインポイントを解決しそうなので、早速利用/サンプルプロジェクトを触ってみた所感などを書きます。(5/9Dynamic featureのテスト方法について更新し…

日本向けのアプリとUS向けのモバイルアプリの違いはなにか

日本向けアプリとUS向けのモバイルアプリを開発した経験から「日本のアプリとUS向けのアプリの違いって何ですか?」と聞かれることがあります。個人的に最も違う点を挙げるなら、タイポグラフィだと思います。具体的にどういうことなのか、またもし海外向け…

「Android アプリ設計パターン入門」でReactNativeハイブリッドアプリやMVVMアプリ設計について執筆しました

本を書きました! ひょんな経緯から、クラウドファンディングによるAndroid設計本「Android アプリ設計パターン入門」の執筆に携わりました。 自分が担当した章は「7章 チームとアーキテクチャ」になります。クラウドファンディングの本で手にとっていただく…

React Nativeハイブリッドアプリケーション開発ことはじめ

React NativeとNativeのハイブリッドアプリケーションはFacebookやAirbnbなど大企業がを積極的に導入していることやNativeアプリを部分的にリプレイスできる利便性から今後も採用が増える分野と考えられます。本記事ではハイブリッドアプリを開発した自分の…