Full Stack Engineer
About The Position
We are looking for a talented software engineer to join our server team, in charge of developing Aqua's management console - a multi-component system with many responsibilities, performing various background jobs and large-scale data processing; supplying REST APIs, a web based UI and more.
In this role, you will take part in further development of our Agent team, writing features across the entire application stack: SQL queries, business logic, background processes, REST APIs. At Aqua, you will not be writing code for in-house applications. You will be writing code for large technology companies, banks, government agencies and multi-national chains.
Our product is composed of multiple components, mostly installed on-premise in our customer's cloud environments, but also has SaaS components, plugins for various CI/CD systems and many more. Almost everything runs inside containers. It is written in Go - an exciting new language from Google, and heavily depends on free software/open source components. Our web UI is currently written in to Vue.js . We are primarily a Linux company, but our software also supports Windows and Mac. Our R&D team is comprised of both young and experienced developers who love what they do. We are using cutting-edge technologies in an environment that encourages new ideas and experimentation.
- Track record of delivering various features in large-scale applications or core systems. If you've written code in big data applications handling multitudes of data or real-time events, you're in.
- At least 2 years of experience writing multi-component systems or micro-services, with architectures requiring efficient inter-application communication. If you know what Kafka is, and think it's the bee's knees, we will think the same of you.
- Experience writing in a high-level language such as Go, Java, Python, Ruby, etc.. If you're already writing Go, or spent a weekend debugging the worse memory leak ever, that's a big plus.
- Experience writing APIs (either RESTful or not) and RPCs. If you've broken backwards compatibility for your customers once, and dealt with the fallout, we want you (to deal with the fallout again).
- Experience with RDBMS systems (e.g. MySQL, PostgreSQL, Oracle, SQLite) and/or NoSQL databases (e.g. MongoDB, Redis, Cassandra, Couchbase). If you've written queries with more than two joins, or have a strong opinion of why an integer is better as a primary key (or maybe a UUID), we'd like to hear from you.
- Experience with container platforms and orchestrators such as Docker, Kubernetes and OpenShift is a plus. If you can name one way in which a container is different than a regular process, you're golden.