As a Backend Software Engineer working at Nexxiot you are part of an interdisciplinary agile product team, responsible for implementing software features according to the requirements and priorities provided by the Product Owner (PO). Working closely with the rest of the team, your goal is to design, implement and test software solutions and to operate and maintain the resulting software services according to our Site Reliability Engineering (SRE) practices. You are skilled and experienced in writing distributed backend services including data and software modelling, as well as API design.
You are a curious and open-minded team player who is keen to learn and develop new solutions. Goal oriented, well organized, and comfortable to work independently. Never afraid of reaching out to other staff members in order to gather the information and know-how needed to resolve the task at hand. You prefer to automate recurring tasks and to create tools that help conduct manual activities semi-automatically. You have technical writing capabilities (in English) which enable effective and understandable write-ups of knowledgebase entries and to document your software services, procedures, and tools. You are fluent in English, having decent communications skills. collaborating with your team members via chat channels, audio and video calls.
Our Backend Stack
- Kotlin / Java
- Apache Kafka
- SQS
- DynamoDB
- CockroachDB
- Docker
- Kubernetes
Responsibilities
As a Backend Software Engineer at Nexxiot, your role will consist of:
- Collaborating with your team to design, implement, test, roll out and maintain new features and services.
- Actively participating in discussions around design, solutions, and technology overall.
- Being proactive in finding improvements, tackling technical debt, writing, and improving documentation.
- Continuously improving the general state of our code base.
- Keeping up-to-date with the latest technologies and helping educate the team.
- Acting as onboarding buddy for new team members.
- Participate in agile software development activities (e.g. stand-ups, planning meetings, demos, retrospectives, …).
Requirements
Must:
- Good conceptual skills in developing solution designs and implementing them in software.
- Experience with working in an agile environment.
- Good algorithmic knowledge.
- Good software architecture and system design knowledge.
- Strong experience in writing software in Kotlin or Java. Linux/Unix shell know-how is a great plus.
- Strong experience with common backend engineering concepts, patterns, and technologies like SQL (PostgreSQL), NoSQL (DynamoDB), Message Queueing (SQS), Publish & Subscribe (SNS & Apache Kafka).
- Good knowledge of (RESTful) API design.
- Solid experience with Git, and CI/CD best practices (Gitlab CI).
- Solid knowledge of software testing; TDD is encouraged, but not mandatory.
- Containerized (Docker) workloads and Kubernetes deployments.
- Fluent in English (spoken and written).
Nice to have:
- Good Gradle knowledge is a plus.