Fale-me sobre o seu último emprego: em que trabalhou, qual foi a sua stack, quais foram os desafios difíceis?
Golang
O que é uma transação no PostgreSQL? Fale sobre o ACID.
O que gostaria de encontrar do ponto de vista do projeto, da empresa, da equipe?
Temos uma base de dados com passwords de utilizadores, as passwords estão hashed (função hashPassword), e também é conhecido o conjunto de caracteres que podem ser utilizados nas passwords (variável alphabet). A nossa tarefa é implementar a função RecoverPassword para recuperar a password a partir do hash conhecido e que TestRecoverPassword seja bem-sucedido. Requisitos básicos: Qualquer método é válido package main import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func RecoverPassword(h []byte) string { return "" } func hashPassword(in string) []byte { h := md5.Sum([]byte(in)) return h[:] } func main() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashPassword(exp) act := RecoverPassword(h) if act != exp { fmt.Printf("Erro: esperado %q, obtido %q\n", exp, act) ok = false } } if ok { fmt.Println("Testes concluídos com sucesso") } }
Como matar um processo no Linux? Com que comandos?
Escreva uma função Exclude que retorne os elementos do slice a que não estão no slice b.
-- Escrever uma consulta que corrija os dados: -- substituir parent_id por NULL apenas nas categorias, -- que se referem a si mesmas -- ESTADO ESPERADO DA TABELA APÓS UPDATE -- +----+----------+-----------+ -- | id | nome | parent_id | -- +----+----------+-----------+ -- | 1 | pharma | NULL // Substituído por NULL -- | 2 | produtos | 4 -- | 3 | jogos | NULL // Substituído por NULL -- | 4 | música | 2 -- +----+----------+-----------+
Fala-me da tua experiência com linguagens de programação, além do Go, que mais usaste? Como achas o Go?
O que faz o comando top por baixo do capô (pergunta do entrevistador)?
Por quais critérios vais escolher o empregador se tiver várias ofertas?
Como resolveu o problema de desincronização de dados durante a migração entre os armazéns?
Quem decide sobre o rollback?
Quais indicadores você acompanha para avaliar o estado e o desempenho dos serviços?
Na consulta foi usado WHERE, mas também existe o operador HAVING — qual é a diferença entre eles?
Como o top calcula a % de CPU? De que algoritmo depende?
Por que na linha 15, a declaração de map deve estar entre colchetes e não entre chaves?
Quantidades de código que normalmente escreve em Go por projeto ou por um período de tempo específico?
Para além do Go, com o que trabalhou entre os brokers de mensagens, bases de dados?
Deve mostrar: 1. Mostrar combinações únicas de usuário e ID do produto para todas as compras feitas por usuários antes de serem banidos. Ordenar primeiro pelo nome do usuário, depois pelo SKU 2. Encontrar usuários que fizeram compras por um valor superior a 5000 rublos. Exibir seus nomes no formato id do usuário | nome | sobrenome | valor total das compras
Existe um esquema de base de dados que inclui: -- Tabela de clientes CREATE TABLE customers ( id BIGSERIAL PRIMARY KEY, name VARCHAR(255) NOT NULL, city VARCHAR(255) NOT NULL ); -- Tabela de produtos CREATE TABLE products ( id BIGSERIAL PRIMARY KEY, name VARCHAR(255) NOT NULL, category VARCHAR(100) ); -- Tabela de itens de pedido CREATE TABLE order_items ( order_id BIGINT NOT NULL, product_id BIGINT NOT NULL, qty DECIMAL(10, 3) NOT NULL CHECK (qty > 0), -- 10 dígitos, 3 casas decimais price NUMERIC(10, 2) NOT NULL CHECK (price >= 0), PRIMARY KEY (order_id, product_id) ); -- Tabela de pedidos CREATE TABLE orders ( id BIGSERIAL PRIMARY KEY, customer_id BIGINT, order_date TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, status VARCHAR(50) NOT NULL CHECK (status IN ('pending', 'paid', 'shipped', 'delivered', 'cancelled')) ); 1. Mostre os 10 principais por soma de pedidos de usuários que fizeram mais de 2 pedidos nos últimos 30 dias 2. Mostre as 3 principais categorias por receita nos últimos 6 meses