As a Senior/Principal Software Engineer at Edgewise, you will develop a geographically distributed command & control platform for real time collection, analysis, and action on endpoint telemetry data from 10M agents producing 100M records per second at scale.
Must be comfortable with modern Java stack:
- Java 8
- Spring, Spring Boot
- Hibernate ORM, JPA, JDBC, FlywayDB
Other languages are a plus: Python, Go, Scala.
- Relational and NoSQL/document DBs - PostgreSQL, MySQL, MongoDB,
- DynamoDB, RethinkDB, Cassandra, Redis.
- Stream processing and message bus technologies – Kafka, RabbitMQ, AMPQ,
- Amazon Web Services - at the very minimum - EC2, S3, RDS, ELB.
- Integration of backend services with UI frameworks (AngularJS, ReactJS,
Ideally familiar with:
- Scalable cloud based application design - service discovery, microservices
- architectures, cloud-native design patterns - autoscaling, circuit breakers, sharding,
- load balancing, fault tolerance.
- Docker container ecosystem, deployment using containers, clustering - swarm,
- Kubernetes, Mesosphere.
- High volume data streaming - Kafka, Amazon Kinesis, Storm, Spark Streaming
- Search engines - Elastic
- JVM performance and GC tuning for server applications.
- Approaches to monitoring, performance measurements and instrumentation at -
- high scale.
- Build processes for modern Java stack - gradle, maven, Jenkins pipeline.
Following best practices and writing clean robust code:
- Unit testing using JUnit, Mockito, JMock, Spock
- Code coverage and static analysis
- Minimizing boilerplate
- Code reuse across the team