Skip to content

Lugendre/curriculum-vitae

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 

Repository files navigation

職務経歴書

基本情報

名前

石原 拓哉 | Lugendre

HP・SNS

媒体 リンク
GitHub https://github.com/Lugendre
Cosense (旧Scrapbox) https://scrapbox.io/LugendrePublic/
Zenn https://zenn.dev/lugendre
Qiita (休止中) https://qiita.com/Lugendre
X (旧Twitter) https://x.com/Lugendre

職務要約

主に流体解析ソルバの開発に従事。その傍ら、セキュリティ向上の為の施策や各クラウドの管理業務を行う。受託開発ではWebアプリケーションの開発も行った。各ソフトウェア開発では保守性を重視し静的型付けと適切な抽象化を重視した設計と実装をした。

スキル

言語・知識

Haskell

メイン言語。5年以上の実務経験あり。依存型のエミュレートも使って厳格に型をつけることを好んでいる。GHCの拡張を用いた型レベルプログラミングや線形型の利用はもちろん、ある程度は論文とGHCのコードを読んで最適化機構についても把握している。

数値流体力学

実務で有限体積法を用いた一般的な流体ソルバを実装している。OpenFOAMに関しても実装の概要とデータ構造は把握してコードを参照している。DNSだけでなく、LES、RANS(k-ε)の実装もした。また、Cavity flowのGhiaの論文やBackstep流れの付着点、Kolmogorovの相似仮説といったベンチーマークも行った。

有限要素法

実務で流体ソルバの一部に有限要素法を用いた計算を導入した。材料のFEMによる解析も実装したことが有る。弾性変形の部分だけであり、弾塑性解析は行ったことがないが、理論の詳細は知っている。

Rust

サブ言語。高速で省メモリかつフットプリントの小さめなプログラムが書きたいときに使用している。実務では流体解析のPoCで利用したが、主に趣味で使っている。

TypeScript

サブ言語。Webフロントエンドを書くのに使う。実務ではWebアプリケーションを開発する際に利用した。その際はバックエンドでも利用し、ORMとしてPrismaを利用した。基本的にReactをNext.jsとともに利用している。

Go

サブ言語。CLIツールを作る際に使う。実務ではKubernetesのカスタムコントローラを作る際に利用した。

Scala3

現在勉強中。Haskellの経験を活かし、Tagless Finalとcats, cats-effectを用いた開発をして設計を勉強している。

AWS

実務でWebアプリケーションをホストするのに使った他、全体の管理も行った。主にFargateでコンテナをホストした。他にもCloudFront, S3, Auroraを使っている。 数値計算ではAWS Parallel Clusterを使った。

Cloudflare

Zero Trustを主に利用。R2やCloudflare Workersの技術検証目的でアプリケーションを作成している。

職務経歴

DeepFlow株式会社 (現職)

離散微分形式および有限体積法を用いた流体解析ソルバの開発

職務:研究開発

規模:3名

期間:2019年4月~現在

利用技術:Haskell, Dhall

離散微分形式および有限体積法(FVM)を用いた商用の流体解析ソルバをHaskellで開発した。主にコアの流体解析部分をすべて担当した。数値計算の知識も微分幾何の知識もなかったため、1から勉強し実装した。離散微分形式について、関連論文を読み、不足を補って実装した。流体解析の妥当性も各種検証し、そのフィードバックから修正した。 チームメンバーが3名しかおらずマネージャーもいないため、自らビジネスに必要な機能を判断、実装した。Haskellの強力な型システムと抽象化能力を用い、堅牢で保守性の高い設計と実装を実現した。 FVMではパフォーマンスの検討のためRustを使ったPoCも作成した。

機械学習のための画像へのタグ付けを行うWebアプリケーションの開発

職務:フルスタックエンジニア

規模:2名

期間:2021年4月~2022年7月

利用技術:TypeScript, React, Next.js, Relay, Prisma, PostgresSQL, S3, CloudFront, Fargate, CodePipeline, CDK, MinIO, Keycloak

受託案件として機械学習のための画像へのタグ付けを行うWebアプリケーションを開発した。AWS FargateにDockerコンテナでデプロイし、Code Pipelineを用いてCI/CDできるように環境を整えた。AWSの環境はすべてAWS CDKを用いてGitHubリポジトリ内で管理し、mainの変更が反映されるようにCI/CD環境を整えた。要件としてオンプレでも機能することが求められていたため、認証基盤をKeycloakとし、画像はS3互換のOSSであるMinIOを利用し、Docker Composeで素早く立ち上げられるようにした。 TypeScriptを使う際には適切に型が付くことを意識し、zodを用いて極力静的型付けができる範囲で書くことで保守性を上げた。

AWSの全体管理

職務:クラウドインフラ管理

期間:2021年4月~現在

AWSのユーザー、各種権限、リソースを管理した。複数案件で使うことを考慮し、環境の分離のためにAWS Orgnizationsを使いマルチアカウント運用した。 各ユーザーは踏み台アカウントからのSwitchRoleでのみアクセスできるようにし、セキュリティを担保した。また、SCPによるリソース制限を活用し、不必要なリソースが展開できないように管理した。 加えて、Paralell Clusterを用いたHPCクラスタを構築、管理した。

GCPの全体管理

職務:クラウドインフラ管理

期間:2022年4月~2023年3月

GCPのユーザー、各種権限、リソースを管理した。hpc-toolkitを用いたHPCクラスタを構築、管理した。

GitHubの全体管理

職務:インフラ管理

期間:2022年4月~現在

GitHubのユーザー、各種権限、リポジトリの管理をした。GitHub Copilotの使用も進言し、会社の開発スピード向上に貢献した。 mainブランチへのpushの禁止など、各リポジトリで最低限守るべきルールを決定し、機械的にチェックできるようAllstarを導入した。

オンプレKubernetesのPoC運用

期間:2020年4月~2020年10月

HPC用途として使えるかの検証のため、オンプレでKubernetesクラスタを構築運用した。HPC用途のため、コンテナランタイムとしてSingularityを用い、kubeflowを用いてOpenMPIを用いた数値計算が行えるかを検証した。 計算終了の通知のために高レベルAPIを用いてカスタムコントローラーを作成した。

セキュリティ向上のための施策

簡単にできるセキュリティ向上施策を推進した。各サーバーのSSHをやめ、各種リソースをCloudflare Zero Trustで守るように変更した。アクセスできるメンバーの管理をGitHubのTeam上で管理できるようになり、機動性とセキュリティが向上した。 また、全社にYubikeyによる2FAを行うことを義務付けることで、フィッシングを含む典型的な脆弱性を避けるようにした。

自己紹介

価値観

  • 社会的に価値のあるプロダクトやサービスを作ることが大事である
  • 人の成長がなければサービスと会社の成長もない
  • 適切なマネジメントがソフトウェアと人の成長を生む
  • ミスや過ちは制度作りで対応するべきである
  • 設計と技術はソフトウェアの成長に応じて再検討するべきである

できること

  • ソフトウェア開発
    • 実際にユーザーが何を求めているかを注視した開発
    • Webアプリケーションの一通りの基礎的な設計や実装
  • 未知領域のキャッチアップ
    • 全くやったことない分野でも勉強し、キャッチアップできる
    • 新しいことを学ぶのが好きで全く苦にならない

やってみたいこと

  • 実際に多くのユーザーに使われるWebアプリケーションの開発
  • スクラム用いたチーム開発
  • ソフトウェアの価値を最大限引き出せるようなマネジメント

About

Lugendre's curriculum vitae

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published