mirror of
https://github.com/harvard-edge/cs249r_book.git
synced 2026-03-11 17:49:25 -05:00
feat(site): add Team page and reorganize Community section
- Add new Team page featuring core staff and contributors - Vijay Janapa Reddi (Nerdy Professor), Andrea Garavagno (Tech Lead), Kari Janapareddi (Chief of Staff), Kai Kleinbard (Web Wizard) - Display community staff side-by-side with fun role titles - Move Acknowledgments to separate page for MiniTorch/micrograd credits - Add contributor generator script for future automation - Update navigation: Team → Ecosystem → Acknowledgments
This commit is contained in:
@@ -107,7 +107,9 @@ parts:
|
||||
# Community - Collapsible section
|
||||
- caption: 🤝 Community
|
||||
chapters:
|
||||
- file: team
|
||||
title: "Team"
|
||||
- file: community
|
||||
title: "Ecosystem"
|
||||
- file: credits
|
||||
title: "Credits & Acknowledgments"
|
||||
title: "Acknowledgments"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Credits & Acknowledgments
|
||||
# Acknowledgments
|
||||
|
||||
**TinyTorch stands on the shoulders of giants.**
|
||||
|
||||
@@ -77,22 +77,132 @@ TinyTorch combines inspiration from these projects into a comprehensive ML syste
|
||||
|
||||
|
||||
|
||||
## Community Contributors
|
||||
## ML Systems Book Contributors
|
||||
|
||||
TinyTorch is built by students, educators, and ML engineers who believe in accessible systems education.
|
||||
TinyTorch is part of the broader [ML Systems Book](https://mlsysbook.ai) ecosystem. These contributors have helped build the educational foundation that TinyTorch extends.
|
||||
|
||||
**[View all contributors on GitHub](https://github.com/harvard-edge/cs249r_book/graphs/contributors)**
|
||||
```{raw} html
|
||||
<style>
|
||||
.contributor-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(75px, 1fr));
|
||||
gap: 0.75rem;
|
||||
margin: 1.5rem 0;
|
||||
}
|
||||
.contributor {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
transition: transform 0.15s;
|
||||
}
|
||||
.contributor:hover {
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
.contributor img {
|
||||
width: 52px;
|
||||
height: 52px;
|
||||
border-radius: 50%;
|
||||
border: 2px solid #e5e7eb;
|
||||
transition: border-color 0.15s;
|
||||
}
|
||||
.contributor:hover img {
|
||||
border-color: #3b82f6;
|
||||
}
|
||||
.contributor .name {
|
||||
font-size: 0.6rem;
|
||||
font-weight: 500;
|
||||
margin-top: 0.35rem;
|
||||
text-align: center;
|
||||
max-width: 70px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="contributor-grid">
|
||||
<a href="https://github.com/hzeljko" class="contributor" title="Zeljko Hrcek">
|
||||
<img src="https://avatars.githubusercontent.com/u/36451783?v=4&s=80" alt="hzeljko" />
|
||||
<span class="name">Zeljko Hrcek</span>
|
||||
</a>
|
||||
<a href="https://github.com/Mjrovai" class="contributor" title="Marcelo Rovai">
|
||||
<img src="https://avatars.githubusercontent.com/u/17109416?v=4&s=80" alt="Mjrovai" />
|
||||
<span class="name">Marcelo Rovai</span>
|
||||
</a>
|
||||
<a href="https://github.com/jasonjabbour" class="contributor" title="Jason Jabbour">
|
||||
<img src="https://avatars.githubusercontent.com/u/55008744?v=4&s=80" alt="jasonjabbour" />
|
||||
<span class="name">Jason Jabbour</span>
|
||||
</a>
|
||||
<a href="https://github.com/uchendui" class="contributor" title="Ikechukwu Uchendu">
|
||||
<img src="https://avatars.githubusercontent.com/u/14854496?v=4&s=80" alt="uchendui" />
|
||||
<span class="name">Ike Uchendu</span>
|
||||
</a>
|
||||
<a href="https://github.com/Naeemkh" class="contributor" title="Naeem Khoshnevis">
|
||||
<img src="https://avatars.githubusercontent.com/u/6773835?v=4&s=80" alt="Naeemkh" />
|
||||
<span class="name">Naeem K.</span>
|
||||
</a>
|
||||
<a href="https://github.com/Sara-Khosravi" class="contributor" title="Sara Khosravi">
|
||||
<img src="https://avatars.githubusercontent.com/u/76420116?v=4&s=80" alt="Sara-Khosravi" />
|
||||
<span class="name">Sara Khosravi</span>
|
||||
</a>
|
||||
<a href="https://github.com/didier-durand" class="contributor" title="Didier Durand">
|
||||
<img src="https://avatars.githubusercontent.com/u/2927957?v=4&s=80" alt="didier-durand" />
|
||||
<span class="name">Didier Durand</span>
|
||||
</a>
|
||||
<a href="https://github.com/18jeffreyma" class="contributor" title="Jeffrey Ma">
|
||||
<img src="https://avatars.githubusercontent.com/u/29385425?v=4&s=80" alt="18jeffreyma" />
|
||||
<span class="name">Jeffrey Ma</span>
|
||||
</a>
|
||||
<a href="https://github.com/V0XNIHILI" class="contributor" title="Douwe den Blanken">
|
||||
<img src="https://avatars.githubusercontent.com/u/24796206?v=4&s=80" alt="V0XNIHILI" />
|
||||
<span class="name">Douwe dB</span>
|
||||
</a>
|
||||
<a href="https://github.com/shanzehbatool" class="contributor" title="Shanzeh Batool">
|
||||
<img src="https://avatars.githubusercontent.com/u/66784337?v=4&s=80" alt="shanzehbatool" />
|
||||
<span class="name">Shanzeh B.</span>
|
||||
</a>
|
||||
<a href="https://github.com/eliasab16" class="contributor" title="Elias">
|
||||
<img src="https://avatars.githubusercontent.com/u/55062776?v=4&s=80" alt="eliasab16" />
|
||||
<span class="name">Elias</span>
|
||||
</a>
|
||||
<a href="https://github.com/JaredP94" class="contributor" title="Jared Ping">
|
||||
<img src="https://avatars.githubusercontent.com/u/13906915?v=4&s=80" alt="JaredP94" />
|
||||
<span class="name">Jared Ping</span>
|
||||
</a>
|
||||
<a href="https://github.com/ishapira1" class="contributor" title="Itai Shapira">
|
||||
<img src="https://avatars.githubusercontent.com/u/122899003?v=4&s=80" alt="ishapira1" />
|
||||
<span class="name">Itai Shapira</span>
|
||||
</a>
|
||||
<a href="https://github.com/jaysonzlin" class="contributor" title="Jayson Lin">
|
||||
<img src="https://avatars.githubusercontent.com/u/52141513?v=4&s=80" alt="jaysonzlin" />
|
||||
<span class="name">Jayson Lin</span>
|
||||
</a>
|
||||
<a href="https://github.com/sophiacho1" class="contributor" title="Sophia Cho">
|
||||
<img src="https://avatars.githubusercontent.com/u/67521139?v=4&s=80" alt="sophiacho1" />
|
||||
<span class="name">Sophia Cho</span>
|
||||
</a>
|
||||
<a href="https://github.com/alxrod" class="contributor" title="Alex Rodriguez">
|
||||
<img src="https://avatars.githubusercontent.com/u/11152802?v=4&s=80" alt="alxrod" />
|
||||
<span class="name">Alex Rodriguez</span>
|
||||
</a>
|
||||
<a href="https://github.com/korneelf1" class="contributor" title="Korneel Van den Berghe">
|
||||
<img src="https://avatars.githubusercontent.com/u/65716068?v=4&s=80" alt="korneelf1" />
|
||||
<span class="name">Korneel VdB</span>
|
||||
</a>
|
||||
<a href="https://github.com/colbybanbury" class="contributor" title="Colby Banbury">
|
||||
<img src="https://avatars.githubusercontent.com/u/17261463?v=4&s=80" alt="colbybanbury" />
|
||||
<span class="name">Colby Banbury</span>
|
||||
</a>
|
||||
<a href="https://github.com/zishenwan" class="contributor" title="Zishen Wan">
|
||||
<img src="https://avatars.githubusercontent.com/u/42975815?v=4&s=80" alt="zishenwan" />
|
||||
<span class="name">Zishen Wan</span>
|
||||
</a>
|
||||
</div>
|
||||
```
|
||||
|
||||
## How to Contribute
|
||||
|
||||
TinyTorch is open source and welcomes contributions:
|
||||
|
||||
- **Found a bug?** Report it on [GitHub Issues](https://github.com/harvard-edge/cs249r_book/issues)
|
||||
- **Improved documentation?** Submit a pull request
|
||||
- **Built something cool?** Share it in [GitHub Discussions](https://github.com/harvard-edge/cs249r_book/discussions)
|
||||
|
||||
**[See contribution guidelines](https://github.com/harvard-edge/cs249r_book/blob/main/CONTRIBUTING.md)**
|
||||
**[View all 40+ contributors on GitHub →](https://github.com/harvard-edge/cs249r_book/graphs/contributors)**
|
||||
|
||||
|
||||
## License
|
||||
|
||||
119
tinytorch/site/scripts/generate_contributors.py
Normal file
119
tinytorch/site/scripts/generate_contributors.py
Normal file
@@ -0,0 +1,119 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Generate contributor data for TinyTorch site.
|
||||
|
||||
Fetches contributor info from GitHub API and outputs markdown/JSON for the site.
|
||||
Run this in CI or manually to update the contributors list.
|
||||
|
||||
Usage:
|
||||
python3 scripts/generate_contributors.py > _data/contributors.json
|
||||
python3 scripts/generate_contributors.py --markdown >> credits.md
|
||||
"""
|
||||
|
||||
import json
|
||||
import subprocess
|
||||
import sys
|
||||
from dataclasses import dataclass
|
||||
from typing import Optional
|
||||
|
||||
|
||||
@dataclass
|
||||
class Contributor:
|
||||
login: str
|
||||
contributions: int
|
||||
avatar_url: str
|
||||
html_url: str
|
||||
name: Optional[str] = None
|
||||
|
||||
|
||||
def fetch_contributors(repo: str = "harvard-edge/cs249r_book", limit: int = 50) -> list[Contributor]:
|
||||
"""Fetch contributors from GitHub API using gh CLI."""
|
||||
cmd = [
|
||||
"gh", "api", f"repos/{repo}/contributors",
|
||||
"--paginate",
|
||||
"--jq", '.[] | select(.type == "User") | {login, contributions, avatar_url, html_url}'
|
||||
]
|
||||
|
||||
result = subprocess.run(cmd, capture_output=True, text=True)
|
||||
if result.returncode != 0:
|
||||
print(f"Error fetching contributors: {result.stderr}", file=sys.stderr)
|
||||
return []
|
||||
|
||||
contributors = []
|
||||
for line in result.stdout.strip().split('\n'):
|
||||
if line:
|
||||
data = json.loads(line)
|
||||
contributors.append(Contributor(**data))
|
||||
|
||||
# Sort by contributions and limit
|
||||
contributors.sort(key=lambda c: c.contributions, reverse=True)
|
||||
return contributors[:limit]
|
||||
|
||||
|
||||
def fetch_user_names(contributors: list[Contributor]) -> list[Contributor]:
|
||||
"""Fetch real names for top contributors."""
|
||||
for c in contributors[:20]: # Only fetch names for top 20 to avoid rate limits
|
||||
cmd = ["gh", "api", f"users/{c.login}", "--jq", ".name"]
|
||||
result = subprocess.run(cmd, capture_output=True, text=True)
|
||||
if result.returncode == 0 and result.stdout.strip():
|
||||
c.name = result.stdout.strip()
|
||||
return contributors
|
||||
|
||||
|
||||
def generate_json(contributors: list[Contributor]) -> str:
|
||||
"""Generate JSON output."""
|
||||
return json.dumps([
|
||||
{
|
||||
"login": c.login,
|
||||
"name": c.name or c.login,
|
||||
"contributions": c.contributions,
|
||||
"avatar_url": c.avatar_url,
|
||||
"html_url": c.html_url
|
||||
}
|
||||
for c in contributors
|
||||
], indent=2)
|
||||
|
||||
|
||||
def generate_markdown(contributors: list[Contributor]) -> str:
|
||||
"""Generate markdown contributor grid."""
|
||||
lines = []
|
||||
lines.append("<!-- AUTO-GENERATED: Do not edit manually. Run scripts/generate_contributors.py -->")
|
||||
lines.append("")
|
||||
lines.append("```{raw} html")
|
||||
lines.append('<div class="contributor-grid">')
|
||||
|
||||
for c in contributors:
|
||||
display_name = c.name or c.login
|
||||
lines.append(f''' <a href="{c.html_url}" class="contributor" title="{display_name} ({c.contributions} contributions)">
|
||||
<img src="{c.avatar_url}&s=80" alt="{c.login}" />
|
||||
<span class="name">{display_name}</span>
|
||||
<span class="commits">{c.contributions}</span>
|
||||
</a>''')
|
||||
|
||||
lines.append('</div>')
|
||||
lines.append("```")
|
||||
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def main():
|
||||
import argparse
|
||||
parser = argparse.ArgumentParser(description="Generate contributor data")
|
||||
parser.add_argument("--markdown", action="store_true", help="Output markdown instead of JSON")
|
||||
parser.add_argument("--limit", type=int, default=50, help="Max contributors to include")
|
||||
parser.add_argument("--with-names", action="store_true", help="Fetch real names (slower)")
|
||||
args = parser.parse_args()
|
||||
|
||||
contributors = fetch_contributors(limit=args.limit)
|
||||
|
||||
if args.with_names:
|
||||
contributors = fetch_user_names(contributors)
|
||||
|
||||
if args.markdown:
|
||||
print(generate_markdown(contributors))
|
||||
else:
|
||||
print(generate_json(contributors))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
306
tinytorch/site/team.md
Normal file
306
tinytorch/site/team.md
Normal file
@@ -0,0 +1,306 @@
|
||||
# Team
|
||||
|
||||
**Meet the people building TinyTorch.**
|
||||
|
||||
TinyTorch is built by a passionate community dedicated to making ML systems education accessible to everyone.
|
||||
|
||||
```{raw} html
|
||||
<style>
|
||||
.team-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
|
||||
gap: 1.5rem;
|
||||
margin: 2rem 0;
|
||||
}
|
||||
.team-member {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
transition: transform 0.15s;
|
||||
}
|
||||
.team-member:hover {
|
||||
transform: translateY(-4px);
|
||||
}
|
||||
.team-member img {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
border-radius: 50%;
|
||||
border: 3px solid #e5e7eb;
|
||||
transition: border-color 0.2s;
|
||||
}
|
||||
.team-member:hover img {
|
||||
border-color: #f97316;
|
||||
}
|
||||
.team-member .name {
|
||||
font-size: 0.85rem;
|
||||
font-weight: 600;
|
||||
margin-top: 0.75rem;
|
||||
text-align: center;
|
||||
}
|
||||
.team-member .roles {
|
||||
font-size: 0.75rem;
|
||||
margin-top: 0.25rem;
|
||||
opacity: 0.8;
|
||||
}
|
||||
.team-lead {
|
||||
grid-column: 1 / -1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 1.5rem;
|
||||
padding: 1.5rem 2rem;
|
||||
background: linear-gradient(135deg, #fff7ed 0%, #ffedd5 100%);
|
||||
border: 2px solid #fed7aa;
|
||||
border-radius: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
.team-lead img {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
border-radius: 50%;
|
||||
border: 4px solid #f97316;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.team-lead .info {
|
||||
flex: 1;
|
||||
}
|
||||
.team-lead .name {
|
||||
font-size: 1.35rem;
|
||||
font-weight: 700;
|
||||
color: #1f2937;
|
||||
}
|
||||
.team-lead .role {
|
||||
font-size: 1rem;
|
||||
color: #c2410c;
|
||||
margin-top: 0.25rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
.team-lead .bio {
|
||||
font-size: 0.9rem;
|
||||
color: #57534e;
|
||||
margin-top: 0.5rem;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.team-lead .roles {
|
||||
font-size: 0.85rem;
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
.role-legend {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.75rem 1.5rem;
|
||||
margin: 1.5rem 0;
|
||||
padding: 1rem 1.25rem;
|
||||
background: #f8fafc;
|
||||
border-radius: 0.75rem;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
.role-legend span {
|
||||
white-space: nowrap;
|
||||
}
|
||||
.staff-row {
|
||||
grid-column: 1 / -1;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 2.5rem;
|
||||
padding: 1rem 0;
|
||||
}
|
||||
.team-staff {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
transition: transform 0.15s;
|
||||
}
|
||||
.team-staff:hover {
|
||||
transform: translateY(-3px);
|
||||
}
|
||||
.team-staff img {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
border-radius: 50%;
|
||||
border: 2px solid #94a3b8;
|
||||
transition: border-color 0.15s;
|
||||
}
|
||||
.team-staff:hover img {
|
||||
border-color: #f97316;
|
||||
}
|
||||
.team-staff .name {
|
||||
font-size: 0.85rem;
|
||||
font-weight: 600;
|
||||
margin-top: 0.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
.team-staff .role {
|
||||
font-size: 0.7rem;
|
||||
color: #64748b;
|
||||
margin-top: 0.125rem;
|
||||
text-align: center;
|
||||
}
|
||||
.section-label {
|
||||
grid-column: 1 / -1;
|
||||
font-size: 0.75rem;
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.05em;
|
||||
color: #94a3b8;
|
||||
margin-top: 1rem;
|
||||
margin-bottom: -0.5rem;
|
||||
}
|
||||
@media (max-width: 600px) {
|
||||
.team-lead {
|
||||
flex-direction: column;
|
||||
text-align: center;
|
||||
padding: 1.25rem;
|
||||
}
|
||||
.team-lead img {
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.team-staff {
|
||||
padding: 0.75rem 1rem;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="role-legend">
|
||||
<span>🪲 Bug Hunter</span>
|
||||
<span>🧑💻 Code Warrior</span>
|
||||
<span>✍️ Documentation</span>
|
||||
<span>🎨 Design</span>
|
||||
<span>🧠 Ideas</span>
|
||||
<span>🔎 Reviewer</span>
|
||||
<span>🧪 Testing</span>
|
||||
<span>🛠️ Tooling</span>
|
||||
</div>
|
||||
|
||||
<div class="team-grid">
|
||||
<div class="team-lead">
|
||||
<a href="https://github.com/profvjreddi">
|
||||
<img src="https://avatars.githubusercontent.com/profvjreddi?v=4&s=200" alt="Vijay Janapa Reddi" />
|
||||
</a>
|
||||
<div class="info">
|
||||
<div class="name">Vijay Janapa Reddi</div>
|
||||
<div class="role">🤓 Nerdy Professor · Harvard University</div>
|
||||
<div class="bio">Gordon McKay Professor of Electrical Engineering at Harvard. Passionate about creating the next generation of AI engineers.</div>
|
||||
<div class="roles">🪲 🧑💻 🎨 ✍️ 🧠 🔎 🧪 🛠️</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="section-label">Community Staff</div>
|
||||
|
||||
<div class="staff-row">
|
||||
<a href="https://github.com/AndreaMattiaGaravagno" class="team-staff">
|
||||
<img src="https://avatars.githubusercontent.com/AndreaMattiaGaravagno?v=4&s=120" alt="Andrea Garavagno" />
|
||||
<div class="name">Andrea Garavagno</div>
|
||||
<div class="role">🧭 Tech Lead</div>
|
||||
</a>
|
||||
|
||||
<a href="#" class="team-staff">
|
||||
<img src="https://ui-avatars.com/api/?name=Kari+Janapareddi&background=f97316&color=fff&size=120" alt="Kari Janapareddi" />
|
||||
<div class="name">Kari Janapareddi</div>
|
||||
<div class="role">👑 Chief of Staff</div>
|
||||
</a>
|
||||
|
||||
<a href="https://github.com/kai4avaya" class="team-staff">
|
||||
<img src="https://avatars.githubusercontent.com/kai4avaya?v=4&s=120" alt="Kai Kleinbard" />
|
||||
<div class="name">Kai Kleinbard</div>
|
||||
<div class="role">🌐 Web Wizard</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="section-label">Contributors</div>
|
||||
<a href="https://github.com/minhdang26403" class="team-member">
|
||||
<img src="https://avatars.githubusercontent.com/minhdang26403?v=4&s=160" alt="Dang Truong" />
|
||||
<span class="name">Dang Truong</span>
|
||||
<span class="roles">🪲 🧑💻 ✍️ 🧪</span>
|
||||
</a>
|
||||
<a href="https://github.com/didier-durand" class="team-member">
|
||||
<img src="https://avatars.githubusercontent.com/didier-durand?v=4&s=160" alt="Didier Durand" />
|
||||
<span class="name">Didier Durand</span>
|
||||
<span class="roles">🪲 🧑💻 ✍️</span>
|
||||
</a>
|
||||
<a href="https://github.com/karthikdani" class="team-member">
|
||||
<img src="https://avatars.githubusercontent.com/karthikdani?v=4&s=160" alt="Karthik Dani" />
|
||||
<span class="name">Karthik Dani</span>
|
||||
<span class="roles">🪲 🧑💻</span>
|
||||
</a>
|
||||
<a href="https://github.com/avikde" class="team-member">
|
||||
<img src="https://avatars.githubusercontent.com/avikde?v=4&s=160" alt="Avik De" />
|
||||
<span class="name">Avik De</span>
|
||||
<span class="roles">🪲 🧪</span>
|
||||
</a>
|
||||
<a href="https://github.com/rnjema" class="team-member">
|
||||
<img src="https://avatars.githubusercontent.com/rnjema?v=4&s=160" alt="rnjema" />
|
||||
<span class="name">rnjema</span>
|
||||
<span class="roles">🧑💻 🛠️</span>
|
||||
</a>
|
||||
<a href="https://github.com/joeswagson" class="team-member">
|
||||
<img src="https://avatars.githubusercontent.com/joeswagson?v=4&s=160" alt="joeswagson" />
|
||||
<span class="name">joeswagson</span>
|
||||
<span class="roles">🧑💻 🛠️</span>
|
||||
</a>
|
||||
<a href="https://github.com/AmirAlasady" class="team-member">
|
||||
<img src="https://avatars.githubusercontent.com/AmirAlasady?v=4&s=160" alt="Amir Alasady" />
|
||||
<span class="name">Amir Alasady</span>
|
||||
<span class="roles">🪲</span>
|
||||
</a>
|
||||
<a href="https://github.com/jettythek" class="team-member">
|
||||
<img src="https://avatars.githubusercontent.com/jettythek?v=4&s=160" alt="jettythek" />
|
||||
<span class="name">jettythek</span>
|
||||
<span class="roles">🧑💻</span>
|
||||
</a>
|
||||
<a href="https://github.com/Takosaga" class="team-member">
|
||||
<img src="https://avatars.githubusercontent.com/Takosaga?v=4&s=160" alt="Takosaga" />
|
||||
<span class="name">Takosaga</span>
|
||||
<span class="roles">🪲</span>
|
||||
</a>
|
||||
<a href="https://github.com/wz1114841863" class="team-member">
|
||||
<img src="https://avatars.githubusercontent.com/wz1114841863?v=4&s=160" alt="wzz" />
|
||||
<span class="name">wzz</span>
|
||||
<span class="roles">🪲</span>
|
||||
</a>
|
||||
<a href="https://github.com/ngbolin" class="team-member">
|
||||
<img src="https://avatars.githubusercontent.com/ngbolin?v=4&s=160" alt="Ng Bo Lin" />
|
||||
<span class="name">Ng Bo Lin</span>
|
||||
<span class="roles">✍️</span>
|
||||
</a>
|
||||
<a href="https://github.com/keo-dara" class="team-member">
|
||||
<img src="https://avatars.githubusercontent.com/keo-dara?v=4&s=160" alt="keo-dara" />
|
||||
<span class="name">keo-dara</span>
|
||||
<span class="roles">🪲</span>
|
||||
</a>
|
||||
<a href="https://github.com/Kobra299" class="team-member">
|
||||
<img src="https://avatars.githubusercontent.com/Kobra299?v=4&s=160" alt="Wayne Norman" />
|
||||
<span class="name">Wayne Norman</span>
|
||||
<span class="roles">🪲</span>
|
||||
</a>
|
||||
<a href="https://github.com/lalalostcode" class="team-member">
|
||||
<img src="https://avatars.githubusercontent.com/lalalostcode?v=4&s=160" alt="Ilham Rafiqin" />
|
||||
<span class="name">Ilham Rafiqin</span>
|
||||
<span class="roles">🪲</span>
|
||||
</a>
|
||||
</div>
|
||||
```
|
||||
|
||||
## Join the Team
|
||||
|
||||
TinyTorch is open source and we welcome contributors of all experience levels!
|
||||
|
||||
**Ways to get involved:**
|
||||
|
||||
- 🪲 **Found a bug?** [Report it on GitHub](https://github.com/harvard-edge/cs249r_book/issues)
|
||||
- 💡 **Have an idea?** [Start a discussion](https://github.com/harvard-edge/cs249r_book/discussions)
|
||||
- 🧑💻 **Want to contribute code?** [See our contributing guide](https://github.com/harvard-edge/cs249r_book/blob/main/CONTRIBUTING.md)
|
||||
- ✍️ **Improve documentation?** Submit a pull request
|
||||
|
||||
**Get recognized:** Comment on any issue or PR with `@all-contributors please add @username for bug, code, doc, or ideas`
|
||||
|
||||
|
||||
## Contact
|
||||
|
||||
- **GitHub Issues**: [Report bugs or request features](https://github.com/harvard-edge/cs249r_book/issues)
|
||||
- **GitHub Discussions**: [Ask questions or share ideas](https://github.com/harvard-edge/cs249r_book/discussions)
|
||||
- **Project Lead**: [Prof. Vijay Janapa Reddi](https://scholar.harvard.edu/vijay-janapa-reddi) · Harvard University
|
||||
Reference in New Issue
Block a user