# ndncert Authors

The following lists maintainers, primary developers, and all much-appreciated contributors to ndncert in alphabetic order.
The specific contributions of individual authors can be obtained from the git history of the [official ndncert repository](https://github.com/named-data/ndncert).
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.

* Alexander Afanasyev <https://users.cs.fiu.edu/~afanasyev/>
* Ashlesh Gawande <https://www.linkedin.com/in/agawande>
* Eric Newberry <https://ericnewberry.com>
* Davide Pesavento <https://github.com/Pesa>
* Md Ashiqur Rahman <https://ashiqrahman.com>
* Junxiao Shi <https://cs.arizona.edu/~shijunxiao>
* Yufeng Zhang <https://yufengzh.io>
* ***(Maintainer)*** Zhiyi Zhang <https://zhiyi-zhang.com>

# Technical Advisors

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