O que o programador JavaScript deve saber

JavaScript é uma das principais linguagens de programação mais requisitadas no mercado de trabalho atual. No entanto, os empregadores geralmente procuram uma combinação de habilidades. Descubra o que mais você deve adicionar ao seu currículo para conseguir o seu próximo trabalho JavaScript.

A pesquisa vem do CV Compiler, uma empresa que, como o próprio nome sugere, ajuda a criar um currículo convincente para desenvolvedores e outros no setor de software. Para fornecer esta orientação, mantém-se continuamente atualizado com as demandas dos empregadores. Para esta pesquisa dos desenvolvedores de habilidades em JavaScript, a equipe do Compilador de CV precisou de 300 especificações de trabalho para desenvolvedores de JavaScript de AngelList, StackOverflow, LinkedIn e páginas de carreira de empresas de tecnologia em rápido crescimento em todo o mundo. Em seguida, usando sua própria ferramenta de análise de texto, eles identificaram os termos que foram mencionados com mais frequência e criaram este gráfico:

linguagens de programação, metodologias de programação e assim por diante. Na verdade, isso pode não ter sido a primeira coisa que você percebeu – você pode ter sido atingido pelo domínio do React. Mesmo se você permitir que qualquer abertura de trabalho para o React exija JavaScript, a demanda por essa estrutura parece ser esmagadora. Como existem apenas 300 listagens de empregos e o principal concorrente da React, Angular também tem uma alta proporção de menções, algumas aberturas precisam exigir múltiplas estruturas ou uma ou mais alternativas. Mesmo assim, o recorde de 267 da React é excelente, o Angular tem 195 pontos de crédito, enquanto o Vue apenas recebe 44 menções.

Comentando sobre isso no blog Game of Frameworks, Andrew Stetsenko escreve:

“Como você deve ter notado, o Vue.js não era tão alto em nossa classificação de habilidades. Eu acho que pode haver várias razões para isso. Primeiro de tudo, nem toda empresa está pronta para transferir seus projetos para o Vue.js e descartar soluções de front-end mais estáveis ​​e comuns. Em segundo lugar, os empregadores podem querer que os desenvolvedores aprendam o Vue.js enquanto trabalham, por isso eles não mencionam nas especificações iniciais do trabalho.”

Continue lendo “O que o programador JavaScript deve saber”

Backdoor descoberto na carteira de criptomoedas Agama

Recentemente a Komodo Plataform descobriu uma backdoor em um de seus aplicativos mais antigos, o Agama. Sabendo que eles tinham pouco tempo para agir, a equipe usou a própria falha de segurança para remover todos as aplicações e valores para um local mais seguro.

Graças a esta tatica, 8 milhoes de Komodo coins e 96 bitcoins (quase 13 milhões de dólares) foram removidas das contas com a vulnerabilidade que poderiam ser hackeadas a qualquer momento.


Sobre a falha

O backdoor foi descoberto pela equipe de auditoria de segurança dos pacotes de repositório JavaScript do NPM. A equipe do NPM disse que identificou uma atualização maliciosa na biblioteca JavaScript electron-native-notify (versão 1.1.6), que continha código projetado para roubar criptomoedas e outras senhas de login específicas para aplicativos de criptomoeda.

Embora inicialmente não fizesse sentido que uma biblioteca com um conjunto de recursos muito limitado contivesse uma funcionalidade tão avançada, depois de investigar o problema, o pessoal do NPM percebeu que estavam lidando com um ataque na cadeia de fornecimento e usando a biblioteca agora como backdoor.

A equipe do npm disse que o código malicioso funcionaria conforme o planejado e coletaria os seeds e senhas do aplicativo de carteira da Agama e faria o upload dos dados para um servidor remoto. Com estes seeds e senhas teriam permitido que um hacker se conectasse às contas de criptomoedas gerenciadas pela carteira Agama e roubasse os fundos dos usuários.


Ações tomadas

Continue lendo “Backdoor descoberto na carteira de criptomoedas Agama”

Novas atualizações Node.js 12

O Node.js recentemente lançou a versão 12 do Node.js, adicionando melhorias através da V8 JavaScript engine, melhora no desempenho de inicialização, módulos ES6, entre outros.

O projeto Node.js segue uma estratégia LTS (Long Term Support). Os desenvolvedores devem saber que as novas atualizações não estarão prontas em termos LTS até Outubro de 2019. Até lá, os desenvolvedores estão encorajados a reportar questões que eles encontrarem usando o Node.js 12, e essas questões serão resolvidas antes da versão LTS estar completa.

A versão Transport Layer Security (TLS) no Node.js está atualmente na versão TLS 1.3 por padrão, ela inclui numerosas mudanças na criação do protocolo e tornando sua configuração mais direta e segura. Mais além, a TLS 1.3 inclui melhorias no sigilo de encaminhamento e modos de criptografia mais seguros.

O Node.js 12 deixa mais fácil a configuração dos limites do heap, melhorando significativamente o desempenho ao trabalhar com grandes quantias de dados. A atualização para os limites do heap configura o tamanho do heap JavaScript como uma função de memória disponível, em lugar dos padrões V8 para navegadores da web.

Continue lendo “Novas atualizações Node.js 12”

J2CL: Um transpilador Java para JavaScript

Criado, desenvolvido pela Google, este compilador open source realiza source-to-source converte Java para JavaScript. Os desenvolvedores do J2CL dizem que o compilador permite um uso fluido do Java nas suas aplicações JavaScript.

O J2CL tenta resolver um problema diferente que frameworks similares como o GWT e não foi jeito para substituir estes framworks. Ao invés disto, o J2CL se preocupa interoperabilidade e a reutilização de código entre as plataformas. Você pode usar o J2CL para fazer um pedaço de código acessível no JavaScript ou converter uma aplicação inteira com ele.

A ferramenta foi desenvolvida com flexibilidade em mente e pode ser aplicada de diversas formas diferentes. Uma forma que você pode utiliza-la seria para implementar um algoritmo complexo em múltiplas tecnologias que atuam em plataformas diferentes.

Segundo Thomas Deegan (ex-contribuidor do projeto), um exemplo deste tipo de implementação ocorreu com a migração do Google Docs que precisava ser reescrito para se tornar uma aplicação web. Neste caso, o j2CL transpilou todas a lógica de renderização e manipulação dos documentos para JavaScript.

Mas a sua utilidade não para ai, você poderia aproveita-lo para converter para o back-end JavaScript (Node.js) criando bibliotecas que originalmente foram desenvolvidas em Java.

Infelizmente, nem todas as APIs Java, como a Java Reflection, tem suporte. Por default, o Código transpilado não é publico e diversos anotações Java (Java Annotations) fo JsInterop podem ser utilizadas para identificar quais classes, métodos, intancias de variáveis, etc… podem ser expostos.

O projeto possui um exemplo simples de “Hello World” para demonstrar sua utilização. Veja abaixo um exemplo similar utilizando uma anotação Java como ela pode ser utilizada no JavaScript.

package com.acme

import jsinterop.annotations.JsType;

@JsType
public class HelloWorld {
    public static String getHelloWorld() {
        return "Hello from Java!";
    }
}

Pode ser utilizado da seguinte forma:

const HelloWorld = goog.require('com.acme');
console.log(HelloWorld.getHelloWorld());

De acordo com os desenvolvedores, o J2CL está em faze de produção e tem servido como a tecnologia utilizada para em diversos apps importantes do GSuites como Gmail, Inbox, Docs, Slides e Calendário.

Para mais informações, visite o guia básico do projeto no Github.

 

Amazon GameLift, o seu servidor JavaScript na AWS

Conheça o Amazon GameLift, o servidor ideal para seus jogos.

A Amazon tornou disponíveis servidores em tempo real do GameLift. Você pode, com poucas linhas de JavaScript, criar um servidor de jogos e escalar para seus jogos por uma fração de centavo por jogador por mês.

Sendo uma hospedagem de servidores de jogos dedicados na nuvem, o GameLift consegue maximizar a economia, diminuindo também a latência e o tempo de espera. Veja:

Latência mediana global: 45 ms;

Economia de custo em comparação com soluções co-location: até 70% de economia;

Para iniciar um jogo (incluindo grupos de jogadores em sessões de jogos rapidamente: 100 ms.

Com o GameLift, você poderá focar no seu jogo, dispondo de total atenção para o desenvolvimento, e dispondo menos do seu tempo a se dedicar ao servidor.


Acelerando o desenvolvimento dos jogos:

Com o GameLift da Amazon, é possível enviar o jogo com maior agilidade e oferecendo aos jogadores a experiência que eles esperam. Como a Amazon faz isso?

Escala automaticamente a capacidade do servidor de acordo com o tráfego dos players: Você deixa de pagar por capacidade que não está sendo utilizada quando o tráfego de jogadores está baixo;


Matchmaking flexível:

Você pode usar a solução personalizada da Amazon, chamada FlexMatch para criar jogos competitivos, ou pode usar seu próprio serviço de matchmaking.


Sem inatividade para atualizações:

Precisa lançar atualizações ou novos conteúdos? Com o GameLift ps servidores ficarão ativos 24 horas por dia, 7 dias por semana.


Suporte ao jogo em plataformas cruzadas:

A comunidade fica conectada a todos os tipos de dispositivos, ampliando o grupo de jogadores.


 

Funciona com mecanismos e fluxos de trabalho existentes:

Você pode colocar os servidores em operação na nuvem, integrando facilmente o SDK do Amazon GameLift com mecanismos AAA como Unity, Unreal, Lumberyard ou soluções internas desenvolvidas em C++.


Como usar o Amazon GameLift?

Você pode colocar seus servidores dedicados de jogos em operação com três etapas fáceis:

Cadastre-se em uma conta da AWS (leva menos de cinco minutos e a inscrição será totalmente gratuita no nível gratuito da AWS).

Faça o upload da compilação: Comece a usar o Amazon GameLift.

Implante os servidores de jogo: aprenda a implantar um servidor de jogo com a amostra de servidor da Amazon e veja os dados de jogadores e sessões criadas no painel ao vivo da Amazon GameLift.

Confira mais detalhes no link: https://aws.amazon.com/pt/gamelift/


Definições de preço:

Utilizando o Amazon GameLift, você paga apenas pela capacidade utilizada, não sendo necessário desenbolsar por espaço ocioso. O GameLift cobra as instâncias por tempo de uso e quantidade de dados transferidos.

Veja um exemplo de definição de preço em: https://aws.amazon.com/pt/gamelift/pricing/#gamelift-example


Reduza os gastos usando Auto Scaling:

O Autoscaling do Amazon GameLift pode desativar automaticamente servidores de jogos quando não forem necessários e adicionar novos quando surgirem mais jogadores. O GameLift disponibiliza instâncias spot e sob demanda. Com instâncias spot, você pode ter uma economia de até 90%, mas obtendo o mesmo hardware de alta performance que com as sob demanda. Com o recurso FleetIQ, novas sessões serão colocadas em servidores de jogos com base nas latências do jogador, nos preços das instâncias e nas taxas de interrupção do spot. Saiba mais em: https://aws.amazon.com/pt/blogs/gametech/reduce-cost-by-up-to-90-with-amazon-gamelift-fleetiq-and-spot-instances/


Instâncias do Amazon GameLift:

Com as instâncias spot do Amazon GameLift, você paga o preço spot vigente no início de cada hora da instância em execução. Os preços são definidos pela AWS e são ajustados de acordo com tendências de oferta e demanda de instâncias spot no longo prazo, nunca excedendo os preços sob demanda. Se o preço spot for alterado após a execução da instância, o novo preço será cobrado para uso da instância na hora subsequente.

Veja as tabelas dos valores por hora das instâncias spot e sob demanda separadas por tipo de instância e região em: https://aws.amazon.com/pt/gamelift/pricing/


EXPLORANDO O JAVASCRIPT NA AWS:

AWS SDK para JavaScript no Node.js:

Comece a usar rapidamente a AWS com o AWS SDK para JavaScript em Node.js. Para mais informações: https://aws.amazon.com/pt/sdk-for-node-js/

AWS SDK para JavaScript no navegador:

O AWS SDK para JavaScript permite que você acesse diretamente os serviços da AWS por meio do código JavaScript em execução no navegador. Mais informações em:

https://aws.amazon.com/pt/sdk-for-browser/


Biblioteca do AWS Amplify para web e React Native:

Escolha seus serviços de nuvem e conecte-os facilmente ao seu aplicativo com poucas linhas de código. Acesse:https://aws-amplify.github.io/


Implante Node.js no Elastic Beanstalk:

Com o Elastic Beanstalk, é fácil implantar, escalar e gerenciar seus aplicativos web Node.js usando a AWS, estando disponível para qualquer pessoa que esteja hospedando ou desenvolvendo um aplicativo web usando Node.js. Acesse:

https://docs.aws.amazon.com/pt_br/elasticbeanstalk/latest/dg/create_deploy_nodejs.html


Implante Node.js no AWS OpsWorks:

o AWS OpsWorks permite:

Criação de servidores Puppet Master gerenciados pelo AWS para Puppet Enterprise;

Criação de servidores gerenciados pelo Chef na AWS, incluindo recursos especiais do Chef Automate e usando o Chef DK e outras ferramentas de gerenciamento do Chef.

AWS OpsWorks Stacks: implantar e monitorar aplicativos nas suas pilhas. O Stacks não requer nem cria servidores do Chef, mas executa algumas das tarefas de um servidor do Chef por você.

Acesse mais informações em:

https://docs.aws.amazon.com/pt_br/opsworks/latest/userguide/welcome.html

Eventos BrazilJS

Para aqueles com interesse em ver novidades sobre programação JavaScript e ficar por dentro de diversas novidades, segue abaixo um o tuor 2019 para você conferir se algum evento acontecerá perto de sua cidade:

2ª edição da BrazilJS on the Road Sorocaba

 

2ª edição da BrazilJS on the Road Brasília

 

1ª edição da BrazilJS on the Road Curitiba

 

BrazilJS Conf

Além disso, é importante destacar que em Porto Alegre haverá um workshop

Título: Build a neural network with pure javascript – no libraries, no math notation, no python (Construindo uma rede neural com apenas JavaScript – sem bibliotecas, anotações matemáticas ou python)

Por: Mattias Petter Johansson

Duração: 4h

Descrição do workshop feito pelo Mattias

Descrição:  Sempre que eu tento aprender sobre machine learning e inteligência artificial, todo o material que encontro sempre tem muitas coisas que são ungoogleable, como por exemplo: notação matemática, grandes bibliotecas complexas como o Tensorflow e até mesmo coisas de neurociência.

Alguns materiais foram mais práticos, mas todos usavam Python para explicar as coisas. Eu desejei que alguém pudesse ao menos me mostrar o conceito de redes neurais usando JavaScript simples, para que eu pudesse entender primeiro sem as distrações.

Neste workshop, faremos exatamente isso, e você aprenderá que uma rede neural é na verdade um conceito muito simples, e que você vai pensar que machine learning será muito menos assustador depois.


Do mais seria isso, acesse confira os links e veja se algumas destas palestras interessa a você. Lembre-se também que eventos assim também são muito bons para trocar conhecimentos, informações e até oportunidades de emprego com outras pessoas da area. Bons estudos!

Nest.js 6 melhora a integração GraphQL

Nest.js anunciou recentemente o lançamento da versão 6 de sua estrutura TypeScript. O Nest.js 6 melhora o suporte ao GraphQL e também separa as partes específicas da plataforma de sua estrutura para suportar aplicativos além da arquitetura tradicional baseada em Express e Node.js.

Kamil Mysliwiec, criador do Nest.js e co-fundador do Trilon.io, explica as mudanças no Nest.js 6 com o GraphQL:

Um dos problemas mais comuns com aplicativos GraphQL é um tipo de redundância. Para resolver esse problema, na versão anterior do Nest, adicionamos um compilador que permite compilar definições escritas em SDL para as interfaces (ou classes) TypeScript. Com o 6.0.0, o Nest foi integrado com um pacote amazingtype-graphqlque permite gerar seus arquivos GraphQL usando apenas decoradores TypeScript! Agora você pode escolher qual abordagem é mais adequada às suas necessidades – ambas estão disponíveis no pacote @nestjs/graphql

Outra mudança significativa com a versão 6 é a mudança da Nest.js para além de seu foco principal como uma estrutura do lado do servidor para ser uma estrutura mais flexível e de propósito geral. Mysliwiec explica:

A independência de plataforma possibilita a criação de partes lógicas reutilizáveis ​​que os desenvolvedores podem usar em diferentes tipos de aplicativos. Com o Nest, você pode criar facilmente um aplicativo da Web, CLI, uma fila de trabalhos ou qualquer outra coisa em que possa pensar!

Os planos atuais para a próxima grande parte do Nest.js incluem reescrever o módulo Nest.js Swagger para alavancar o TypeScript AST para reduzir o suporte ao decorador e adicionar suporte a genéricos, interfaces, dependências circulares e geração de esquemas de resposta automática. A equipe Nest.js também planeja melhorar o fluxo de trabalho do DevOps para suporte e implantação em ambientes sem servidor.

Para aplicativos do lado do servidor, o Nest.js aproveita as estruturas do HTTP Server, como Express e Fastify, e fornece fácil integração com vários módulos de terceiros, como o TypeORM. Nest.js fornece uma ampla variedade de padrões e decoradores de arquitetura, incluindo controladores, roteamento, provedores, middleware, guardas e interceptadores. O Nest.js fornece uma inversão da arquitetura do contêiner do controlador (IoC).

Os usuários do Nest.js que desejam migrar para a versão 6 devem seguir o guia de migração do Nest.js(Inglês). Desenvolvedores novatos no Nest.js devem seguir o guia de primeiros passos Nest.js.

Nest.js é um software de código aberto disponível sob a licença MIT. Contribuições e feedback são incentivados através do projeto Nest.js do GitHub e devem seguir as diretrizes de contribuição Nest.js.

Experiências do Google com armazenamento de valor-chave

O Google anunciou recentemente (link em Inglês) sua intenção de enviar duas novas propostas do WICG em uma versão futura do Chrome. KV Storage (armazenamento de valor-chave) tenta trazer a conveniência do LocalStorage, mas com melhor desempenho. A intenção é entregar isso como o primeiro exemplo de um módulo integrado, aproveitando a proposta de mapas de importação.

O ecossistema JavaScript teve uma abordagem um pouco fraturada para armazenar e armazenar dados em cache localmente. Conforme explicado por Philip Walton, engenheiro de software do Google que trabalha na plataforma Web,

Os fornecedores de navegadores e especialistas em desempenho da Web têm dito, durante boa parte da última década, que o localStorage é lento e os desenvolvedores da Web devem parar de usá-lo. Para ser justo, as pessoas dizendo isso não estão erradas. localStorage é uma API síncrona que bloqueia o thread principal e, sempre que você acessá-lo, você pode impedir que sua página seja interativa. O problema é que a API localStorage é tão tentadoramente simples, e a única alternativa assíncrona ao localStorage é o IndexedDB, que (vamos encarar isso) não é conhecido por sua facilidade de uso ou API de boas-vindas.

A Web Incubator CG (WICG) recentemente promoveu o KV Storage para fazer parte da especificação do W3C IndexedDB. KV Storage semelhante ao localStorage no utilitário, mas mais moderno e fica em camadas em cima do IndexedDB. A especificação exige que ele seja implementado pelos fornecedores de navegadores como um módulo interno e use o IndexedDB como seu backing store.

Exemplo de uso da API de armazenamento KV conforme fornecido pela especificação:

import { storage } from "std:kv-storage"; // specifier prefix not final

(async () => {
  await storage.set("mycat", "Tom");
  console.assert(await storage.get("mycat") === "Tom");

  for await (const [key, value] of storage.entries()) {
    console.log(key, value);
  }
  // Logs "mycat", "Tom"

  await storage.delete("mycat");
  console.assert(await storage.get("mycat") === undefined);
})();

Existe um polyfill de Armazenamento KV para navegadores que suportam IndexedDB.

O módulo KV Storage é resolvido conforme definido na iniciativa Biblioteca Padrão do JavaScript e seu suporte para mapas de importação.

Os mapas de importação não são um conceito novo e faziam parte de sistemas de módulos JavaScript anteriores, como AMD e sistemas de módulos em outras linguagens de programação. Sua inclusão com módulos ES padrão é nova. Essa proposta de mapas de importação fornece controle sobre as URLs obtidas por instruções de importação JavaScript e expressões import () e permite que o mapeamento seja reutilizado em contextos que não são de importação. Os mapas de importação permitem instruções de importação simplificadas, resoluções de módulo de fallback, polyfills para módulos internos e compartilhamento de contextos entre as tags de busca, de imagem e de link e muito mais.

A implementação bem-sucedida desses dois novos recursos altamente esperados deve melhorar significativamente o processo pelo qual os recursos são adicionados a versões futuras do JavaScript e fornecer APIs da Web adicionais convenientes. Importar mapas e módulos embutidos se esforçam para resolver uma parte faltante do manifesto web extensível.

Os desenvolvedores que desejam experimentar hoje com armazenamento KV pode alavancar o polyfill, ou instalar um Dev Chrome ou a versão Canárias de Chrome 74. Antes do lançamento dominante desses recursos, os desenvolvedores podem tornar esses recursos disponíveis para todos os usuários Chrome 74+ para domínios específicos, registando interesse no teste de original do Armazenamento KV.

Stack Overflow Survey: JavaScript ganha linguagem mais popular

Para aqueles que acompanham as pesquisas do Stack Overflow, saiu recentemente os resultados da pesquisa de 2019. Está é a maior e mais abrangente pesquisa do mundo para envolver programadores e suas preferências. A edição de 2019 desta pesquisa tocou cerca de 90.000 desenvolvedores.

Do que toca o JavaScript, a linguagem ficou em 1º lugar em popularidade entre todos os tipos de linguagem (programação, marcação, query, etc…). Este é o 7º ano seguido!!

Para uma listagem completa acesse: https://insights.stackoverflow.com/survey/2019#technology-_-programming-scripting-and-markup-languages


Outros resultados interessantes para o mundo JavaScript são os resultados sobre os frameworks web e é possível ver através da imagem abaixo que os frameworks para JS estão muito fortes:

Acesse: https://insights.stackoverflow.com/survey/2019#technology-_-web-frameworks

Por último, na categoria outros frameworks, bibliotecas e ferramentas, temos mais um representate de peso em 1º lugar e diversos com um bom posicionamento:

Para a listagem completa da imagem acima, acesse: https://insights.stackoverflow.com/survey/2019#technology-_-other-frameworks-libraries-and-tools


Os resultados da pesquisa são bem mais abrangentes que os 3 itens mostrados acima, vale apenas acessar o link oficial do Stack Overflow e conferir todos os detalhes, como linguagens que maid adoradas/odiadas, IDEs e outras pesquisas que eles fizeram para você saber melhor como estão as opiniões dos profissionais da area em relação as tecnologias atuais.

JNation: Confêrencia para Desenvolvedores Java e JavaScript

A JNation é uma conferência de desenvolvedores atualmente incorporando Java e JavaScript em sua essência, as duas linguagens de programação mais populares do mundo. A conferência que traz a Portugal diversos desenvolvedores conhecidos mundialmente ao Convento São Francisco, em Coimbra.

Para aqueles que podem se viajar até o local, no ano passado, a conferência contou com mais de 450 participantes, sendo que quase metade dos participantes tinham mais de 6 anos de experiência.

 O orador mais esperado e já anunciado é Venkat Subramaniam, professor na Universidade de Houston, autor premiado de livros de referência para qualquer programador, tais como “Practices of an Agile Developer” ou “Rediscovering JavaScript”, e fundador da Agile Developer, Inc. É Venkat quem faz o keynote de abertura.

Depois desta primeira sessão, os participantes vão dividir-se em 4 salas onde mais de 24 oradores vão partilhar as suas experiências e apresentar novidades de Java e JavaScript. Até dia 31 de março, os bilhetes estão disponíveis em jnation.pt a um preço reduzido, havendo também descontos para estudantes. Mas há mais oradores já confirmados (veja a lista oficial: https://jnation.pt/our-speakers/): Emily Jiang (IBM), Paulo Lopes (Principal Software Engineer, Red Hat), Burr Sutter (Founder, DevNexus), Philipp Krenn (Developer Advocate, Elastic) e Carlos Sanchez (Principal Software Engineer, CloudBees).

Esta segunda edição do evento traz a novidade do JavaScript. A edição do ano passado foi dedicada exclusivamente à comunidade Java. Dois meses antes da conferência ter lugar, já não havia bilhetes para a participar na JNation. Como causa, Roberto Cortez e Bruno Baptista, organizadores do evento, apontam: “nunca tinha havido uma conferência de Java em Portugal que desse o privilégio de falarmos com pessoas que só vemos nos códigos dos programas com que trabalhamos”.

A patrocinar a conferência estão marcas como Idealista, Present Technologies, Mercedes-Benz.io, Red Hat, Wit Software, Mindera, Blip, La Redoute, Feedzai, Tomitribe, Bosh e Critical Software.

A JNation está a ser organizada por duas comunidades de programadores: a JUG Coimbra, comunidade de programadores de java, e a undefined.js, comunidade de programadores de JavaScript, e ainda pela AlphaCoimbra, um grupo que tem como missão sedimentar o ecossistema empreendedor e tecnológico na cidade.

Fonte:

Site Oficial da Jnation

Tataruga Imobiliaria