# This is the list of SkyWater PDK's significant contributors.
#
# This does not necessarily list everyone who has contributed code,
# especially since many employees of one corporation may be contributing.
# To see the full list of contributors, see the revision history in
# source control.

# Companies
Google LLC
SkyWater Technology Foundry
CoolCAD Electronics LLC

# Individuals
tansell@google.com, me@mith.ro (Tim 'mithro' Ansell)
steve.kosier@skywatertechnology.com (Steve Kosier)
akin.akturk@coolcadelectronics.com (Akin Akturk)
