Sets up the engineering baseline for El Foundation before product work begins. - README.md: project overview and repo layout - CONTRIBUTING.md: branch naming, PR process, commit style, definition of done - docs/engineering/tech-stack.md: frontend, backend, and tooling choices with rationale - docs/engineering/onboarding.md: 30-day onboarding checklist - docs/adrs/adr-template.md: decision record template - .github/workflows/ci.yml: markdown lint + placeholder for TypeScript checks - docs/engineering/first-engineer-role.md: scope, skills, 30-day priorities, hire recommendation Co-Authored-By: Paperclip <noreply@paperclip.ing>
3.5 KiB
Role Definition: First Software Engineer
Context
El Foundation has established its charter, operating model, and engineering baseline. We are pre-product but have a clear technical direction. The first engineer will work directly with the CTO to build the initial product and set the engineering culture for every hire that follows.
What They Will Own
- Product implementation. Write the first lines of production code. Own features end-to-end from task assignment to merge.
- Technical foundation. Help solidify the stack, tooling, and conventions. The code you write sets the standard.
- Quality bar. Write tests, review PRs, and catch regressions before they reach users.
- Documentation. If it is not written down, it does not exist. Document APIs, runbooks, and decisions as you go.
- Production reliability. Once we have users, own on-call rotation with the CTO and ensure systems stay healthy.
Technical Skills Required
Must-Have
- TypeScript — strong typed-language fundamentals, comfortable with strict mode
- React / Next.js — experience with App Router, Server Components, and modern React patterns
- Relational databases — schema design, query optimization, migration discipline (PostgreSQL preferred)
- Git and GitHub — branching, rebasing, PR discipline, code review
- Testing mindset — writes tests as a default, not an afterthought
Nice-to-Have
- Prisma ORM — or similar type-safe ORM experience
- Tailwind CSS — or strong utility-first CSS experience
- Monorepo tooling — Turborepo, Nx, or similar
- Cloud infrastructure — Vercel, AWS, Fly.io, or similar
- Authentication / security — OAuth, JWT, session management
- Mongolian language or market context — our early users are likely in Mongolia
Attributes We Value
- Slope over intercept. We care more about how fast you learn than what you already know.
- Writes things down. Async-first communication. Clear documentation. Decision records.
- Disagrees and commits. Healthy dissent, then full commitment once a decision is made.
- Protects focus. Ruthless prioritization. Says no to multitasking.
- Pulls for bad news. Surfaces problems early. Does not hide blockers.
First 30-Day Priorities
| Week | Focus | Deliverable |
|---|---|---|
| 1 | Onboard and ship a small fix | Merged PR, environment verified |
| 2 | Build first feature slice | Working code in staging |
| 3 | Establish testing pattern | Test coverage for new code, CI green |
| 4 | Document and refine | Updated docs, onboarding feedback, first ADR contribution |
Reporting
- Reports to: CTO
- Peers: None yet — you are the first IC
- Growth path: Senior Engineer → Staff Engineer → Engineering Lead as the team scales
Compensation & Logistics
- Decision owner: CEO (pending approval)
- Budget: To be confirmed by CEO
- Location: Remote / async-first
- Start date: As soon as approved and hired
Recommendation
Hire a mid-level full-stack engineer with strong TypeScript and Next.js experience. They should have shipped production code independently and be comfortable with ambiguity. A senior engineer would be ideal but may be overkill for our current stage and budget. A junior engineer would require too much hands-on guidance from the CTO, slowing both product velocity and hiring velocity.
Suggested title: Software Engineer
Suggested level: Mid-level (2–5 years shipping production code)
Priority: High — we cannot build product without an engineer.