りく
https://gyazo.com/2a97b74e0c732d3b7d7ce8c205ed203b
自己紹介 | 経歴など
■概要
初めまして、髙橋 陸と申します。25歳(1998/10/27生まれ)です。
現在は大学休学中でして、これまではいわゆるWeb系のスタートアップ企業にてソフトウェアとして合計5年間働いてきました。
ソフトウェアエンジニアとしての経歴に関する詳細は、wantedlyをご覧いただければと思っております。
お酒🍺 サウナ♨️ 読書📚 映画🎬 散歩🚶‍♀️ とかが好きです。
■外部リンク
Github
github.icon https://github.com/riku1027
Twitter
twitter.icon https://twitter.com/1027_riku
Facebook
facebook.icon https://www.facebook.com/profile.php?id=100027828451632
Instagram
https://www.instagram.com/1027__riku/
Wantedly
https://www.wantedly.com/id/takahashi_riku
lapras
https://lapras.com/public/riku
■経歴
2021年8月~2023年5月
会員制ECの0→1の立ち上げから、組織・システム・プロダクトのマネジメント(シード〜シリーズA)
#Ruby #Rails #Python #AWS #GCP
#Next.js #React #TypeScript #Vercel #Google_Analytics #Google_Optimize
#Re:dash #Google_Analytics #Google_Apps_Script
2021年3月~2021年9月
営業DXsaas の開発(東証グロース市場上場企業)
#Ruby #Rails #AWS
#React #TypeScript #MobX
2019年4月~2021年1月
後払い決済サービスの開発(東証一部上場企業)
#Ruby #Rails #JavaScript
#Ruby #Rails
2018年12月~
プログラミングの独学始めた頃
2018年4月~
上智大学 経済学部経済学科に入った
2017年4月~
自宅浪人時代
■この先やっていきたいこと
自分自身の長期的なビジョンは、ソフトウェアエンジニアリングを通じて社会やユーザーに対して価値を提供し、そのプロセスを通じて自己成長を達成することです。これを基軸として、キャリアの進路を決定しようと考えています。具体的には、「事業とエンジニアリングをどのように連携させるか?」や「ソフトウェアエンジニアリングを通じて、どのように社会やユーザーに貢献できるか?」といった課題を重視し活動内容の選択を行っていきます。
しかし、自分自身のキャリアプランについては、厳格な計画よりも、直感的で機会があればそれを掴むというスタンスを持っています。その進行方針は以下の5つの要素を重視するものです。
1. 好奇心(Curiosity):新しい事への持続的な関心
2. 持続性(Persistence):困難に直面しても断念しない持続力
3. 楽観性(Optimism):どのような状況でも前向きな視点を保つ
4. 柔軟性(Flexibility):過度なこだわりを避け、柔軟な態度を取る
5. 冒険心(Risk Taking):結果が不確定な状況でも挑戦する勇気
これは計画的偶発性理論に基づいたような生き方であり、それ故に、就職活動や起業、フリーランスといった選択肢を最終的な目標への到達手段、つまり「HOW」と捉えています。
■最近の興味関心
ソフトウェアエンジニアリング全般
ソフトウェアと経営
クラウドアーキテクチャ設計
TerraformなどのIac
GraphQL
T3Stack
4Keys(LeanとDevOpsの科学大好きです)
プロダクト開発全般
もろもろ
AI(特にLLM)
GenerativeAI
langchain
プロダクト開発におけるLLMの活用
スタートアップ
コンパウンドスタートアップ
SaaSのバンドル化
■活かせる経験・知識・技術
ベーススキル
・事業・開発双方の観点から、適切な課題を設定し解決する問題解決の経験・スキル
・要求を要件に変換して、実装に落とし込む経験・スキル
・チームメンバーに言語を介して、意図を説明するコミュニケーション/ドキュメンテーション経験・スキル
・知らない領域の知識でも素早くキャッチアップし、業務でアウトプットする学習スキル
バックエンド
・RESTful API設計
・Open API(swagger)を活用したスキーマ駆動開発
・DB設計(概念設計・物理設計)
・Rails Way に沿った、アプリケーションロジックの実装
・SQLを用いた分析、BIツールでの可視化
・バッチ処理の実装(rake task やAWS Lambda)
・Elasticsearch を使用した全文検索の実装
webフロントエンド
・Next.js/Typescriptを使用した機能開発
・Chakra UI/Material UI を使用した UI実装
・Firebase AuthenticationやStripe等の外部サービスのSDKを使用した実装
・MicroCMSを活用した、フロントのローコード化
・Google Analytics を用いたユーザー行動ログの収集
インフラ・DevOps
・障害発生率の削減、リードタイム削減の文脈でCI/CD周りの改善(Github Actions/Circel CI等を活用して、自動テスト実行/Lint実行/自動テストcoverage計測)や、デプロイ自動化(Code Deploy)
・CloudWatchやSentlyを活用した監視・アラートの設計
・Four keys の計測基盤の構築
・AWS Glue を用いた ETL処理の実装
BizOps
・Google Apps Script, Zappier, Google Spreadsheet, Redash を活用した、各事業部の運用工数の削減作業や、データ活用の促進(リードタイムなどの可視化・レポートなど)
Tags
#CS
#ソフトウェア工学
#アーキテクチャ
#Rails #Ruby
#TypeScript #JavaScript #React
#Firebase #aws #gcp
#雑記
#読んだ本
#事業関連
#スタートアップ
以下 UserScript
キリトリ.icon
ポップアップにペースを良い感じに整形するボタン追加
code: script.js
scrapbox.PopupMenu.addButton({
title: 'インデント削除',
onClick: text => {
text = text.split(/\n/).map(line => line.normalize().replace(/\s{4}/g,' ')).join('\n');
return text;
}
})
参考:/scrapboxlab/WorkFlowyからのペーストをそれなりに整形するポップアップメニュー
ポップアップに、文章を良い感じにリンク化するボタン追加
code:js
import '/api/code/daiiz/omakase-links/script.js'
code:script.js
const loadTitles = ({useLinks}) => {
fetch(/api/pages/${scrapbox.Project.name}/search/titles, {
credentials: 'same-origin'
}).then(res => {
return res.json()
}).then(data => {
let titles = data.map(p => p.title)
if (useLinks) {
data.map(p => {
p.links.map(l => {if (!titles.includes(l)) titles.push(l)})
})
}
titles = titles.sort((a, b) => b.length - a.length)
window.titles = titles
console.log('omakase-links-✨: load titles, links')
scrapbox.PopupMenu.addButton({
title: '✨',
onClick: autoLink
})
})
}
// 既に記法になっているなどの理由で、置換すべきでない範囲を取得する
const detectLocked = text => {
const syntax = /\[*\.+?\\]*/g
const locked = text.split('').map(c => false)
let res
while (res = syntax.exec(text)) {
for (let i = 0; i < res0.length; i++) lockedi + res.index = true
}
return locked
}
const autoLink = text => {
if (!window.titles || !text) return text
const locked = detectLocked(text)
const matched = text.split('').map(c => null)
for (const title of window.titles) {
const regexp = new RegExp(escapeTitle(title), 'gi')
let res, found = false
while (!found && (res = regexp.exec(text))) {
const len = res0.length
const idx = res.index
if (matchedidx === null && !lockedidx) {
found = true
const len = res0.length
for (let i = 0; i < len; i++) {
if (i === 0 || i === len - 1) {
let c = textidx + i
if (i === 0) c = [${c}
if (i === len - 1) c = ${c}]
matchedidx + i = c
} else {
matchedidx + i = textidx + i
}
}
}
}
}
// 無駄にテロメアがupdateされるのを防ぐ為、何も置換しない時は何も返さない
if (matched.join('').length === 0) return
// 配列matchedでnullの位置を、元のtextの文字に置き換える
return matched.map((c, idx) => c === null ? textidx : c).join('')
}
const escapeTitle = title => {
return title.replace(/[$-\/?-^{|}/g, '\\$&')
}
// 置換候補をリアルタイムで更新できないのがツライところ
// しかし、毎回API呼んでると時間かかるので、ひとまず妥協
if (!window.titles) loadTitles({useLinks: true})
参考:/daiiz/いい感じにリンク化するPopup Menu
引用時にインデントマークを消す
code:script.js
let textSpans = document.getElementsByClassName("text");
let textSpansList = Array.from(textSpans);
textSpansList.forEach((textSpan) => {
const indentSpan = textSpan.querySelector(".indent");
if (indentSpan != null) {
if (indentSpan.getElementsByClassName("quote").length > 0) {
textSpan.querySelector(".indent-mark .dot").style.display = "none";
}
}
});
settingsはこちら