# ndnSIM Authors

The following lists maintainers, primary developers, and all much-appreciated contributors to ndnSIM in alphabetic order.
The specific contributions of individual authors can be obtained from the git history of the [official ndnSIM repository](https://github.com/named-data/ndnSIM).
If you would like to become a contributor to the official repository, please follow the recommendations in https://github.com/named-data/.github/blob/master/CONTRIBUTING.md.

* Jerald Paul Abraham <https://cs.arizona.edu/~jeraldabraham>
* ***(Maintainer)*** Alexander Afanasyev <https://users.cs.fiu.edu/~afanasyev>
* Syed Obaid Amin <http://obaidamin.weebly.com>
* Hila Ben Abraham <https://sites.wustl.edu/hbabraham>
* Chaoyi Bian <https://github.com/bcy>
* Tai-Lin Chu <https://www.linkedin.com/pub/tai-lin-chu/55/5b2/669>
* Chengyu Fan <https://github.com/chengyu>
* Yuanzhi Gao <https://github.com/gaoyuanzhi>
* Chavoosh Ghasemi <https://chavoosh.github.io>
* Giulio Grassi <https://www.lip6.fr/actualite/personnes-fiche.php?ident=D1461>
* Mohammad Hovaidi Ardestani
* Yi Huang <https://www.linkedin.com/in/yihuang1991>
* Xiaoke Jiang <http://netarchlab.tsinghua.edu.cn/~shock>
* Zhaoning Kong <https://jonnykong.com>
* Christian Kreuzberger <https://chkr.at>
* Vince Lehman <https://vslehman.com>
* Xinyu Ma <https://web.cs.ucla.edu/~xinyu.ma>
* ***(Former Maintainer)*** Spyridon Mastorakis <https://sites.google.com/site/spyridonmastorakis>
* ***(Former Maintainer)*** Ilya Moiseenko <https://www.linkedin.com/in/ilya-moiseenko-52884317>
* Saeid Montazeri
* Eric Newberry <https://ericnewberry.com>
* Davide Pesavento <https://github.com/Pesa>
* José Quevedo <http://atnog.av.it.pt/members/jquevedo>
* Felix Rabe <https://twitter.com/felixrabe>
* Mohammad Sabet <https://github.com/Mr-Norrell>
* Matteo Sammarco <https://www.linkedin.com/in/matteo-sammarco-9b544530>
* Klaus Schneider <https://cs.arizona.edu/~klaus>
* Wentao Shang <https://irl.cs.ucla.edu/~wentao>
* Junxiao Shi <https://www2.cs.arizona.edu/~shijunxiao>
* Michael Sweatt <https://www.linkedin.com/in/michaelsweatt>
* Saran Tarnoi <https://github.com/sarantarnoi>
* Xuxiang Tian <https://github.com/db-ol>
* Jiangzhe (Lucas) Wang <https://github.com/lucaswang>
* Cheng Yi <https://cs.arizona.edu/~yic>
* Yingdi Yu <https://irl.cs.ucla.edu/~yingdi>
* Haowei Yuan <https://github.com/hwyuan>
* Hang Zhang <http://netlab.bit.edu.cn/z_hang>
* Yu Zhang <https://github.com/YuZhang>
* Zongyi Zhao <https://github.com/xinshengzzy>

## Technical Advisors

* Lixia Zhang <https://web.cs.ucla.edu/~lixia>
