Internship program by the CryptOS team (cryptos.com)
The internship program consists of ~40 interns working across multiple parallel projects. Interns are organized into teams of 5–6 members, each working on a distinct project.
- 5–6 interns per team
- 1 Communicator (intern) per team
- Multiple teams working in parallel
- Independent projects per team
- Teams are assigned at the start of the program
- Teams work on different projects simultaneously
- Team membership is generally fixed for the duration
Communicators are interns who facilitate communication and manage team processes:
- Bridge communication — Relay information between team and program administrators
- Set up team communication — Decide how the team communicates (channels, standups, updates)
- Manage task workflow — Organize how the team tracks and manages tasks
- Coordinate team activities — Organize syncs and planning sessions
- Help with process questions — Point teammates to the right resources
Lightweight management: Communicators manage processes, not people. They organize how the team works together—this is part of the learning experience. You're still peers, just with a bit more organizational responsibility.
Communicators manage processes, but they do NOT:
- ❌ Evaluate team members' performance
- ❌ Provide performance feedback or reviews
- ❌ Make decisions about participation or removal
- ❌ Have special privileges in evaluation
- ❌ Have authority over people—they're still peers
Bottom line: You organize how the team works, but you don't manage people or evaluate performance. It's lightweight—focus on keeping things flowing smoothly.
- Initial selection: Communicators are selected randomly because we don't know team abilities yet
- Future projects: Communicators will be chosen based on performance
- You can always decline: If selected, you can choose not to be a Communicator—we'll select someone else
- Communicators are interns, not staff
- It's not overwhelming: The role is lightweight—you're organizing processes, not managing people
Teams are expected to:
- Ship together — Build features as a team
- Review PRs quickly — Don't block each other
- Help when stuck — Ask and answer questions fast
- Communicate progress — Keep everyone unblocked
- Share knowledge — Help teammates level up
Teams work independently:
- Separate repositories per team/project
- Independent backlogs and issue management
- Team-specific channels for communication
- Autonomous decision-making on implementation
- Teams may share:
- Best practices and learnings
- Common tools and resources
- General discussions in program-wide channels
- Teams generally work independently on their projects
Each team member is responsible for:
- Shipping assigned work — Complete issues you grab
- Reviewing PRs — Review teammates' code promptly
- Communicating progress — Keep team unblocked
- Asking for help — Don't sit stuck, ask immediately
- Documenting as you build — Keep docs current
Teams are collectively responsible for:
- Shipping features — Get things done
- Code that works — Ship, iterate, improve
- Documentation — Keep docs updated as you build
- Knowledge sharing — Help everyone ship faster
- Active communication — Keep channels moving
Communicators handle lightweight management of team processes:
- Communication structure — Set up how the team communicates (channels, standups, updates)
- Task management — Organize how tasks are tracked and managed
- Information relay — Bridge communication between team and program administrators
- Team coordination — Organize syncs and planning (optional, as needed)
- Process guidance — Help teammates find the right resources
Keep it simple: You're organizing how things work, not managing people. Focus on making communication smooth and tasks manageable. This is a learning opportunity—don't overthink it.
- Team channel — Primary communication for each team
- General channel — Program-wide discussions
- GitHub — Work-related discussions in Issues and PRs
- Daily updates — Share progress and blockers
- Code review participation — Review PRs promptly
- Proactive communication — Don't wait to be asked
- Respectful interaction — Professional communication always
- Grab issues that interest you
- Communicators determine how the team plans and manages tasks
- Track work in GitHub Issues (or method chosen by Communicator)
- Ship code on assigned issues
- Submit PRs for review
- Review teammates' PRs quickly
- Merge and move to the next issue
- Communicators determine team communication structure and coordination approach
- Regular syncs (if scheduled by Communicator) keep momentum
- Issues track progress—update them
- Team channels for quick coordination (structure determined by Communicator)
See WORKFLOW.md for detailed workflow guidelines.
If conflicts arise within a team:
- Address directly — Have a respectful conversation
- Focus on issues — Not personalities
- Seek help if needed — Escalate to program administrators
- Document if necessary — Keep records of important discussions
Remember: Communicators are peers who organize processes. If you have concerns:
- Discuss directly — Have a conversation
- Escalate if needed — Contact program administrators
- Focus on process — Not personal issues
Communicators manage processes, not people. They're here to help things run smoothly, not to evaluate or manage you.
- About team structure? → Read this document
- About Communicator role? → Ask your Communicator or program administrators
- About team dynamics? → Discuss in team channel
- About conflicts? → Escalate to program administrators
Remember: Teams ship when everyone contributes. Grab issues, ship code, review PRs, help teammates. Communicators facilitate communication, but everyone builds equally.