Golang
Por que escolheram Kafka em vez de RabbitMQ ou um banco de dados? Qual era o sentido?
O que é importante na escolha de uma empresa? A que vais prestar atenção?
Quais são as suas expectativas salariais?
Por que o PostgreSQL foi escolhido para armazenamento de posts? Como entender em que cargas cada tecnologia funciona sem sharding e replicação (Postgres, Kafka, Redis, serviço em Go)?
// GetUsersList devolve uma lista de utilizadores. (na base de dados armazenamos cerca de 1 milhão de utilizadores) // Usado para exibir a lista de utilizadores no painel de administração. Se isActive = true, apenas os utilizadores ativos são devolvidos. func (u *UsersRepo) GetUsersList(ctx context.Context, isActive bool) ([]User, error) { rows, err := u.DB.Query("SELECT id, name, phone FROM users WHERE is_active = ?", isActive) if err != nil { return nil, errors.New("erro ao obter a lista de utilizadores") } var users []User // Preencher informações sobre os utilizadores. for rows.Next() { var user User err := rows.Scan(&user.ID, &user.Name, &user.Phone) if err != nil { return nil, err } // Obter a lista de e-mails do utilizador err, err := u.DB.QueryContext(ctx, "SELECT email FROM user_emails WHERE user_id = ?", user.ID) if err != nil { return nil, errors.New("erro ao obter a lista de utilizadores") } var emails []string for er.Next() { var email string err := rows.Scan(&email) if err != nil { return nil, err } emails = append(emails, email) } if len(emails) != 0 { for i, e := range emails { emails[i] = strings.ToLower(e) } } user.Emails = emails // Obter informações do perfil a partir da API do VKontakte profile, err := getUserProfileFromVkApiByUserPhone(user.Phone) if err != nil { return nil, errors.New("erro ao obter a lista de utilizadores") } user.Profile = profile users = append(users, user) } if err = rows.Err(); err != nil { return nil, errors.New("erro ao obter a lista de utilizadores") } }
Qual é a diferença entre HTTP e HTTPS?
O que é uma transação numa base de dados?
As leituras eram feitas com o mestre, com a réplica ou como eram distribuídas?
Quais ferramentas você usa para avaliação de desempenho e profiling durante o desenvolvimento de uma aplicação em Go?
Fale sobre cargas e casos interessantes relacionados com otimização sob carga.
O que é importante para ti ao escolher um novo local de trabalho?
[nome] já teve experiência na operação de serviços — trabalhando com Kubernetes, Linux, etc.?
És escritor, geres o teu mini blog e publicas artigos lá. Os utilizadores (leitores) do teu blog, após iniciarem sessão, podem visualizá-los/lê-los. É necessário implementar uma funcionalidade de contagem de visualizações únicas por dia para cada artigo. Requisitos funcionais: - Estatísticas do dia de hoje: O autor pode ver quantos utilizadores únicos visualizaram o seu artigo hoje (os dados são acumulados em tempo real). - Estatísticas de dias passados: O autor pode ver as estatísticas de qualquer dia passado (por exemplo, ontem). Restrições técnicas e condições: - A aplicação funciona num único servidor (um pod) - Armazenamento em memória - Tempo em UTC0
Por quais critérios irá escolher um novo local de trabalho se tiver várias ofertas?
Por que é que se escolhe Kafka nos projetos e por que RabbitMQ? Em que se baseiam na escolha do broker de mensagens?
Estás atualmente à procura de emprego e por que estás a considerar ofertas?
Fala-me sobre a gestão de incidentes na tua equipa: como é que o processo está organizado, há um regulamento de turnos?
Houve ocasiões em que teve que defender uma ideia ou funcionalidade perante o equipa de produto ou analistas?
A busca binária e a busca em árvore têm a mesma complexidade logarítmica. Por que precisamos de vários algoritmos com a mesma complexidade algorítmica? Devemos sempre usar uma árvore em vez de busca binária?
Como foi realizado o teste de carga e quais métricas foram observadas?