Roles and Responsibilities:
- Write well defined and tested code for better maintainability and performance.
- Document work and engage in quality testing/validation for changes or improved features before releasing to the customer,
- Maintain, improve existing codebases, and peer review code changes.
- Software Development craftsmanship - Code Quality, Automated Testing, and Agile best practices
- Solve complex problems around connected vehicle technology.
- Solve challenging distributed systems problems around scalability, reliability, low latency, high availability with Client.
- Document requirements and specifications.
- Troubleshoot issues and debug codebases.
- Adapt new technologies, tools, processes from the organization as needed.
- Work with Product Owner’s and team members to meet all project deliverables and milestone dates.
- Communicate well with team members, suppliers, and work collaboratively - Work with a cross-functional engineering teams, Platform, QA to meet all project deliverables and milestone dates.
Experience and Qualifications:
- 10+ years of software engineering experience. Strong experience in developing services and applications in Java, Golang or similar languages.
- Recent experience in developing and managing highly available distributed applications using toolkits such as Spring Boot, Git, Docker, DevOps tools.
- Good understanding of various Design Patterns in building highly available, highly scalable distributed applications connecting a large volume of devices, serving millions of users.
- Good understanding of Security Best Practices to implement security at various levels to protect the devices & data.
- Must have Programming / Scripting Knowledge such as Java, Python, Groovy, etc.
- Expert level technical knowledge in developing cloud native applications – covering infrastructure, platform, and software as services.
- AWS Technical knowledge in – API Gateway, R53, EC2, ECS, ECR, IoT, CFTs, CloudWatch, RDS/ DynamoDB, SNS/SQS, Lambda, S3 etc.
- Developing and designing REST APIs using JSON, other messaging protocols.
Preferred Skills:
- Experience with one or more programming languages such as: JavaScript and/or Golang.
- Experience designing and implementing large scale distributed systems.
- Very good problem-solving skills with knowledge of algorithms, data structures, and complexity analysis.
- Familiarity with Agile/Scrum methodology.
- Strong analytical and reasoning skills.
- Ability to communicate well with team and other technical stakeholders for implementation.
- Ability to work in fast paced