# 自分は何者なのか
私は筑波大学情報科学類に所属する学生です。
# 現在進めているプロジェクト
# 自作 RISC-V 向け CPU・コンパイラ
コンパイラについてはまだ始めたばかりですが、これから頑張っていきたいと思っています。 CPU は書籍を参考にしたコードを使用しているので、将来的には自分で再構築してみたいと考えています。
# カリスワークスプロジェクト
カリスワークスは雑貨を販売する婦人向けの EC プラットフォームサイトです。
詳しくはこちら。
# 技術スタック
- ウェブフロントエンド
- ウェブバックエンド
- Linux 全般
- FPGA(勉強中)
# やったことがあるもの
-
パートタイマー (2024 年 9 月〜)
株式会社リチェルカセキュリティでファジングについての研究開発をしています。
-
ワンデーインターン (2024 年 9 月)
Global Unichip Corporationにて ASIC/SoC の開発体験をしてきました。
-
インターン (2024 年 8 月)
アイベックステクノロジー株式会社で 3 日間の研修を受けてきました。FPGA を用いた映像フィルタリングを実装しました。 講師の方が作成したモジュールを活用し、加重平均フィルタ・ラプラシアンフィルタ・先鋭化フィルタ・メジアンフィルタを実装しました。 実装していく中でクリティカルパスがクロックの周波数に間に合わなかったり、パイプライン化処理で苦戦したりと、FPGA ならではの問題に直面しましたが、なんとかして解決できたのでとても良い体験でした。
-
セキュリティキャンプ全国大会 (2024 年 8 月)
セキュリティキャンプ 2024 全国大会で開発コース S02「FPGA を用いた RISC-V CPU 自作ゼミ」に受講生として参加し、Scala の DSL である Chisel を用いた CPU の開発を行いました。 MMIO とシリアルをつなぐモジュールを設計し、USB での UART 通信を実現させることに成功しました。短い期間でしたが、Chisel の使い方や CPU との通信について理解を深めることができました。
-
インターン (2023 年 12 月 〜 4 月)
シックスワン株式会社にてインターンをさせていただいておりました。メインで Astro と Next.JS のプロジェクトを担当し、Astro では SSG のサイトを作成し、Next.JS では SEO 対策を意識した SSR を用いた実装を行いました。ほかで動いていた django のプロジェクトにも携わった経験があります。
-
ブログの運営 (2023 年 11 月 〜)
静的サイト Hugo を使用したブログの運営を始めました。ここでは私が設定で詰まったことや使っているものを紹介しています。
-
アルバイト(2023 年 7 月 〜 10 月)
株式会社 yo-daにて PHP を使用したサーバのバックエンドの開発を行っていました。
-
python のスクレイピング (2021 年 〜 2022 年・2023 年 4 月頃)
beautiful soup を使用して、スクレイピングをしていたことがあります。必要になったとき、適宜使っています。
-
C#でのフォームアプリケーションの開発 (2021 年 〜 2022 年)
.NET のフレームワークを使用して、音楽をランダムな時間で止めるソフトや、ランダムな時間を生成して、そのときに在籍していた首相を当てるという首相ビンゴというゲームをするためのソフトを作っていました。 作った作品はこのドライブからダウンロードできます。
-
高校の文化祭のサイト作成(2021 年 8 月)
かなり初心者のときに作った、文化祭用のサイトです。今だったら何らかのフレームワークにのせて開発するなあと思います。JS を最低限使って、後はほとんど html のみで開発していました。
# 最近勉強しているもの
自作 OS や Linux、ネットワークについて勉強しています。これからの目標は自作 OS の上でネットワークのプロトコル・スタックを自作することです。まだまだ知識が足りないので日々勉強しています。
# 興味のあるもの
- arch などの様々なディストリビューションの linux
- 触ったことのない言語(関数型言語・C 言語など)
- ネットワークに関する知識(TCP・IP プロトコルや BGP など)
# 言語
# メインの言語
-
TS
Next.JS での開発がメインです
-
Golang
サーバーのバックエンドの開発がメインです。
-
Verilog
FPGA で回路設計をする際に使っています。これからは System Verilog に乗り換えていきたいと思っています。
-
scala(chisel)
scala 自体をたくさん書いてきたわけではありませんが、chisel を使った開発を行っています。
-
C
最近始めた自作 RISC-V 用コンパイラや CPU を動かすために C 言語を使っています。
# 一応使える言語
-
python
学校の講義で使いました。過去にスクレイピングや CSV の管理に使用していたことがあります。本当に少しですが、インターン先で django を触った経験があります。
-
PHP
アルバイトで少し触りました。最近は本当に触っていないので使うとしたら勉強し直します。
-
C#
大学に入る前まで使用していました。最近オブジェクト指向プログラミングという授業を受けたのでインターフェースなどを意識したコーディングができるかもしれないです。この言語も最近は本当に触っていないので勉強し直します。
-
java
C#で書いたオブジェクト指向プログラミングで少し勉強しました。何かプロダクトを作ったことはありません。
# Linux
-
Arch Linux
23 年 5 月から趣味でずっと使っています。ずっと開発に使っており、ウィンドウマネージャは i3→sway→hyprland→sway ときて、KDEPlasma の上に i3 を載せて使っていたこともあります。
現在は素の KDEPlasma と sway に落ち着いています。ただ plasma は i3 のキーバインドにかなり近づけています。
-
ほかのディストロ
ubuntu や mint を使ったりしています。しかしやっぱり apt よりも pacman と paru のほうが好きです。
# 開発環境など
-
vscode
大学に入ってからずっと使っています。SSH 機能が便利で欠かせない存在です。
-
github,github actions
個人開発では github で開発しています。インターン先やチーム開発では基本的にずっと使っています。
-
docker
テスト用の DB を建てるのに使っています。
-
nginx
個人開発やサイトのデプロイのために使用しております。
# ライブラリなど
- gin (golang library)
- chakra ui (css library)
- Stripe SDK
- R2 (Cloudflare object storage)
- PVE (Proxmox Virtual Environment)
- Meilisearch
- Sentry
# web フレームワーク
- gRPC (TypeScript,golang)
- REST flamework (TypeScript,golang)
どちらも個人開発で実装経験があります。
# web 開発手法
- DI 依存性注入
- テスト
# チーム開発での立ち位置
インターンに参加していた時期は得意な分野では実装をするというよりかは、実装に対して改善できるところはないかについて探す役割が多かったです。
最近は友人達のやっているプロジェクトに途中参加して、1 から実装するというよりかは細かい実装の修正や issue を解消する役割に回っています。
# まとめ
大学に入ってからパソコンを本格的に初めて、ずっと楽しくパソコンをしています。
これからもどんどん勉強して開発していきます!!!