# Case
Imagine that you are joining as a Senior engineer at Zehitomo.
Your first mission is to develop a new functionality whose release date is set to 3 months from now. Please describe the process, system and tech architecture and collaboration with stakeholders from now to the release.
## Requirements
- Administration interface for service provide1rs (eg. flower shop, coiffeur, etc.)
- Create/edit/publish/disable service opening
- Assignes budget for advertisement campaings (=> improving ranking position in service search result page)
- Track requests/revenue and ad campaigns related to service openings
- Please imagine that you will develop an independent functionality (=> development from scratch), but the functionality might rely on existing APIs
## Organization & team structure
- Sales & Growth organization
- Growth team
- Strategy for growing the business
- Success team
- Ineracts with existing customers
- Product & engineering organization
- Manager
- Allocates resources & budget, hiring, people management
- Product Owner
- Translates product roadmap into milestones/deliverables
- Prioritizes deliverables
- Tech lead
- Responsible for all tech related decisions (incl. dev process)
- Domain expert (SEO, B2B business)
- Gives advice/help related to domain knowledge
- Establish
- Technical Product manager
- Translate requirements
- Engineers
- 5 Backend and 3 Frontend engineers
- Work in small teams (3-4 person) based on assigned KPI or project
- QA
- Validate release, testing
- Designer
- Create mockups, CSS templates
## Tech stack
- Node.js
- Mongo DB
- React
- AWS
# Solution
-
## System architecture
Assumptions
- 1M service providers
- Not all of 1M may put ads, ~100K
- out of 100k not many may buy many coins, 10k may buy large amount of coins.
- multiple ads per provider
-
- CRUD on nodejs + mongodb + search
- ui/ux/ - react
- aws - dynamodb + ttl + balance of ad + sqs
- mongodb doc - service page -> ad campaigns/rev/req
## Process/Schedule/Milestones
- 1 frontend, 3 backend
- 3 milestones
- 1. implementation, mvp, working application - unit testing
- 2. testing, polishing, adding any features that we planned but didnt add in the previous milestone
- 3. testing extensively for edges, potential scaling issues, having some sort of beta
- --> working app at the end of 3. milestone