We are seeking a self-driven, innovative, hands-on Principal Software Engineer to join our our engineering team, building the backend of the Edgewise cloud-based zero trust security platform.
The successful candidate will:
- Thrive in an energetic, highly collaborative workplace; actively engage in all phases of the development process
- Design excellent, scalable, sustainable software systems and components
- Identify gaps or deficiencies in the existing product and advocate for the necessary changes to address them
- Document, socialize, and prioritize architectural and non-functional requirements
Qualifications:
- 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
- Able to Follow best practices and writing clean robust code:
- e2e and Unit testing using Protractor, Selenium and Karma
- Code coverage and static analysis
- Minimizing boilerplate
- Code reuse across the team
- Quality over quantity of Java development experience
Working knowledge:
- Relational and NoSQL/document DBs - PostgreSQL, MySQL, MongoDB, DynamoDB, RethinkDB, Cassandra, Redis
- Stream processing and message bus technologies – Kafka, RabbitMQ, AMPQ, NATS
- Amazon Web Services - at the very minimum - EC2, S3, RDS, ELB
- Integration of backend services with UI frameworks (AngularJS, ReactJS, EmberJS)
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