AS 10 PRINCIPAIS PERGUNTAS DA ENTREVISTA PARA DESENVOLVEDORES

Projetar sistemas distribuídos em larga escala tornou-se parte padrão das entrevistas de trabalho dos desenvolvedores. O ex-programador do Facebook e da Microsoft Fahim ul Haq fez uma lista das perguntas mais frequentes nessas entrevistas e indicou o que procurar ao projetar um sistema.

1. Crie TinyURL ou bitly (serviço de redução de URL)

Como você cria um serviço que gera aliases curtos para URLs longos?

Discuta o seguinte:

  • Como gerar IDs exclusivos para cada URL?
  • Como você geraria IDs únicos em larga escala (milhares de solicitações de encurtamento de URL a cada segundo)?
  • Como seu serviço manipulará os redirecionamentos?
  • Como você suportaria URLs curtos personalizados?
  • Como remover URLs expirados?
  • Como rastrear estatísticas de cliques?

2. Crie YouTube, Netflix ou Twitch (serviço de streaming de vídeo)

Esse serviço armazenará e transferirá petabytes de dados. Você deve explicar como armazenar e distribuir dados de maneira eficaz para que um grande número de usuários possa assisti-los e compartilhá-los ao mesmo tempo (por exemplo, imagine transmitir o último episódio de Game of Thrones).

Discuta também o seguinte:

  • Como você gravaria estatísticas sobre o vídeo – por exemplo, o número total de visualizações, curtidas e não curtidas?
  • Como um usuário pode escrever comentários em um vídeo (em tempo real)?

3. Design Facebook Messenger ou WhatsApp (mensageiro global)

Os entrevistadores querem saber:

  • Como você cria diálogos entre usuários.
  • Como você pode apoiar bate-papos em grupo.
  • O que fazer quando o usuário não está conectado à Internet.
  • Quando enviar notificações.
  • Você pode fornecer criptografia de ponta a ponta e como.

4. Design Quora, Reddit ou HackerNews (rede social + quadro de mensagens)

Os usuários desses serviços podem postar perguntas ou compartilhar links. Outros usuários podem responder a perguntas ou comentar em links. Aqui está o que o serviço deve ser capaz de fazer:

  • Mantenha estatísticas de registros para cada resposta – por exemplo, o número total de visualizações, curtidas / não curtidas.
  • Os usuários devem poder se inscrever em outros usuários ou tópicos.
  • O feed deles deve exibir as perguntas mais populares dos usuários e os tópicos nos quais eles estão inscritos.
Leia mais  Como se tornar uma pessoa de sucesso

5. Projete o Dropbox, o Google Drive ou o Google Fotos (armazenamento global de arquivos)

Explique o seguinte:

  • Como os usuários podem fazer upload / visualizar / pesquisar arquivos ou fotos e compartilhá-los?
  • Como você rastreará as permissões de compartilhamento de arquivos?
  • Como você permite que vários usuários editem o mesmo documento?

6. Crie Facebook, Twitter ou Instagram (rede social com um milhão de usuários)

Os entrevistadores estão interessados ​​em saber como você criará os seguintes componentes:

  • Armazenamento eficiente e procure postagens ou tweets.
  • Geração de feed de notícias.
  • Agenda social (quem adiciona quem aos amigos ou quem segue quem – especialmente quando milhões de usuários seguem uma celebridade)

Muitas vezes, os entrevistadores dedicam a maior parte do tempo a uma entrevista para criar um feed de notícias.

7. Design Uber ou Lyft (compartilhamento de equitação)

Discuta o seguinte:

  • Os casos de uso mais importantes são quando um usuário solicita uma carona e como associá-la efetivamente a motoristas próximos.
  • Como armazenar milhões de locais para motoristas em constante movimento.
  • Como lidar com atualizações de localização de drivers (milhões de atualizações a cada segundo).

8. Crie um robô de pesquisa ou preenchimento automático

Para preenchimento automático – quando o usuário digita algo na barra de pesquisa – você precisa criar um serviço que ofereça as dez consultas mais populares. Discuta o seguinte:

  • Como armazenar pesquisas anteriores.
  • Como atualizar dados.
  • Como encontrar as melhores correspondências.
  • Como lidar com atualizações do usuário e velocidade de digitação rápida.

Para um robô de pesquisa, é necessário projetar um serviço escalável que possa analisar páginas da Web e salvar seu conteúdo de alguma forma especial em um servidor de mecanismo de pesquisa. Discuta o seguinte:

  • Como encontrar novas páginas da web.
  • Como priorizar páginas da web que mudam dinamicamente.
  • Como garantir que seu robô não fique preso em um domínio.
Leia mais  Como interessar um interlocutor em 30 segundos

9. Projete um terminador de solicitação de API

Você precisa desenvolver serviços de restrição de consulta que possam:

  • Limite o número de solicitações que uma empresa pode enviar para a API em um determinado período de tempo – por exemplo, 15 solicitações por segundo.
  • A restrição de consulta deve funcionar para um sistema distribuído, pois a API pressupõe trabalho em um cluster de servidores.
  • Como você implementa a otimização?

10. Design Yelp ou Amigos / Locais próximos

Este serviço terá que armazenar locais para milhões de pessoas / lugares. Discuta o seguinte:

  • Como os usuários podem procurar amigos / lugares próximos.
  • Em que ordem colocar (com base na distância, comentários).
  • Como armazenar efetivamente as informações de localização de acordo com a densidade populacional (por exemplo, em um quarto de Nova York, pode haver mais estabelecimentos / pessoas do que em uma cidade pequena)?

Projetar sistemas distribuídos em larga escala tornou-se parte padrão das entrevistas de trabalho dos desenvolvedores. O ex-programador do Facebook e da Microsoft Fahim ul Haq fez uma lista das perguntas mais frequentes nessas entrevistas e indicou o que procurar ao projetar um sistema.

1. Crie TinyURL ou bitly (serviço de redução de URL)

Como você cria um serviço que gera aliases curtos para URLs longos?

Discuta o seguinte:

  • Como gerar IDs exclusivos para cada URL?
  • Como você geraria IDs únicos em larga escala (milhares de solicitações de encurtamento de URL a cada segundo)?
  • Como seu serviço manipulará os redirecionamentos?
  • Como você suportaria URLs curtos personalizados?
  • Como remover URLs expirados?
  • Como rastrear estatísticas de cliques?

2. Crie YouTube, Netflix ou Twitch (serviço de streaming de vídeo)

Esse serviço armazenará e transferirá petabytes de dados. Você deve explicar como armazenar e distribuir dados de maneira eficaz para que um grande número de usuários possa assisti-los e compartilhá-los ao mesmo tempo (por exemplo, imagine transmitir o último episódio de Game of Thrones).

Discuta também o seguinte:

  • Como você gravaria estatísticas sobre o vídeo – por exemplo, o número total de visualizações, curtidas e não curtidas?
  • Como um usuário pode escrever comentários em um vídeo (em tempo real)?

3. Design Facebook Messenger ou WhatsApp (mensageiro global)

Os entrevistadores querem saber:

  • Como você cria diálogos entre usuários.
  • Como você pode apoiar bate-papos em grupo.
  • O que fazer quando o usuário não está conectado à Internet.
  • Quando enviar notificações.
  • Você pode fornecer criptografia de ponta a ponta e como.

4. Design Quora, Reddit ou HackerNews (rede social + quadro de mensagens)

Os usuários desses serviços podem postar perguntas ou compartilhar links. Outros usuários podem responder a perguntas ou comentar em links. Aqui está o que o serviço deve ser capaz de fazer:

  • Mantenha estatísticas de registros para cada resposta – por exemplo, o número total de visualizações, curtidas / não curtidas.
  • Os usuários devem poder se inscrever em outros usuários ou tópicos.
  • O feed deles deve exibir as perguntas mais populares dos usuários e os tópicos nos quais eles estão inscritos.
Leia mais  Como se tornar uma pessoa de sucesso

5. Projete o Dropbox, o Google Drive ou o Google Fotos (armazenamento global de arquivos)

Explique o seguinte:

  • Como os usuários podem fazer upload / visualizar / pesquisar arquivos ou fotos e compartilhá-los?
  • Como você rastreará as permissões de compartilhamento de arquivos?
  • Como você permite que vários usuários editem o mesmo documento?

6. Crie Facebook, Twitter ou Instagram (rede social com um milhão de usuários)

Os entrevistadores estão interessados ​​em saber como você criará os seguintes componentes:

  • Armazenamento eficiente e procure postagens ou tweets.
  • Geração de feed de notícias.
  • Agenda social (quem adiciona quem aos amigos ou quem segue quem – especialmente quando milhões de usuários seguem uma celebridade)

Muitas vezes, os entrevistadores dedicam a maior parte do tempo a uma entrevista para criar um feed de notícias.

7. Design Uber ou Lyft (compartilhamento de equitação)

Discuta o seguinte:

  • Os casos de uso mais importantes são quando um usuário solicita uma carona e como associá-la efetivamente a motoristas próximos.
  • Como armazenar milhões de locais para motoristas em constante movimento.
  • Como lidar com atualizações de localização de drivers (milhões de atualizações a cada segundo).

8. Crie um robô de pesquisa ou preenchimento automático

Para preenchimento automático – quando o usuário digita algo na barra de pesquisa – você precisa criar um serviço que ofereça as dez consultas mais populares. Discuta o seguinte:

  • Como armazenar pesquisas anteriores.
  • Como atualizar dados.
  • Como encontrar as melhores correspondências.
  • Como lidar com atualizações do usuário e velocidade de digitação rápida.

Para um robô de pesquisa, é necessário projetar um serviço escalável que possa analisar páginas da Web e salvar seu conteúdo de alguma forma especial em um servidor de mecanismo de pesquisa. Discuta o seguinte:

  • Como encontrar novas páginas da web.
  • Como priorizar páginas da web que mudam dinamicamente.
  • Como garantir que seu robô não fique preso em um domínio.
Leia mais  Como interessar um interlocutor em 30 segundos

9. Projete um terminador de solicitação de API

Você precisa desenvolver serviços de restrição de consulta que possam:

  • Limite o número de solicitações que uma empresa pode enviar para a API em um determinado período de tempo – por exemplo, 15 solicitações por segundo.
  • A restrição de consulta deve funcionar para um sistema distribuído, pois a API pressupõe trabalho em um cluster de servidores.
  • Como você implementa a otimização?

10. Design Yelp ou Amigos / Locais próximos

Este serviço terá que armazenar locais para milhões de pessoas / lugares. Discuta o seguinte:

  • Como os usuários podem procurar amigos / lugares próximos.
  • Em que ordem colocar (com base na distância, comentários).
  • Como armazenar efetivamente as informações de localização de acordo com a densidade populacional (por exemplo, em um quarto de Nova York, pode haver mais estabelecimentos / pessoas do que em uma cidade pequena)?

More from author

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Related posts

Advertismentspot_img

Latest posts

TAREFAS E RESPONSABILIDADES DE UM ENGENHEIRO ELÉTRICO

Como engenheiro elétrico ou engenheiro elétrico ; você será responsável pelo planejamento, desenvolvimento, design, controle, coordenação e gestão de s projetos de design de produtos elétricos e infra-estrutura elétrica. Suas tarefas serão: Realizar e...

A IMPORTÂNCIA DE COCHILAR NO TRABALHO

Tire uma soneca no trabalho … Parece uma grave violação da disciplina do trabalho. No entanto, essa atitude pode se tornar uma relíquia do passado. Christopher Lindholst, CEO...

A ROTINA DE UM PSICOTERAPEUTA

Quando problemas acontecem, discutimos com os amigos. Mas há outra possibilidade – psicoterapia. Por que ela é necessária, como funciona um psicoterapeuta e por que os...

Want to stay up to date with the latest news?

We would love to hear from you! Please fill in your details and we will stay in touch. It's that simple!