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>
71 lines
3.5 KiB
Markdown
71 lines
3.5 KiB
Markdown
# 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.
|