Software Engineer Technical Lead
We are searching for a brilliant Software Engineer & Technical Lead who is passionate about protecting our water and creating vibrant communities, thrives with remote work, and integrates perfectly with our team. You have excellent software engineering skills, you are an expert at how to architect and implement code at both the component and application level, and you work great managing teams of developers and engineers to efficiently release high-quality feature sets.
You will be joining a small team, so communication skills are paramount. Being able to explain technical work to environmental engineers, sales people, scientists, and customers is all part of the job.
Every decision you make at StormSensor is impactful, and you have a voice in design, architecture, and implementation.
- You have strong written and verbal communication skills. It’s so important we listed it twice.
- You’re a deeply experienced software developer. You’ve built, shipped, and supported a lot of code.
- You’ve led one or more small teams of software developers.
- You’re a mentor. You’ve been there, and done it. And you can communicate collaboratively with everyone about it both verbally and in writing.
- You’re able to uphold quality standards in engineering, design, and security.
- You’ve pair-programmed with junior team members to enable them to work with new technologies.
- You’re comfortable writing code, dealing with databases, handling CI, and doing whatever else it takes to deliver value.
- You can talk APIs with customers, build a data model, write well tested code, and deploy to production.
- You have a focus on best practices and code readability. No tricks; you apply the principal of least surprise to your code.
- You’re egoless. You’ll make mistakes, you’ll fix mistakes, and you’ll grow from each experience.
- At least 5+ years’ experience as a full stack engineer using Java / JVM based languages on the backend and Angular/React for the frontend.
- Continuously mentor, teach, and lead teammates
- Deep understanding of time series data, service-oriented architectures, networking, messaging, message queuing, event streaming, service mesh technologies, and highly distributable systems
- Strong understanding of mutability/immutability, idempotence, streams, asynchronous design; You know what side-effects are, and how to minimize them
- Knowledge of MySQL/PostgresDB, Redis, TimescaleDB, NoSQL
- Fluency with Docker and working with container-based applications
- AWS cloud deployment experience
- Test driven development and deployment
- Explores alternatives and prototyping to validate hypothetical architectures or solutions
- Strong troubleshooting instincts and the ability to quickly triage / perform root-cause analysis
- Strong verbal and written communication skills
- Self-motivated with excellent time management and organizational skills
Tools We Use
- Java – Spring Boot, Gradle 6+, jOOQ, Lombok, Jackson, ModelMapper.
- Testing – AssertJ, RestAssured, Mockito, Awaitility.
- Database – MySQL/Postgres, complex queries, Flyway ETL and migrations, TimescaleDB
- Docker – Compose, building images, publishing images.
- AWS – VPC, RDS, EC2, ECS, Route53, S3, Cognito, Lambda.
- CI/CD – Jenkins, Groovy, Nexus/Artifactory, EFK, Grafana/Prometheus.
- DevOps – Ansible, Terraform, Linux scripting, RabbitMQ, Credential management.