How can I create postgres users for employees that have limited access?
ALTER DEFAULT PRIVILEGES 
      FOR ROLE james
      IN SCHEMA public
      GRANT SELECT ON TABLES TO james;


This grants select on tables created by 'james', to 'james'.  Which is generally unnecessary, as the creator will usually be owner and will automatically have access.  You need to change first occurrence of 'james' to whoever it is that will be creating the new tables.

Also, you should probably change the last occurrence of 'james' to something like 'readonly' or 'developer', and than grant that role to 'james', rather than naming 'james' explicitly.