Java Developer
Alpharetta, GA
Job Description:
Minimum years of exp 10 years
• Expert knowledge of Java 8 (Scala desirable), JVM ecosystem, memory model,tuning, threading, reactive streams, modularization
• Knowledge of Domain Driven Design concepts and microservices
• Expert knowledge of Spring ecosystem (Spring Boot, Spring Cloud, SpringIntegration, Spring Cloud Data Flow etc)
• Knowledge of NoSQL data stores and polyglot persistence (MongoDB, Cassandra,Neo4J, CouchDB)
• In depth knowledge of distributed systems concepts, CAP theorem
• Knowledge of event sourcing and distributed message systems (Kafka, RabbitMQ)
• API design and implementation (remote vs local APIs, routing and reverseproxying, load balancing, optimization techniques)
• Knowledge of distributed computing, in memory computing, map/reduce frameworks(Spark), streaming (Storm, Samza)
• Expert knowledge of build tools and dependency management (gradle, maven)
• Understanding of the testing pyramid (unit, functional, integration, system,API testing) and testing approaches TDD, BDD
• In depth hands on experience with virtualization approaches (VMs, containers,unikernels)
• Hands on experience with cloud based IaaS (OpenStack, AWS) and distributedschedulers (Kubernetes, Mesos)
• Expert knowledge of Unix OS, tuning, command line utilities
• Comfortable to operate in an agile, dynamic environment
Key Skills:
- Expert knowledge of Java 8 (Scala desirable), JVM ecosystem, memory model, tuning, threading, reactive streams, modularization