No programa chegam objetos. Em cada objeto pode estar indicado um número de telefone e/ou login (ou um destes valores, ou ambos ao mesmo tempo), bem como uma carga útil na forma de dados binários. Os objetos que chegam devem ser armazenados na memória operacional respeitando as seguintes restrições: Se o objeto que chega tiver um login e/ou telefone iguais aos de um dos objetos armazenados anteriormente, o objeto armazenado deve ser removido, e o que chega não deve ser guardado. Se um objeto permanecer na memória operacional por mais de 60 segundos, deve ser removido. Considera-se que os objetos chegam com frequência. Além disso, objetos que coincidam por login/telefone são muito menos frequentes do que o número total de objetos que chegam. void process(Object o) { }
C/C++
[nome] fala-me sobre ti e sobre os produtos em que trabalhaste, e as tarefas que realizaste.
Na revisão, vê-se um diff que parece um copypaste grosseiro ou um hack estranho: o código realiza a ação necessária, mas não é evidente como funciona ou se funciona corretamente. Quais são os teus próximos passos?
Que propriedades a tarefa deve possuir para, pelo contrário, provocar a reação de «ah, não quero fazer isso»?
E o que, pelo contrário, repele nesses eventos?
Que qualidades deve ter um colega para que seja confortável trabalhar com ele?
Como saber se uma alteração (por exemplo, mudar do Boost para a biblioteca padrão) realmente « funciona »?
Como te relacionas com as atividades fora do trabalho (fóruns, eventos corporativos, esportes) e o que mais te atrai nelas?
Já participou em discussões/debates técnicos dentro da equipa? Como decorreram e como foram resolvidos?
Já teve experiência de refatoração em grande escala de uma grande base legacy? Se não, como agiria se fosse necessário?
Por que saiu do seu emprego anterior?
O que te motivou a procurar um novo lugar?
Há uma tarefa de revisão de código: um colega enviou uma solução que funciona e está coberta por testes unitários, mas a implementação é completamente diferente do que você faria. O que você fará?
Situação: dois gestores chegam e atribuem duas tarefas urgentes, mas não há tempo. O que farias?
O que será exibido na tela? (Pergunta 3: sizeof do array, ponteiro, referência ao array)
Como poderia ser implementada a otimização RVO/NRVO num compilador?
Qual é o plano para a refatoração e o que deve haver para a fazer com confiança?
auto lambda = []<typename>(){};
O que será exibido na tela? (Pergunta 1: construtores, RVO/NRVO)
Como evitar ficar numa situação em que, após três meses, tudo esteja "desorganizado" e nada funcione, se o líder decidiu reescrever radicalmente o código (por exemplo, eliminar o Boost)?