Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
September 12, 2022 05:25 pm GMT

[Conceito] - Ideias de Questes para Entrevistas: System Design

Contedo original em https://twitter.com/zanfranceschi/status/1569375318091386885

Ei dev,

J fiz muitas entrevistas tcnicas na condio de entrevistador e gosto particularmente de questes de System Design (ou Arquitetura como queira chamar).

Nessa thread, coloco algumas questes que costumava fazer.

cc @sseraphini

Image

Antes de irmos para as questes, gostaria de compartilhar uma prtica que me ajudava nas avaliaes. Para perguntas abertas (que no tm uma resposta correta), costumava incluir a expectativa de resposta. Farei isso aqui tambm.

Legenda:
Q Questo
ER Expectativa de Resposta

Q: Quais foram/so suas atividades frequentes (aquelas que geram experincia prtica) mais relevantes relacionadas posio?

ER: Atividades similares ou que agregam valor posio trabalhada.

Q: Quando acha adequado usar um banco NoSQL vs um banco relacional tradicional?

ER: Demonstrar conhecimentos sobre as diferenas entre os dois. Ex.: escalabilidade horizontal/vertical, ACID (alguns nosql oferecem ACID), complexidade de queries, padres de acesso, etc.

Q: Voc concorda que, numa aplicao de borda, com alta variabilidade de concorrncia de acessos, usar um banco nosql adequado? Por que?

ER: Demonstrar um pouco mais de conhecimento em NoSQL. Geralmente adequado por causa da escalabilidade horizontal natural.

Q: Como escalar um banco relacional tradicional?

ER: No geral, verticalmente (mais/menos memria, CPU, storage, etc.).

obs.: Por incrvel que parea, muita gente responde "escalando horizontalmente" sem mencionar rplicas de leitura.

Q: Supondo dois tipos de load balancers um que atua na camada TCP 4 e outro na camada 7 em quais cenrios voc usaria um e outro?

ER: Basicamente um ser ignorante em relao ao contedo e o outro ser capaz de inspecionar headers, paths, etc; ideal para HTTP, por exemplo.

Q: Sobre os cdigos de status do HTTP, voc poderia me falar o que cada faixa representa (200, 300, 400, 500)?

ER: 200 resposta positiva do servidor / 300 redirecionamentos, cache / 400 erro do cliente / 500 erro do servidor.

Q: Como voc aborda escalabilidade?

ER: Essa questo muito aberta e boa para entender um pouco a maturidade da pessoa. Geralmente abordar async/sync, vertical/horizontal, cache, detectar over-engineering na resposta, etc.

Q: Como voc lida com tolerncia a falhas?

ER: Questo bem aberta tambm. Eliminar/diminuir pontos nicos de falhas, recuperao, monitoramento, etc., so bons tpicos.

Q: Voc conhece padres de integraes com filas/tpicos? Se sim, qual foi sua participao em projetos com esse tipo de integrao e quais padres usou?

ER: Se sim, contar alguns padres usados e quais problemas resolveram.

Q: Voc sabe a diferena entre Object, File e Block Storages?

ER: Contar a diferena bsica entre eles e cenrios de uso.

obs.: uma boa referncia: https://www.redhat.com/en/topics/data-storage/file-block-object-storage

Q: Quais aspectos/dimenses voc pondera antes de incluir um novo componente num desenho de soluo? "Componente" aqui pode ser entendido como qualquer building block significativo para a soluo como, por exemplo, Kafka, MongoDB, Kubernetes, Redis, Oracle, uma biblioteca, etc. +

ER: Os mais diversos possveis: oramento, conhecimento do time, facilidade de encontrar profissionais no mercado que conheam, capacidade de manuteno, maturidade do produto, ofertas de clients para linguagens de programao, "match" no provedor cloud, etc.

Q: Qual sua abordagem em relao a segurana?

ER: Questo super ampla tambm. Mencionar autenticao/autorizao, hardening, topologia de redes, MFA, so bons sub tpicos.

Q: Como voc comunica sobre as solues que desenha?

ER: Essa questo direcionada a cargos de maior responsabilidade (arquitetura, staff eng., etc.) e ajuda a entender o modus operandi da pessoa entrevistada.

Q: Me conte sobre algum projeto que considera que falhou e o motivo.

ER: No ter medo de assumir erros todos ns cometemos. Boa para ter uma noo sobre como a pessoa lida com erros (teoricamente, pelo menos).

Q: Quando voc acha que a abordagem "least privilege access" no adequada.

ER: Quando segurana no for importante e velocidade de desenvolvimento for.

Q: Geralmente, quais so as maiores dores da operao de sistemas distribudos?

ER: No geral, eles so complexos. Troubleshooting, por exemplo mais difcil.

Q: Como uma arquitetura assncrona pode afetar a experincia do usurio?

ER: Abordar Consistncia Eventual.

Q: O que acha da abordagem multi-cloud?

ER: Questo super aberta. Dependendo do cargo, possvel detectar bastante maturidade em aspectos como custos, disponibilidade, lock-in, abstraes de provedores, etc.

E por a vai...

Essas questes fazem parte de uma lista infinita e, obviamente, inclu apenas algumas das quais me lembrei.

Normalmente, tambm incluo questes mais focadas na posio para complementar a entrevista.

Me conte a qual outra questo voc acha boa para uma entrevista? No esquea de incluir a expectativa de resposta se for uma pergunta aberta.


Original Link: https://dev.to/zanfranceschi/conceito-ideias-de-questoes-para-entrevistas-system-design-116m

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To