eltonlazzarin / valinor

:man_technologist: Venha trabalhar na Field Control e ajude a melhorar a prestação de serviços no Brasil. Esse repo contém desafios de programação para avaliarmos o seu código, organização, estilo e boas práticas :)

Home Page:https://fieldcontrol.com.br

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

👨‍💻 Vaga para apaixonados por criação de software

A empresa

Somos um SaaS (Software as a service) para empresas que possuem prestadores de serviços externos.

Entregamos controle, organização e melhor relacionamento com o cliente para empresas de Climatização, Segurança eletrônica, Telecom, Provedores de internet, Montadoras de móveis, Empresas de limpeza, enfim, qualquer empresa que possui uma equipe de campo para realização de serviços.

Nossa missão é melhorar a prestação de serviços no Brasil.

Te convido a conhecer um pouco mais da Field e da nossa cultura pelo nosso instagram: @FieldControlApp

Origem

Um ponto importante é que a Field foi fundada por desenvolvedores, só por esse motivo você pode TER CERTEZA que aqui as coisas são muito diferentes das empresas tradicionais.

Aqui utilizamos princípios ágeis DE VERDADE para criação de software. Veja bem, não estou falando de reuniões em pé.. E sim de: Pair programming, Continuous Integration, Continuous Deployment e claro, testes automatizados.

Condições

  • Regime de trabalho: CLT
  • Período: Integral
  • Onde: São José do Rio Preto / SP

🏡 Você pode ler sobre nossa cidade no G1, Infomoney ou aqui na Exame.

Trabalhamos com uma boa infraestrutura, nosso hardware é muito bom (você vai ter um notebook f#d@ com ssd e dois monitores 💻 💻) e possuímos um ambiente de trabalho agradável:

A empresa não possui hierarquias e você é convidado e desafiado a colaborar com todas as frentes de trabalho. Ou seja, aqui todas sugestões são bem vindas!

Ah, e quando a Field bate meta (quase sempre) o frigobar fica assim:

Queremos a cada dia mais flexibilidade e continuar animados a evoluir nossas aplicações.

Nosso trabalho é baseado em autogestão. Só existe uma regra de convivência: É proibido murmurar! Aqui as opiniões são discutidas, resolvidas e sempre chegamos a um consenso para melhorar a nossa convivência. Isso não foi descrito por um gerente de RH e sim por um desenvolvedor de software.

Oportunidade

Estamos em busca de desenvolvedores apaixonados para somar no nosso time de desenvolvimento.

Na Field, o seu dia-a-dia será repleto de:

[
  'GitHub & Git <3',
  'Muito, muito e muito JavaScript',
  'Object-oriented programming, SOLID Principles & Design Patterns',
  'Práticas e princípios ágeis (Pair programming, Continuous Integration, Continuous Deployment)',
  'Testes de software (unitários, integração, e2e..)',
  'Desafios de escalabilidade',
  'Desafios de alta disponibilidade',
  'Micro services e aplicações distribuídas',
  'Amazon Web Services',
  'PAAS & Cloud Services',
  'Serverless apps',
  'AngularJS, Angular7(X)',
  'REST APIs',
  'GraphQL APIs',
  'Material Design',
  'Open source software'
]

Nossa stack é praticamente toda em JavaScript: Node.js, SPA's e Hybrid Mobile Apps.

Acreditamos que bons desenvolvedores usam a melhor ferramenta para cada problema, então, para resolver alguns problemas bem específicos usamos a melhor alternativa disponível, por isso, temos uma pitada de C#, Java e PHP também.

Nossos servidores estão na AWS e usamos a núvem como plataforma. Temos apps rodando no Elastic BeanStalk, S3 e Serverless na AWS Lambda :)

Antes do conhecimento técnico, temos preferência pelo perfil pessoal. Ou seja, se você for esforçado, interessado e curioso.. é isso que importa pra a gente! :)

Os desafios de programação

Se você realmente ama trabalhar com desenvolvimento de software e quer desafios pra sua carreira.. escolha um (ou todos) dos desafios abaixo, faça um fork desse repositório e let the hacking begin

<challenge> Frontend Developer </challenge>

Desenvolva um SPA que permitirá que um usuário pesquise repositórios no GitHub (os resultados devem ser paginados) e exiba informações relevantes de cada repositório (URL, descrição, contagem de watchers, de estrelas, issues e etc..)

Basicamente, uma tela quase parecida com essa: https://github.com/search?utf8=%E2%9C%93&q=node&type=

Você pode usar Twitter Bootstrap, Google Material ou qualquer outro framework de interfaces da sua preferência.

SPA Framework? Aqui usamos bastante AngularJS e Angular7, mas use o que você preferir.. React, Vue, BackboneJS (existe ainda?) ou qualquer outro :)

Escreva seu código com clareza e use a estrutura adequada do MVC para escrever o aplicativo e use as melhores práticas ao escrever JavaScript, CSS e HTML.

URLs úteis:

URL Descrição
https://api.github.com/search/repositories?q=bootstrap Exemplo de URL da API para pesquisar pelo nome do repositório
https://api.github.com/search/issues?q=repo:username/reponame URL da API para exibir issues de um repositório

Documentação da API https://developer.github.com/v3/search/#search-issues e https://developer.github.com/v3/search/

A propósito, se você achar a API do Github um pouco boring demais, escolha outra coisa que você goste.

Há algumas APIs bem legais disponíveis na Internet, por exemplo: Star Wars, Marvel ou Cats, whatever, a escolha é sua.

{ "challenge": "Backend Developer" }

Desenvolver uma API GraphQL em JavaScript expondo operações de um CRUD.

Pense em algum tema (use sua criatividade), pode ser gatos, personagens dos senhores do anéis, personagens da marvel, pokemon, enfim, o que você quiser..

Você terá que expor as seguintes queries e mutations para o tema escolhido:

Tipo O quê? Comportamento esperado
Query Recuperar lista dos items Recupera a lista dos items, essa ação deve ser paginada e deve possibilitar busca por propriedades
Query Recuperar um item Recupera um item pelo id
Mutation Adicionar um item Insere um novo item
Mutation Atualizar um item Altera um item existente
Mutation Excluir um item Remove um item existente
  • Qual Web Framework? pode ser graphql-js, graphql-yoga, apollographql ou o que você preferir :P

  • Qual Banco de dados? Mesmo pensamento, pode ser MongoDb, DynamoDb, Postgres, MySql.. enfim, não importa :)

Atenção: Você deve se preocupar com validação e semântica.

Dúvidas?

Abra um issue ou me mande um e-mail em luiz@fieldcontrol.com.br, fechou? :)

Avaliação

Entre os critérios de avaliação estão:

  • Código limpo e organização
  • Testes de software (unitários e integrados)
  • Semântica
  • Documentação de código
  • Documentação do projeto (README)
  • Segurança

Entrega

Você deve enviar a resolução do desafio via pull request nesse mesmo repositório :)

Gostariamos de entender como você pensa e as decisões que você tomou durante o desenvolvimento. Então, quando for enviar seu pull request, por favor responda:

  • Qual ferramentas e bibliotecas (libraries, framework, tools etc) você usou
  • Porque você optou pela tecnologia X e não a Y
  • Desafios e problemas que você enfrentou e como você resolveu
  • O que você entende que pode ser melhorado e como fazer isso

E ai? Let's code?

About

:man_technologist: Venha trabalhar na Field Control e ajude a melhorar a prestação de serviços no Brasil. Esse repo contém desafios de programação para avaliarmos o seu código, organização, estilo e boas práticas :)

https://fieldcontrol.com.br


Languages

Language:JavaScript 94.9%Language:HTML 5.1%