Software Engineer - Java / Full-Stack DevelopmentOverview / Summary We are seeking a Software Engineer with experience designing, developing, testing, and maintaining software applications and products. This role involves working across the full software development lifecycle, including software architecture, coding, testing, deployment, and application optimization.
The position focuses on developing software solutions for automotive vehicle power management and controls/optimization. The role may involve both front-end and back-end development, including user interfaces, APIs, and microservices.
Key Responsibilities - Engage with customers to understand their use cases, pain points, and requirements and advocate for user-centric software solutions.
- Design, develop, test, and deliver software applications using appropriate tools, languages, frameworks, methodologies, and technologies.
- Assess application or service requirements and determine appropriate technology stacks, integration methods, and deployment strategies.
- Create high-level software architecture designs outlining application structure, components, and interfaces.
- Collaborate with cross-functional teams, including product owners, designers, and architects.
- Define and implement software testing strategies, guidelines, policies, and processes.
- Continuously improve application performance and optimize software solutions.
- Implement new technologies to improve development efficiency.
- Apply software development practices including test-driven development, continuous integration, and continuous delivery.
- Support security practices designed to safeguard user data, including encryption and anonymization.
- Create user-friendly and interactive interfaces.
- Develop and maintain back-end applications, including APIs and microservices, using server-side languages.
- Evaluate and incorporate emerging technologies and capabilities to deliver software solutions.
- Participate in solutions involving new technology stack layers and industry collaboration.
- Refactor code to improve quality and use build tools to optimize performance.
- Optimize applications for different delivery platforms, including mobile and desktop.
Required Qualifications - Bachelor's degree.
- 6+ years of experience in IT.
- 4+ years of professional software development experience.
- 4+ years of experience developing web-based applications using object-oriented development.
- 4+ years of experience with Java Enterprise concepts.
- 4+ years of experience with Agile practices such as SAFe, Scrum, Kanban, or TDD.
- Experience with Java and Spring Boot.
- Experience with Spring Platform technologies, including Spring MVC, Spring JDBC, and Spring Cloud.
- Experience with Angular, React, TypeScript, or JavaScript; Angular is preferred.
- Experience with PostgreSQL and SQL, including table design, creation, and modification.
- Experience with microservice architecture and REST APIs.
- Experience with SOAP/WSDL/XML/SOA.
- Experience with automated testing and testing tools such as Karma, Jasmine, or JUnit.
- Experience with continuous integration and continuous deployment technologies such as Jenkins CI or similar.
- Experience with web front-end development.
- Experience with GCP.
- Experience developing and maintaining APIs.
- Strong software engineering and software design knowledge.
- Knowledge of object-oriented design principles.
- Experience with test-first/test-driven development.
- Strong verbal and written communication skills.
- Collaborative, positive, and self-motivated approach.
- Ability to drive tasks to completion and take ownership of projects.
Work Arrangement - Hybrid position with 4 days per week onsite.
#LI-Hybrid #LI-AA1