Position: Java Engineer
Company: NetLS
Experience required: 3y
English level: intermediate

We are seeking a Backend Software Engineer with a passion for building highly available distributed systems through elegant designs, clean code and team work; delivering consistently high quality solutions. You will be a core member of the Real Time Team and work in coordination with our Operations and QA team.

	Work on a scalable, distributed real time system that processes audio streams and produces real time analytics that will be made available for web based applications.


The client is a leading AI-Powered Voice Analytics company changing the way businesses think about customer conversational intelligence. The client empowers organizations with insights from conversational interactions.  Using a proprietary query language and AI, their solutions unlock actionable data for businesses from voice and text conversations.
Requirements
A Java engineer with 5+ years of experience who loves building scalable platforms.
Experience with the Java ecosystem and the Spring framework (required)
Experience with NodeJS is required.
Experience with Pulsar, Kafka, AWS Kinesis or similar streaming systems (required)
Experience using AWS services: S3, EC2, etc.
Able to analyze algorithms and design efficient solutions, ability to solve problems with ingenuity.
Strong communications skills.
BS/MS in Computer Science, Engineering or related field.
Nice to have
Experience with Kinesis Audio Streams.
Experience with ElasticSearch.
Experience with microservices using containers and Kubernetes.
Experience with Voice Analytics, Automatic Speech Recognition, and ML and NLP.
Experience with telephony technology (audio codecs, webrtc, sip/rtp, etc)
Experience with NodeJS and JavaScript.
Experience with WebSockets.
Responsibilities
Writing clean, readable, functional code with disciplined error handling and graceful degradation
Break down complex requirements and transform them into clean modular designs.
Build scalable, fault-tolerant microservices that work with data streams
Take ownership and accountability.
Collaborating with a distributed team.
Work in an Agile environment while releasing code frequently to production.