I think the best way to handle this would be to normalize your model. The following will probably contain errors as I didn't try it, but the idea should be clear:
CREATE TABLE users (id INTEGER PRIMARY KEY, name VARCHAR(100) UNIQUE);
CREATE TABLE groups (id INTEGER PRIMARY KEY, name VARCHAR(100) UNIQUE);
CREATE TABLE user_group (
user INTEGER NOT NULL REFERENCES users,
group INTEGER NOT NULL REFERENCES groups);
CREATE UNIQUE INDEX user_group_unique ON user_group (user, group);
SELECT users.name
FROM user_group
INNER JOIN users ON user_group.user = users.id
INNER JOIN groups ON user_group.group = groups.id
WHERE groups.name = 'Engineering';
The resulting execution plan should be fairly efficient already; you can optimize still by indexing ON user_group(group), which allows an index_scan rather than a sequential_scan to find the members of a particular group.