Descrizione del lavoro:
The Messaging team at (COMPANY NAME) owns the software and infrastructure that sends over 5 million messages every day and serves millions of customers worldwide. Up to 16 Marketplaces from the (COMPANY NAME) group all over the world use our infrastructure and integrate their applications using our SDKs to enable chat in their web sites. Our team is formed by a group of 30 multicultural individuals from different areas such as UX, Product, Data and Tech that work together to develop top-of-the-line software products.
Our technology stack includes Java, Spinnaker, Docker, Cassandra, Postgres and AWS. Our engineering practices include CI, Microservices, unit testing and DevOps. We develop software that is a key functionality to all marketplaces. We have thriving business problems to solve and interesting technical challenges including API/SDK building, scalability or DevOps.
* Compelling working experience in a Java 8/JEE/Kotlin/Scala back-end environment (preferably using Agile / Kanban methodology). Spring and Spring Boot knowledge is a plus.
* Used to play around with web protocols, web servers & application servers in Linux and MacOS environments.
* Fluent in the comprehension and use of Object-Oriented design patterns, able to make architectural decisions.
* Experience in building and maintaining systems at scale: service discovery, load balancing, secret management, dynamic request routing, circuit breakers and deployment schemes (rolling updates, canary, etc.)
* Experience with high traffic systems and distributed systems and databases.
* Development best practices used: Pair programming, code review, clean code, CI/CD preferably with experience in Travis and Spinnaker.
* Understands Quality by design, and consistently works with Unit testing, Integration Testing, (JUnit, TestNG)
* Fluent with REST APIs, RPC, and Microservices architecture
* Must show initiative, proactively finding, discussing and solving product and software problems
* You love developing good quality software
* Ownership and result oriented person.
* Have a team-player spirit, which benefits the group vs the individual
* Good written, spoken and interpersonal communication skills; technical and business level English is a must
* Experience with any AMQP technologies
* Experience with AWS, Docker, Kubernetes
* Experience with Kafka and Kafka Streams.
* Experience with SQL and NoSQL (Cassandra, DynamoDB or MongoDB) technologies.
* Experience with monitoring tools preferably Grafana
* As a Back-End engineer, you will help build state of the art systems that have real revenue-generating impact.
* Engineer and implement highly scalable systems, using the best development practices and tools.
* Help define our development environment, and communicate the best development practices within the organisation (i.e. code reviews, testing, etc)
* Continuously monitor the quality of our systems, design measurements to monitor their health (both the engineering systems and data integrity)
* Keep on top of the latest and greatest developments in distributed systems and the cloud
* Work closely with other teams (Stakeholders, Data Science, Product and UX) at (COMPANY NAME) to drive product development
* Be creative and experiment with new solutions yet pragmatic and committed to code optimisation, maintainability, and quality
Videos To Watch