🚀

Call for Job Offers

💡

このドキュメントは、宮城広隆がジョブオファーを募集するドキュメントです。 魅力的なチーム・企業様との出会いはいつでも歓迎しています。

宮城広隆

image
  • Ruby, Go, Terraformをよく書くフリーランスエンジニアです。
  • 現在はWeb技術, TypeScript, OOUIデザインを勉強中です。
  • スタートアップでの活動が長く、ジェネラリストのような振る舞いが得意です。
  • インテリア、スマートホーム、カメラ、銭湯、Notionが好きです。
  • 🐇と暮らしています。

現在のステータス

最終更新日:2021/10/15

  • 平日週4で1社, 週2で1社稼働しており、直近3ヶ月はフルコミットに近い形で手を動かすことは難しいです。
  • 長期的な関係を見据えたオファーや、まず話だけ、という形でもお話しさせて頂くのは大歓迎です。

提供できる価値

  • Webアプリケーション・APIの新機能開発・機能改善
  • 自らが中心となって必要な技術検証・調査・設計・実装を行い、他のエンジニアを巻き込みながらプロダクト開発を前進させること
  • 障害発生時のインシデントコマンダーとしての進行、作業者としての暫定対応、ポストモーテムの実施
  • 稼働中のインフラのキャッチアップ・IaC化や、ボトルネックの最適化、オペレーションの自動化
  • リスクや不確実性の発見と、事前に防ぐ動きが得意です

詳しくはこちらをご覧ください。

現在持っている技術の棚卸し 2021年|miya|note

自身のキャリアパスを模索する中で一度洗い出してみたので、せっかくなので公開してみることにしました。 神速さん の以下の記事にインスパイアされています。 - スクラム開発に関する基本的な知識がある- スクラム開発の経験がある- 他のメンバーが開発可能な完了条件を持つストーリーを作成できる- 社内外のドメインマスターと仕様の調整や課題の深掘りを行い、ソリューションの提案ができる- ネイティブアプリ開発者とOpenAPI3ベースでの会話ができる- リモートワーク下での適切なテキストコミュニケーションやビデオ会議を行える- 置かれた状況や課題に応じたツールや技術の選定を行える- 障害発生時のインシデントコマンダーとしての進行、作業者としての暫定対応、ポストモーテムの実施ができる - RSpecによるTDDを日常的に実践している- コードレビューやペアプログラミングを通して、若手エンジニアにRailsを教えられる- ActiveJob(Sidekiq)を利用した非同期処理や、複数サービスを跨いだトランザクションの実装ができる- ActiveModel, POROを活用したFatModelの解消に取り組める- OSSにPull Requestを投げられる- 勉強会に参加したり、登壇したことがある- Ruby, Railsのバージョンアップをしたことがある - 100テーブルを超えるDBを用いた開発経験がある- 各種制約やインデックスを効果的に利用したスキーマ設計ができる- パフォーマンスを意識したSQLを書ける- Redash/BigQueryを利用したSQLの実行やダッシュボードの作成ができる - クロスプラットフォームを考慮したCLIツールを作成できる- makeを利用した開発環境のセットアップができる- echo/gormを利用したWebサーバーを実装できる - Vue, React, TypeScriptでの個人開発の経験がある - docker-composeを利用した開発環境の構築ができる- 環境に合わせたDockerfileを書ける- Buildkit, レイヤーキャッシュを活用したビルドの高速化ができる - TerraformとAWSを使ってインフラ環境を構築できる - VPC, Route53, CF, ALB, ECS(Fargate)の構成を組める- AWSのテクニカルサポートと協力しながら問題の解決に取り組める- Google WorkspaceをidpとしたSAMLログインをセットアップできる- CloudWatchやDataDogを利用した監視のセットアップができる - Git Flow, GitHub Flowでの開発経験がある- CircleCI, GitHub Actionsを使ってCI環境を構築できる - Lint, testを実行できる - ジョブの並列化・パフォーマンスチューニングができる- CD環境を構築できる - ECSのローリングデプロイ・CloudFront+S3のキャッシュのinvalidate・Goバイナリのバージョニングやリリースなど- AWS CLI/APIを利用した自動化ができる- Sentry, Datadog APM, Vercelなど開発者向けツールのセットアップと運用ができる - 開発プロセス・開発環境の改善- 品質を向上し、適切にフィードバックを返すTesting, Lintingの追求- 今のところ経験が少ないモダンフロントエンド技術の習得- 書いたコードの価値の追求(お金を生み出すか?保守可能か?などなど)

現在持っている技術の棚卸し 2021年|miya|note

職務経歴

  • 株式会社タイミー(正社員) バックエンドエンジニア
  • 株式会社リゾートワークス(業務委託) バックエンド/インフラエンジニア

詳しくはこちらをご覧ください。

過去のアウトプット等

新規事業の決済機能としてStripeを導入する上で考えたこと全て - Timee Product Team Blog

こんにちは、 タイミーデリバリー開発チームの宮城です。 この記事は JP_Stripes Advent Calendar 2020 の10日目の記事です。 タイミーデリバリーはデリバリーを頼みたい人が安い価格で注文でき、飲食店も安い利用料で注文を受けられるデリバリープラットフォームです。 その決済機能として今回は Stripeを導入しました。 この記事では、決済基盤の技術選定/Stripeを活用したクレジットカード決済と各事業者への入金までの流れ/ Rails での具体的な実装内容 をそれぞれタイミーデリバリーでの活用事例として紹介します。 タイミーデリバリーでは、 Railsによる APIサーバーと、Web管理画面としてVue.jsによるSPA、ユーザー向け iOSアプリとしてSwiftを採用しています。 1つの モノリスな Railsアプリで利用者別にネームスペースを区切り、それぞれ JSONを返す APIを提供しています。 タイミーデリバリーはプラットフォームビジネスであり、注文者はアプリ上で複数の事業者の商品を閲覧し商品を購入します。 注文者が決済した金額にはプラットフォーム利用料が含まれており、タイミーと事業者双方に分配する必要があります。 まだ弊社には決済機能を導入するノウハウがなかったため、 Railsを使ってどのようにこのビジネスモデルを実現するのかや、そもそも決済機能に求められる通常の要件をどのように達成するのかもわからない状態からスタートしました。 まずは決済基盤に求められる技術選定の基準を作るところから始めました。 弊社 経理 チームやCSチーム、法務チームと相談しながら要件をまとめ技術選定基準を作り、以下の要件が達成できる状態を目指すことにしました。 注文者の体験 注文者がクレジットカードを使ってアプリ上から商品を事前購入することができる 決済情報(クレジットカードなど)はタイミーが保持せず、ログにも残らない 不正利用やマネーロンダリングの対策ができている 注文者が操作に迷わない(UXが高い) 弊社経理チーム、導入事業者の体験 決済された金額から事業者とタイミーに分配できる、またはタイミーから事業者に請求できる 事業者の導入にあたって、契約書の受領からアプリ上に商品を掲載し決済できるようになるまでが簡単で短い 特定の期間で「締め」て、締めたデータは変更されなくなる 必要なデータを後から取り出すことができる 注文者への領収書や店舗ごとの利用明細が表示できる サポートチームの体験 返金のオペレーションが容易にできる 必要なデータを後から取り出すことができる 開発チームの体験 実装コストができるだけ低い サービスが利用できない時間が可能な限り短い(可用性が高い) この時点で「決済を行う」とはここまで考えることがあるのか...と深い闇に迷い込んだ気がしましたが、ここで丁寧に要件をまとめたことで各 ステークホルダー と認識のズレを減らすことができたように思います。 上記の技術選定基準をStripeで達成できるか当てはめたのが以下です。 注文者の体験 注文者がクレジットカードを使ってアプリ上から商品を事前購入することができる クレジットカード、ApplePay、GooglePayなどが可能。 決済情報(クレジットカードなど)はタイミーが保持せず、ログにも残らず、セキュアに管理される APIで問い合わせ、決済情報の登録・閲覧・削除が可能。秘匿情報は全てStripe側で管理し、タイミーが保持するものは結果のみ。 不正利用や マネーロンダリング の対策ができている Stripeに蓄積されているデータを用い、クレジットカードのリスク審査ができるRadarと呼ばれる不正行為検知の機能がある(別料金) 注文者が操作に迷わない(UXが高い) StripeのSwift向け SDKが優秀カードの入力は1度きりでよく、次回決済時にシームレスに利用できる 弊社 経理 チーム、導入事業者の体験 決済された金額から事業者とタイミーに分配できる、またはタイミーから事業者に請求できる 可能。方法は後述 導入にあたって、契約書の受領からアプリ上で決済できるようになるまでが簡単で短い アカウントを登録するための情報は多いが、入力次第すぐに決済が可能。Stripeが並行で審査を進めている 特定の期間で「締め」て、締めたデータは変更されなくなる これはできなさそうだった。だが 経理 上のオペレーションとしては問題なく処理できたので方法を後述 必要なデータを後から取り出すことができる Stripeの ダッシュ ...

新規事業の決済機能としてStripeを導入する上で考えたこと全て - Timee Product Team Blog
RedashをFargate, Datadog, Terraformで構築/運用する - Timee Product Team Blog

こんにちは、タイミーSREチームの宮城です。 今回は弊社が Redash をFargateで構築/運用している話を紹介します。 タイミーでは、CSやセールスのKPI策定から毎月の事業数値に至るまで、Redashが様々な用途で活用されています。 Fargateで構築する以前はEC2上のdocker-composeで運用されていましたが、以下の課題がありました。 オートスケールできないため、クエリが詰まってCPUが100%になってサービスが停止する。 セットアップしたエンジニアが退社しており、インフラ構成図やノウハウの共有、IaCによる管理ができていない。 クエリやダッシュボードなどのデータの定期的なバックアップができていない。 v7系からv8系へのアップデートがしたいが、アップデートによる影響範囲がわからず恐怖感がある。 事業に大きく関わるサービスなのにも関わらず、モニタリングやアラートができていない。 上記をFargateに移行することで解決することができました。 Redashで利用する ミドルウェアに関しては下記 コンポーネントを使い、全てをterraformで管理しています。 - PostgreSQL -> RDS - Redis -> ElastiCache ここからは、それぞれの構成をTerraformの ソースコードやタスク定義の JSON などを交えつつ説明していきます。 ダッシュボードなどのデータが定期的なバックアップが行われていない問題は、RDSでsnapshotを取得することで解決しました。 それぞれ一番小さい インスタンスタイプのシングルAZ構成で構築しています。 実際に運用してみて負荷が大きければスペックを上げるつもりでしたが、現状問題なく捌けています。 将来、可用性を高めるためマルチAZにすることも容易であり、こういった柔軟なサーバーリソースの活用も クラウド の利点といえるでしょう。 privateサブネットに置いたシンプルな構成です。 applyが完了したらrootユーザーのパスワードを AWS コンソール上から変更し、接続情報をSecretsManagerに保管しています。 resource "aws_db_subnet_group" "redash" { name = "redash" subnet_ids = [ data.aws_subnet.private-subnet-1a.id, data.aws_subnet.private-subnet-1c.id,

RedashをFargate, Datadog, Terraformで構築/運用する - Timee Product Team Blog

その他のアウトプットについてはこちらをご覧ください。

希望する条件

  • 週2~4での業務委託を希望しています。業務委託契約は準委任を前提とします。
  • まずは3ヶ月での契約を希望します。終了1ヶ月前あたりで稼働についてフィードバックをいただき、契約延長か解消かを相談できるとお互いのマッチングを測る上で望ましいと考えています。
  • 基本リモートワークが可能だと望ましいです。
    • 自身のタスクを進める際は自宅で作業したいですが、MTGや必要なイベントがある際に出社することは大歓迎です。
    • 現在東京都豊島区に在住していますが、関東圏内への転居の検討をしています。
  • 個人の端末で稼働することも、貸与端末での稼働でもどちらでも対応可能です。OSはMacを希望します。

業務委託の働き方へのモチベーション

  • 複数企業様の技術課題・組織課題に触れることができる
  • 自身の責任範囲内で稼働・生活を調整でき、時間的余裕と金銭的余裕をコントロールできる
  • 自身の責任範囲内で興味のある技術に挑戦できる
    • 現在Web技術・TypeScript・OOUIデザインに興味があります
  • 1~2年程度で再就職を検討しており、ゆくゆくはコミットメント・シフトのように業務委託から正社員に移行する企業様を探したいと思っています。

魅力を感じる組織・プロダクト・チーム

TODO: 後々書きます。

✉️ 採用担当の方へ

もし私に任せたいポジションについての話があれば、以下のフォームからお問い合わせください。

価値のあるオファーはいつでも歓迎ですが、たとえどれほど魅力的だとしてもすぐには受けられないことがあります。

数ヶ月〜1年など長期的な関係を見据えたオファーを歓迎します。

参考

本ドキュメントを公開するにあたり、以下を参考にさせていただきました。 企業がEntrance Book等で自社の情報をオープンにする動きが広まりつつある中で、働く個人もミスマッチを減らすために自身の発揮できるバリューやキャリア志向を端的にまとめた資料を用意することに共感し、掲載に至りました。