JOB DESCRIPTION:
- 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 and 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, and high availability with the Client.
- Document requirements and specifications
- Troubleshoot issues and debug codebases.
- Adapt new technologies, tools, and processes from the organization as needed.
- Work with Product Owners and team members to meet all project deliverables and milestone dates.
- Communicate well with team members and suppliers and work collaboratively - Work with cross-functional engineering teams, Platform, and QA to meet all project deliverables and milestone dates.
JOB QUALIFICATIONS (REQUIRED):
- 13+ 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, and 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 and 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, and other messaging protocols.
JOB QUALIFICATIONS (PREFERRED):
- 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 teams with quick decision-making.