# 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