CVAIWriter

    సాఫ్ట్‌వేర్ ఇంజినీర్ఇంటర్వ్యూ సమాధానాలు

    సాధారణ ఇంటర్వ్యూ ప్రశ్నలు

    A.

    నా క్లిష్ట సాంకేతిక సమస్యల పరిష్కార దృష్టికోణం నేను ఇంజనీరింగ్ అనుభవంలో refinement చేసిన నిర్మితమైన ఫ్రేమ్‌వర్క్‌ను అనుసరిస్తుంది. దశ 1 — కోడింగ్ చేయేముందు స్పష్టత పొందండి. పరిమితులు, స్కేలు అవసరాలు, విజయం ప్రమాణాలు మరియు ఎడ్జ్ కేసులు ఏవో అవి అర్థం చేసుకోవడానికి నేను ప్రశ్నలు అడుగుతాను. తక్కువగా అర్థం చేసుకున్న సమస్య వల్ల తప్పు విషయం కోసం ఉత్తమ పరిష్కారాలు వస్తాయి. స్పష్టత వచ్చిన తర్వాత నేను: - సమస్యని చిన్న, స్వతంత్రంగా పరిష్కరించగల భాగాలుగా విభజిస్తాను - వర్తించే ఉన్న ప్యాటర్న్లు, లైబ్రరీస్ లేదా ప్రీసిడెంట్లు గుర్తిస్తాను - ఏ కోడ్ రాస్తే ముందే కాగితంపై లేదా వైట్‌బోర్డ్‌పై హై-లెవల్ డిజైన్ స్కెచ్ చేస్తాను - అమలు ముందు లాజిక్ పరిశీలించడానికి pseudocode వ్రాస్తాను - ప్రతి దశలో పరీక్షలు నిర్వహిస్తూ అల్పస్థాయిలో అమలు చేస్తాను నిజ ఉదాహరణ: మా API ప్రతిస్పందనా కాలాన్ని 2.4 సెకన్ల నుండి 500ms కంటే తక్కువ చేయాలని బాధ్యత బాధించినప్పుడు, నేను వెంటనే ఆప్టిమైజ్ చేయలేదు. నేను పూర్తి రిక్వెస్ట్ లైఫ్‌సైకిల్‌ను ప్రొఫైల్ చేసి 80% లేటెన్సీ మూడు N+1 డేటాబేస్ ప్రశ్నలకే చెందినదని కనుగొన్నాను. వాటిని సరి చేసిన వెంటనే అప్లికేషన్ లేయర్‌ను తాకకుండా ప్రతిస్పందన సమయం 340ms కి పడిపోయింది. నా నిబంధన: మంచి సాఫ్ట్‌వేర్ ఇంజనీరింగ్ 60% ఆలోచించడం మరియు 40% టైపింగ్. అమలు చేసిన తర్వాత, నేను మౌలిక అవసరాల మేరకు వీలుగా ధృవీకరిస్తాను, పీర్ రివ్యూ నిర్వహిస్తాను, మరియు జట్టు కోసం ప్రధాన నిర్ణయాలను డాక్యుమెంట్ చేస్తాను. క్లిష్ట సమస్యలు నేర్చుకునే అవకాశాలుగా ఉంటాయి — నేను తర్వాతి సారి ఎలా భిన్నంగా చేస్తాననీ నమోదు చేయడానికి సంక్షిప్త post-mortems వ్రాస్తాను.

    A.

    టీమ్‌లో కోడ్ నాణ్యత ఒక వ్యక్తిగత సమస్య కాదని వ్యవస్థాత్మక నష్టం. నా దృష్టికోణం జర్నల్ మూడు స్థాయిల్లో పనిచేస్తుంది: ప్రొసెస్, టూలింగ్ మరియు కల్చర్. ప్రొసెస్: - ప్రతి pull request కోసం తప్పనిసరి పీర్ రివ్యూ — సీనియర్ ఇంజనీర్లకైనా మినహాయింపు లేదు - సమీక్షలు స్పష్టమైనవి మరియు నిర్మాణాత్మకమైనవి ఉండాలి, కేవలం ఆమోదాలుగా కాకుండా: "ఈ లూప్ O(n²) — దీన్ని O(n)కి ఎలా తగ్గించాలో ఇది" - అవసరమైతే Test-driven development; కనీసంగా కోడ్‌తో పాటు టెస్టులు వ్రాయడం, వాటిని తరువాతలో చేయడం కాదు - ఉత్పత్తిలో ఏదైనా బగ్ వచ్చినప్పుడు post-incident reviews ద్వారా భాగస్వామ్య జ్ఞానాన్ని నిర్మించడం టూలింగ్: - CI లో లింటర్లు (ESLint, Pylint) మరియు ఫార్మాటర్లు (Prettier, Black) అమలులో ఉంచడం — స్టైల్ చర్చలు వెంటనే消 disappear - పైప్‌లైన్‌లో స్టాటిక్ అనాలిసిస్ మరియు సెక్యూరిటీ స్కానింగ్ (SonarQube, Snyk) - యూనిట్ టెస్ట్ కవరేజ్ అగ్గి: ఒప్పుకున్న కనిష్టం కంటే దిగితే build ఫెయిలవుతుంది నిజ ఉదాహరణ: నా పూర్వ కంపెనీలో ఉత్పత్తిలో బగ్స్ రేటు 23% ఉండేది. నేను తప్పనిసరి PR సమీక్షలను ఒక రివ్యూ చెక్లిస్ట్‌తో పరిచయం చేయగలిగాను, ESLint మరియు pre-commit హుక్ జోడించాను, మరియు testable code గురించి సెషన్ నిర్వహించాను. రెండు sprintల్లోనే మా బగ్ రేటు 7%కి తగ్గిపోయింది మరియు deploy ఫ్రీక్వెన్సీ పెరిగింది. సాంస్కృతిక అంశం కూడా సమానంగా ముఖ్యం — నేను కోడ్ రివ్యూ ని విమర్శగా కాకుండా మెంటరింగ్‌గా ఫ్రేమ్ చేస్తాను, దీన్ని ఇంజనీర్లు రక్షణాత్మకంగా కాకుండా ఆమోదపూర్వకంగా తీసుకుంటారు.

    A.

    లెగసీ కోడ్ రీఫాక్టర్ ఒక అత్యధిక-పరిస్కార రిస్క్, కానీ అత్యధికారమైన-రివార్డు కార్యకలాపం. నా దృష్టికోణం వేగం కన్నా భద్రతను ప్రాధాన్యంగా ఇస్తుంది. పరిస్థితి: నేను చేరినప్పుడు జట్టు 7 సంవత్సరాల వ్యవధికి చెందిన ఒక మోనోలిత్‌ను నిర్వహించుతోంది — జీరో టెస్ట్ కవరేజ్, మాడ్యూల్‌ల మధ్య భారీ coupling, మరియు డాక్యుమెంటేషన్ లేదు. ప్రతీ మార్పు అనుకోని ఒక్క సందేహాన్ని పుట్టిపెట్టేది. నా విధానం: - Characterisation tests మొదట — ఏవైనా మార్పులు చేయకముందే, నేనే ప్రస్తుత (కొన్నిసార్లు తప్పు) ప్రవర్తనను పట్టుకునే టెస్టులు వ్రేశాను. ఇది ఒక భద్రతా నెట్‌ను సృష్టించింది. - Strangler Fig ప్యాటర్న్ — "big bang" రీరైట్ను కాకుండా, ఒకసారి ఒక మాడ్యూల్‌ను మార్చి సిస్టమ్‌ను ఉత్పత్తిలో రన్ చేయడంతోనే ప్రతిస్థాపించాను - Architecture Decision Records (ADRs) — ప్రతి ప్రధాన నిర్ణయం మరియు దాని కారణాన్ని డాక్యుమెంట్ చేయాని, అలాగే జట్టు మార్పుల వెనుక ఉన్న "ఎందుకు" అర్థం చేసుకోవాలని చేశాను - Feature flags — కొత్త అమలులు ఫ్లాగ్స్ వెనుక నడిచి, సమస్యలు వచ్చినప్పుడు తక్షణం రోల్‌బ్యాక్ చేయగలిగేలా చేశాను ఫలితం: ఆరు నెలల్లోనే మేము 0% నుంచి 75% టెస్ట్ కవరేజ్ కి వెళ్లాము, సగటు deploy సమయం 45 నిమిషాల నుంచి 8 నిమిషాలకు తగ్గిందీ, మరియు రెండు తరగతుల పునరావృత ఉత్పత్తి బగ్స్ తొలగించబడ్డాయి. రీఫాక్టర్ సమయంలో ఎటువంటి అనుకోని డౌన్‌టైమ్ లేదు. కీలక పాఠం: రీఫాక్టరింగ్‌ను ఒక్క సారి చేసే ప్రాజెక్ట్ కాకుండా కొనసాగుతున్న శార్టంగా తీసుకోండి. ప్రతి స్ప్రింట్‌కు 20% టెక్నికల్ డెబ్ట్ తగ్గింపుకు కేటాయించడమనం కంటిన్యూల్‌గా కోడ్‌బేస్‌ను బాధ్యతగా ఆరోగ్యంగా మార్చింది.

    A.

    అప్డేట్‌గా ఉండటం ఒక కెరీర్ క్రమశిక్షణ — కానీ "shiny object syndrome" నివారించడం కూడా ఒక క్రమశిక్షణ. నా మనస్తత్వం నేర్చుకోవటానికి మరియు విమర్శనాత్మకంగా మూల్యాంకనం చేయటానికి సమతౌల్యం కలిగిస్తుంది. నా నిత్య మూలాలు: - ఇంజనీరింగ్ బ్లాగులు: Spotify Engineering, Netflix Tech Blog, GitHub Engineering — ఇవి స్కేల్ వద్ద నిజమైన నిర్ణయాలను కవర్ చేస్తాయి - పోडकాస్ట్‌లు: Software Engineering Daily, Changelog, మరియు The Stack Overflow Podcast కమ్యూట్ సమయంలో - నేను వృత్తిపరంగా ఉపయోగించే భాషలు మరియు ఫ్రేమ్‌వర్క్‌లకు సంబంధించిన RFC మరియు ప్రపోజల్ చర్చలు - నా కోర్ స్టాక్‌కు సంబంధించిన GitHub trending రిపోజిటరీలు మరియు రీలీజ్ నోట్స్ (సాప్తాహికంగా) నాకు కొత్త టెక్నాలజీని ఎలా మూల్యాంకనం చేస్తాను: - పనికి ముందు చిన్న సైడ్ ప్రాజెక్ట్ నిర్మించాలి — వాస్తవ వినియోగం బ్లాగ్ పోస్టులు చెప్పని పరిమితులను బయటపెడుతుంది - కమ్యూనిటీ హెల్త్ తనిఖీ చేయండి: GitHub పై activity, Stack Overflow సమాధానాలు, కార్పొరేట్ బ్యాకర్స్, మరియు బ్రేకింగ్ చేంజ్ ఫ్రీక్వెన్సీ - అడగాలి: ఇది మనకు వాస్తవంగా ఉన్న సమస్యని పరిష్కరిస్తుందా, లేక కేవలం ఆసక్తికరమైన సమస్య మాత్రమేనా? ఉదాహరణ: edge computing ట్రెండ్ వచ్చేటప్పుడు, నేను Cloudflare Workers తో ఒక చిన్న డెమో బిల్డ్ చేయడానికి వారాంతం గడిపాను ముందు మునుపటే దీన్ని మా CDN క్యాచింగ్ లేయర్‌కి ప్రతిపాదించాక. హ్యాండ్స్-ఆన్ సమయంలో ఒక కీలక పరిమితి బయటపడింది — మా అంతర్గత auth సర్వీస్‌కు యాక్సస్ లేదు — ఇది ప్రొడక్షన్‌కు కమిట్ చేసిన తరువాతనే వారాల వరకూ గుర్తించే విషయం అయితేం. నేను కూడా జట్టుతో చొప్పున త్రైమాసికంగా "tech radar" సెషన్లను నిర్వహించి టెక్నాలజీలను adopt, trial, assess, లేదా hold గా వర్గీకరిస్తాను.

    A.

    REST మరియు GraphQL రెండూ HTTP పై డేటాను ఎక్స్‌పోజ్ చేయడం అనే ప్రాథమిక సమస్యను పరిష్కరిస్తాయి — కానీ అవి చాలా భిన్నమైన ట్రేడ్-ఆఫ్స్ చేస్తాయి. REST (Representational State Transfer): - రిసోర్స్-ఆధారిత ఎండ్‌పాయింట్లు: GET /users/42, POST /orders - రెస్పాన్స్‌లు సర్వర్ నిర్వచిస్తాయి — క్లయింట్‌కు సర్వర్ నిర్ణయించినది వస్తుంది - అద్భుతమైన HTTP కాచింగ్ మద్దతు (ETags, Cache-Control హెడ్డర్లు సహజంగా పనిచేస్తాయి) - అర్థం చేసుకోవడానికి, డాక్యుమెంట్ చేయడానికి (OpenAPI/Swagger) మరియు పరీక్షించడానికి సరళం - ఓవర్-ఫెచింగ్ (చాలా డేటా) లేదా అండర్-ఫెచింగ్ (చానల్ని బహుశా పలు రిక్వెస్టులు అవసరం) సమస్యలు ఉండొచ్చు GraphQL: - ఒక్కే ఎండ్‌పాయింట్; క్లయింట్లు అవసరమైన ఫీల్డ్స్‌ను ఖచ్చితంగా నిర్వచిస్తాయి - ఒక్కడే ఓవర్-ఫెచింగ్ మరియు అండర్-ఫెచింగ్ సమస్యలను తొలగిస్తుంది - బలమైన టైప్‌స్కీమా జీవిస్తోంటే డాక్యుమెంటేషన్‌గా పనిచేస్తుంది - HTTP కాచింగ్ కష్టం — క్వెరీ-లెవల్ క్యాషింగ్ లేదా persisted queries అవసరం - ప్రారంభ సెటప్ ఖర్చు ఎక్కువ; N+1 క్వెరీ సమస్యలను DataLoader వంటి ప్యాటర్న్లు ఉపయోగించి పరిష్కరించాలి నేను ఎప్పుడు ఏదిని ఎంచుకుంటాను: - REST: సాదాసీదా CRUD, పబ్లిక్ APIs, బాగా నిర్వచించిన కాంట్రాక్ట్స్ ఉన్న మైక్రోసర్వీసులు, మరియు క్యాచింగ్ అత్యవసరమైనప్పుడు - GraphQL: ఫ్రאַקט్ క్లయింట్లు (మొబైల్) payload పరిమాణాన్ని తగ్గించుకోవాలనుకుంటే, వివిధ మూలాధారాల డేటా అవసరమయ్యే డాష్బోర్డాలు, BFF (Backend for Frontend) ప్యాటర్న్స్, ఫ్రంట్‌‌ఎండ్ డేటా అవసరాలు తరచూ మారే వేగవంతమైన ఉత్పత్తి iteration నిజ నిర్ణయం: మా మొబైల్ యాప్ కోసం REST నుండి GraphQL కి మారినప్పుడు, సాధారణ payload పరిమాణం 62% తగ్గి 3G నెట్‌వర్క్‌లపై పేజ్ లోడ్ సమయం 1.1నివిగలు తగిలింది — ఇది మా లక్ష్య మార్కెట్ అయిన అభివృద్ధి చెందుతున్న మార్కెట్లలో ముఖ్యమైన UX మెరుగుదల.

    A.

    ఉత్పత్తిలో పర్ఫార్మెన్స్ సమస్యలను బాగా నిర్వహించడం అంటే సమస్యలు తలెత్తే ముందు observability ఇన్‌‌ఫ్రాస్ట్రక్చర్ కలిగి ఉండటం మరియు సమస్య వచ్చినప్పుడు క్లియర్ డయాగ్నోస్టిక్ ప్రక్రియ ఉండటం. సమస్యకు ముందు — ఇన్స్ట్రుమెంటేషన్: - డిస్ట్రిబ్యూటెడ్ ట్రేసింగ్ (Jaeger లేదా AWS X-Ray) సేవా బౌండరీలపై లేటెన్సీ ట్రాక్ చేయడానికి - APM టూలింగ్ (Datadog లేదా New Relic) అప్లికేషన్-లెవల్ మ్యాట్రిక్స్ మరియు ఎర్రర్ రేట్స్ కోసం - రిక్వెస్ట్ IDsతో స్ట్రక్చర్డ్ లాగింగ్, ఒకే యూజర్ జర్నీని సిస్టమ్‌లో ట్రేస్ చేయడానికి - SLOs (Service Level Objectives) మరియు అలెర్టింగ్ — వినియోగదారులు ఫిర్యాదు చేయకముందే degradation గురించి తెలుసుకునేలా పర్ఫార్మెన్స్ సమస్య వస్తే: - ముందుగా పునఃసృష్టి చేయండి — ప్రొడక్షన్లో రీప్రొడ్యూసబుల్ టెస్ట్‌కేసు లేకుండా ఆప్టిమైజ్ చేయవద్దు - ఊహించి పని చేయొద్దు — ప్రొఫైల్ చెయ్యండి; నిజమైన బాటిల్నెక్ సాధారణంగా నేను ఊహించిన చోటే ఉండదు. సాధారణ కారణాలు: N+1 క్వెరీస్, లేకపోయే DB ఇండెక్సులు, synchronous I/O async కోడ్‌ను బ్లాక్ చేయడం, మెమరీ లీక్స్ వల్ల GC ఒత్తిడి - లక్ష్యకారణాన్ని సరి చేయండి — లక్షణాన్ని కవర్ చేసే క్యాష్ పెడితే కన్నా 5× వేగంగా ఉన్న query చేయగలగాలి - మ్యాట్రిక్స్‌తో ధృవీకరించండి — డిప్లాయ్ చేసి సమస్యను కనిపెట్టిన డాష్‌బోర్డ్స్‌తోనే ఫిక్స్‌ను నిర్ధారించండి ఉదాహరణ: ఒక checkout API సేల్ సందర్భంగా P99 లేటెన్సీ 4 సెకన్లకు పెరిగింది. ట్రేసింగ్ ఒకే ORM మెథడ్ ప్రతీ రిక్వెస్ట్‌కు 147 SQL క్వెరీస్ (N+1 మనిప్యులేషన్) జెనరేట్ చేస్తోందని కనుగొన్నది. eager loading జోడించడంతో P99 180ms కి పడిపోయింది. ఫిక్స్ మూడు లైన్ల కోడ్ మాత్రమే — కానీ ప్రొఫైలింగ్ తప్పకుండా అవసరం. ఘట్టు అనంతరం, నేను టైంలైన్, రూట్ కారణం, మరియు పునరావృతం కాకుండా ఉండేందుకు చర్య అంశాలతో blameless post-mortem రాస్తాను.

    A.

    నా క్లౌడ్ అనుభవం ప్రధానంగా AWS పై ఉంది, నిర్దిష్ట వర్క్‌లో GCP మరియు Azureకి పరిచయం ఉంది. నేను ఇన్ఫ్రాస్ట్రక్చర్-అజ్-కోడ్ మొదటి మనోభావంతో పని చేస్తాను — ఇది వర్షన్ కంట్రోల్‌లో లేకపోతే అది లేనట్లు భావిస్తాను. నేను తరచుగా ఉపయోగించే AWS సేవలు: - కంప్యూట్: EC2 (కొనిచేసేందుకు Spot ద్వారా ఖర్చు ఆప్టిమైజేషన్), ECS/EKS కంటైనర్ ఆర్కెస్ట్రేషన్ కోసం, Lambda ఈవెంట్-డ్రీవన్ వర్క్‌లోడ్స్ కోసం - స్టోరేజ్ & డేటాబేసులు: RDS (PostgreSQL, Aurora), DynamoDB తక్కువ-లేటెన్సీ కీ-వాల్యూ యాక్సెస్ కోసం, S3 lifecycle పాలసీలతో, ElastiCache (Redis) - నెట్‌వర్కింగ్ & డెలివరీ: ALB, CloudFront CDN, Route 53, VPC డిజైన్ ప్రైవేట్ సబ్‌నెట్స్ మరియు NAT గేట్‌వేలతో - ఆబ్జర్వబిలిటీ: CloudWatch మెట్రిక్స్, అలార్మ్స్, మరియు లాగ్ ఇన్సైట్‌లు; X-Ray డిస్ట్రిబ్యూటెడ్ ట్రేసింగ్ కోసం నేను ఇన్ఫ్రాస్ట్రక్చర్‌ను ఎలా 접근ిస్తాను: - అన్ని ఇన్ఫ్రాస్ట్రక్చర్ కోసం Terraform — రీయూసబుల్ కాంపోనెంట్స్ కోసం మాడ్యూల్స్, S3లో రిమోట్ స్టేట్ మరియు DynamoDB లాకింగ్ - CI/CD GitHub Actions లేదా Jenkins తో — ఆటోమెటెడ్ టెస్టింగ్, స్టేజింగ్ డిప్లాయ్‌లు, మరియు ప్రొడక్షన్ ప్రమోషన్ గేట్లు - స్థిరమైన తనం కోసం Docker; EKS లేదా ECS ఆర్కెస్ట్రేషన్ జట్టు పరిచయాన్ని ఆధారపడి - IAM కు తక్కువ అధికారం స 원్సరంగా — roles, not users; ఎక్కడా హార్డ్‌కోడ్ చేయబడిన క్రెడెన్షియల్స్ ఉండకూడదు ఉదాహరణ: నేను ఒక ఫిన్‌టెక్ క్లయింట్ కోసం మల్టీ-రిజియన్ యాక్టివ్-పాసివ్ సెటప్ ఆర్కిటెక్ట్ చేశా, RPO 15 నిమిషాలు మరియు RTO 30 నిమిషాల అవసరంతో. Aurora Global Database, క్రాస్-రీజియన్ S3 రిప్లికేషన్, మరియు Route 53 హెల్త్-చెక్-అధారిత failover ఉపయోగించాను. మొత్తం అదనపు నెలవారీ ఖర్చు: £280, ఉదయంగా రోజు £2M ట్రాన్సాక్షన్లు ప్రాసెస్ చేసే సిస్టమ్ కోసం.

    A.

    హై-ట్రాఫిక్ కోసం సిస్టమ్ డిజైన్ అంటే ముందుగా బాటిల్నెక్స్‌ను అర్థం చేసుకోవడం మరియు consistency, availability మరియు cost మధ్య ప్రధానమైన ట్రేడ్-ఆఫ్స్ చేసుకోవడమే. నా ప్రక్రియ: - అవసరాలు సేకరించడం: అంచనా concurrent వాడుకదారులు, పీక్ QPS, పఠనం/రాయిట్ నిష్పత్తి, లేటెన్సీ SLOలు (P50/P99), কonsistency అవసరాలు, భౌగోళిక పంపిణీ - సామర్థ్యాన్ని అంచనా వేయండి: బాక్స్ డ్రా చేయక ముందు back-of-envelope గణనలు — పీక్ వద్ద ఎన్ని సర్వర్లు అవసరమవుతాయి? మా డేటాబేస్ రైట్ throughput ఎంత? - హొరిజాంటల్ స్కేల్ కోసం డిజైన్ చేయడం: లోడ్ బాలెన్సర్ వెనుక స్టేట్లెస్ అప్లికేషన్ సర్వర్లు, అందువల్ల ఏ సర్వర్ ఏ రిక్వెస్ట్‌ను హ్యాండిల్ చేయగలదు నేను సాధారణంగా ఉపయోగించే ప్యాటర్న్లు: - క్యాచింగ్: హాట్ డేటా కోసం Redis (సెషన్ స్థితి, తరచుగా పఠించబడే రికార్డులు), స్తాటిక్ ఆస్తుల కోసం CDN (CloudFront) — ఇది ఒరిజిన్ సర్వర్లను డైనమిక్ రిక్వెస్ట్‌ల కోసం ఉచితం చేస్తుంది - డేటాబేస్ స్కేలింగ్: పఠనం-భారంగా వర్కలొడ్‌లకు read replicas, కనెక్షన్ పూలింగ్ (PgBouncer), మరియు అత్యధిక స్కేల్‌కి షార్డింగ్ - అసింక్ ప్రాసెసింగ్: మెసేజ్ క్యూస్ (SQS, Kafka) భారమైన టాస్కులను అనుకూలంగా డికపుల్ చేస్తాయి — ఇమేజ్ ప్రాసెసింగ్, ఇమెయిల్స్, నోటిఫికేషన్లు — వాటిని రిక్వెస్ట్ సైకిల్ నుండి వేరు చేస్తుంది - సర్క్యూట్ బ్రేకర్స్ మరియు బల్క్‌హెడ్‌లు: ఒక డిపెండెన్సీ degrage అయినప్పుడు కాస్కేడ్ ఫెయిల్యూర్‌ని నిరోధించడానికి - గ్రేస్‌ఫుల్ డిగ్రేడ్: ఒక డౌన్‌స్ట్రీమ్ సర్వీస్ అందుబాటులో లేకపోతే సిస్టమ్ ఏమి చేయాలో నిర్వచించండి — స్టేల్ డేటాను అందించాలా? ఫీచర్‌ను డిసేబుల్ చేయాలా? సైలెంట్‌గా ఫెయిల్ కాకూడదు. ఉదాహరణ: 2 గంటల విండోలో 50,000 concurrent వాడుకదారులను హ్యాండిల్ చేయాల్సిన flash-sale సిస్టమ్ కోసం, నేను ప్రీ-వార్మ్డ్ Redis ఇన్వెంటరీ లేయర్ రూపొందించాను ఇది అన్ని పఠన ట్రాఫిక్‌ను గ్రహించింది, overselling నివారించడానికి purchase రిక్వెస్టుల కోసం write-ahead queue పెట్టాను, మరియు SQS క్యూలో డెప్త్ ఆధారంగా ట్రిగ్గర్ అయ్యే auto-scaling ECS టాస్క్‌లు ఏర్పాటు చేశాను. సిస్టమ్ ప్రాజెక్ట్ చేసిన పీక్ కంటే 3× ఎక్కువను హ్యాండిల్ చేసి ఒక్క డ్రాప్ అయిన రిక్వెస్ట్ కూడా లేకుండా నడిచింది.

    మీ సొంతం సృష్టించడానికి సిద్ధంగా ఉన్నారా?

    మీ CV మరియు ఉద్యోగ వివరణను అప్‌లోడ్ చేసి 60 సెకన్లలో అనుకూల సంస్కరణను పొందండి.

    మీ నిర్దిష్ట ఉద్యోగ దరఖాస్తుకు వ్యక్తిగత ఇంటర్వ్యూ సమాధానాలు పొందండి

    మీ CV మరియు / లేదా ఉద్యోగ వివరణను అప్లోడ్ చేయండి