Thank you for helping keep this list accurate and up-to-date!
Contributions are welcome, even if this is your first pull request.
Please make sure the role you're contributing meets all of the following:
- ✅ A technology-focused internship
- ✅ Located in Singapore
- ✅ Not already listed (check for duplicates first)
Follow the steps below to add a new internship to the list.
Open README.md and edit only the table between these markers:
<!-- JOBS_TABLE_START --><!-- JOBS_TABLE_END -->
Always add new rows at the top of the table, immediately after this separator row:
|---|---|:---:|:---:|:---:|Do not change the table header or column order.
Copy the row below and replace the placeholders:
| [COMPANY_NAME](COMPANY_URL) | JOB_TITLE | - | JOB_APPLICATION_URL | YYYY-MM-DD |- Company must be a markdown link:
[Company Name](https://company.com) - Track must be exactly
- - Application must be a plain URL (no HTML, no buttons, no markdown)
- Date Added must be today's date in
YYYY-MM-DDformat
Newly added rows should remain simple markdown (links + text only) in your pull request — buttons are added automatically after merge.
How the README will look in your pull request:
| Company | Role | Track | Application | Date Added |
|---|---|:---:|:---:|:---:|
| [OpenAI](https://openai.com) | Software Engineer Intern | - | https://example.com/apply | 2026-01-14 |What will it look like after merge?
Rendered in your pull request:
| Company | Role | Track | Application | Date Added |
|---|---|---|---|---|
| OpenAI | Software Engineer Intern | - | https://example.com/apply | 2026-01-14 |
After merge (next resync):
| Company | Role | Track | Application | Date Added |
|---|---|---|---|---|
| OpenAI | Software Engineer Intern | - | 14 Jan 2026 |
If you're just adding a new role, you only need to care about Community Rows.
There are two types of rows in the table.
A row is a community row if the Track column is exactly -.
- ✅ Can be added, edited, or removed via pull requests
- ✅ Are the only type of row you should add in a pull request
Example row (community):
| Company | Role | Track | Application | Date Added |
|---|---|---|---|---|
| OpenAI | Software Engineer Intern | - | 14 Jan 2026 |
Rows where the Track column contains a Track button link
(e.g. a URL with didtheyghost.me/job/<uuid>) are managed by didtheyghost.me.
- ✅ You may edit Company, Role, or Application if information is inaccurate
- ✅ When editing, keep the button HTML intact; only update the URL/text
- ❌ Do not edit Track or Date Added
- ✅ You may remove the entire row if the role is closed or outdated; the database will be updated after merge
Example row (database-managed):
| Company | Role | Track | Application | Date Added |
|---|---|---|---|---|
| TikTok | Backend Software Engineer Intern (Privacy and Security) - 2026 Start (BS/MS) | 14 Jan 2026 |
This checklist is for self-review only — you do not need to include it in your pull request.
- I added the row at the top of the table
- Company is a markdown link
- Track is exactly
- - Application is a plain URL
- Date Added is in
YYYY-MM-DD - The role is tech-focused and in Singapore
- I did not edit the Track or Date Added columns
- I removed the entire row
If you're unsure about anything:
- Check existing community rows for examples
- Open an issue to ask a question
- Review any validation errors if your pull request fails
Thanks again for contributing!