﻿# This is the official list of people who can contribute
# (and who have contributed) code to the ANGLE project
# repository.
# The AUTHORS file lists the copyright holders; this file
# lists people.  For example, Google employees are listed here
# but not in AUTHORS, because Google holds the copyright.
#

TransGaming Inc.
 Nicolas Capens
 Daniel Koch
 Geoff Lang
 Andrew Lewycky
 Jamie Madill
 Gavriel State
 Shannon Woods

Google Inc.
 Brent Austin
 Michael Bai
 John Bauman
 Peter Beverloo
 Eric Binet
 Steve Block
 Rachel Blum
 Eric Boren
 Henry Bridge
 Victor Costan
 James Dong
 Nat Duca
 Courtney Goeltzenleuchter
 Tobin Ehlis
 Ian Elliott
 Scott Graham
 Peter Kasting
 Vangelis Kokkevis
 Charlie Lao
 Jiacheng Lu
 Zhenyao Mo
 Daniel Nicoara
 Kai Ninomiya
 Cody Northrop
 Alastair Patrick
 Alok Priyadarshi
 Kenneth Russell
 Jonah Ryan-Davis
 Brian Salomon
 Justin Schuh
 Gregg Tavares
 thestig@chromium.org
 Jeff Timanus
 Tim Van Patten
 Ben Vanik
 Adrienne Walker
 Corentin Wallez
 Shahbaz Youssefi

Adobe Systems Inc.
 Alexandru Chiculita
 Steve Minns
 Max Vujovic

Autodesk, Inc.
 Ranger Harke

Cloud Party, Inc.
 Conor Dickinson

The Qt Company Ltd.
 Andrew Knight

Imagination Technologies Ltd.
 Gregoire Payen de La Garanderie
 Kyle Griffiths

Intel Corporation
 Jin Yang
 Andy Chen
 Josh Triplett
 Sudarsana Nagineni
 Jiajia Qin
 Jiawei Shao
 Jie Chen
 Qiankun Miao
 Bryan Bernhart
 Yunchao He
 Xinghua Cao
 Brandon Jones
 Enrico Galli

Klarälvdalens Datakonsult AB
 Milian Wolff

Mozilla Corp.
 Dzmitry Malyshau
 Ehsan Akhgari
 Edwin Flores
 Jeff Gilbert
 Mike Hommey
 Benoit Jacob
 Makoto Kato
 Vladimir Vukicevic
 Josh Matthews

Turbulenz
 Michael Braithwaite

Ulrik Persson (ddefrostt)
Mark Banner (standard8mbp)
David Kilzer
Jacek Caban
Tibor den Ouden
Régis Fénéon
Sebastian Bergstein
James Ross-Gowan
Andrei Volykhin
Jérôme Duval
Till Rathmann
Nick Shaforostov

Microsoft Corporation
 Cooper Partin
 Austin Kinross
 Mingyu Hu
 Minmin Gong
 Shawn Hargreaves
 Rafael Cintron
 James Clarke
 Nathan Zabriskie
 Patrick To

Microsoft Open Technologies, Inc.
 Cooper Partin
 Austin Kinross

NVIDIA Corporation
 Olli Etuaho
 Arun Patole
 Qingqing Deng
 Kimmo Kinnunen
 Sami Väisänen
 Martin Radev
 Joonatan Saarhelo
 Markus Tavenrath
 Anders Leino

Opera Software ASA
 Daniel Bratell
 Tomasz Moniuszko
 David Landell

Advanced Micro Devices, Inc.
 Russ Lind

LG Electronics, Inc.
 Jani Hautakangas

IBM Inc.
 Junliang Yan

AdaptVis GmbH
 Sascha Kolodzey

Samsung Electronics, Inc.
 Brandon Schade
 Colin Peter
 Hyunchang Kim
 Hyunseok Ko
 Jaedon Lee
 Jeff Vigil
 Kevin Jung
 Kyeongmin Kim
 Minkyu Jeong
 Mohan Maiya
 Peter Mowry
 Sangwon Park
 Saurabh Badenkal
 Younggwan Kim

Arm Ltd.
 Fei Yang
 Xinyi He
 Sunny Sun
 Xiaoxuan Liu
 Ancheng Qiao
 Amy Liu
 Jian Li

Broadcom Inc.
 Gary Sweet

Facebook, Inc.
 Artem Bolgar

The Khronos Group, Inc.
 Alexey Knyazev

Igalia, S.L.
 Jose Dapena Paz
