Job Description
As a Software Engineer, you are a member of a dynamic and agile engineering team responsible for building microservices that power our customer facing products and integrate it with marketing initiatives. You will work closely with other Software Engineers as well as your Engineering Manager to stay ahead of the curve with our products and architecture. You will participate in driving engineering craftsmanship and best practices on your team and drive improvements as-necessary.
What you’ll do
- Be a part of an agile team that makes and keeps regular commitments.
- Design, build, and maintain efficient, reusable, and reliable Java code.
- Ensure not just development, but testing is also part of the definition of done user stories to enable sprint success.
- Translate application storyboards and use cases into functional applications.
- Ensure the best possible performance, quality, and responsiveness of the applications.
- Completes applications development by coordinating requirements, schedules, and activities; contributing to team meetings; troubleshooting development and production problems across multiple environments and operating platforms.
- Updates job knowledge by researching new internet/intranet technologies and software products; participating in educational opportunities; reading and writing professional publications; maintaining personal networks.
- Participate in design and code reviews.
- Assist in building software applications that assist in tracking/marketing initiatives at a user level.
Qualification and Skills
- At least 4 years in software engineering with proven working experience in Java development
- At least 4 years experience in building, maintaining and scaling microservices and RESTful APIs
- At least 4 years experience with relational databases such as MySQL or PostgreSQL
- At least 2 years experience with Linux
- At least 2 years experience with unit and integration testing
- At least 2 years experience in Containerization and Docker
- At least 2 years experience with CI/CD
- At least 2 years experience in Amazon Web Services
- At least 2 years experience in troubleshooting and tuning of Java server applications (classloading, JVM memory management, thread pools, transaction management, etc.)
- Strong knowledge of software engineering best practices, design patterns, craftsmanship, metrics, quality and testing procedures, process creation, and enablement
- Fluent in English reading/writing/speaking
- At least 2 years of experience in building software applications to assist in marketing, using platforms similar to CAKE, Adjust, Branch io etc.
- Experience with Kubernetes & Service Meshes
- Experience building Analytics/Data Driven applications
- Experience with functional programming concepts and/or languages
- Basic PHP knowledge
- Basic Golang knowledge
- Experience with Spring Web FLux – reactive programming
- Experience building highly concurrent applications/jobs using modern concurrency constructs
- Experience with non-relational databases such as DynamoDB
- Experience with messaging/queuing systems such as Kinesis/Kafka/SQS and event-driven design patterns.