You will be a key member of the Engineering team, working side-by-side with a multi-discipline SCRUM team. You will work closely with product managers, engineering and marketing leadership to create stunning products that enhance the user engagement.
In short, you will help make our products beautiful, fun and easy to use.
Duties and Responsibilities:
- Implement changes that precisely match product specifications;
- Help improve specification by asking questions about edge cases and behavior during the planning and scoping stages;
- Provide product feedback to the rest of the team when new ideas and problems arise;
- Focus on projects that have an impact on improving business metrics and allow the team to quickly implement A|B tests to help determine improvements;
- Increase the visibility of service performance and health and ensure we have the appropriate logs/alerts in place to respond quickly and recover from problems;
- Improve the stability and performance of the backend services, and increase visibility into the health of the system by improving our logging, alerting, and process around recovering from problems;
- Write code that has been tested well enough before shipping so that we do not cause a noticeable increase in the number of support issues filed over time;
- When critical bugs are shipped to production, proactively identify root causes and take the appropriate resolution actions so that we can recover quickly;
- Stay up to date on the latest technologies relevant to the backend tech stack, and use this knowledge to implement new features and changes if they’ll provide a better experience;
- Proactively assist other engineers on the team in fixing bugs and shipping features and updates;
- Write maintainable code that can be quickly updated as needed, and is testable and easily understood by other engineers on the team;
- Provide fairly accurate engineering time estimates;
- Be on call from time to time if there are critical issues on production that need debugging;
- Take ownership and responsibility to finish the features and issues assigned to you, while collaborating with the team;
- Assist deploying builds to production and QA environments, and have visibility on the status of Pull Requests and builds as they get deployed;
- Provide helpful code reviews and ensure PRs do not linger with long delays in review time;
- Devise innovative and cost-effective strategies for identifying and preventing bugs;
- Proactively refactor code that needs improvement, but without getting lost in constantly refactoring projects;
- Build a secure application architecture and work with other teams to build a secure information architecture;
- Become a reliable go-to resource on the team for feature changes and updates as new projects arise, such that you can be relied on to ship the changes in a timely manner at the quality level expected by the team.
- 2+ years of Java development experience;
- Strong OOP experience;
- Experience with Maven, Junit;
- Database experience desired;
- NoSQL experienced desired;
- Experience working in distributed systems;
- Experience architecting backend systems using Java based microservices;
- Good understanding of AWS Cloud (EC2, S3, ECS);
- Exposure to CI/CD, static code analysis;
- Previous experience as a technical lead desired.