What are the responsibilities and job description for the Experienced Software Engineer position at ECM PCB Stator Tech?
Job Summary
ECM is seeking a highly skilled software engineer to collaborate on all stages of the software development life cycle for our design and optimization API. The ideal candidate will possess expertise in designing, developing, modifying, adapting, and implementing short- and long-term solutions.
This role presents an opportunity to work with cutting-edge technology and tools, playing a critical part in building systems that drive innovation forward in the electric motor space.
Key Responsibilities
- Design, develop, and implement ECM's API to interface with our proprietary design and optimization software
- Translate the backend of existing software into RESTful endpoints
- Collaborate with the Director of Software Architecture on design and functionality
- Maintain and enhance the fault-tolerance and security aspects of the system
- Conduct code and design reviews, ensuring quality and best practices are followed
- Regularly communicate with the product manager, providing updates and feedback
Requirements
- B.S. in Computer Science or a closely related field (or equivalent experience)
- 3 years of professional software development experience, particularly in building RESTful APIs
- Experience with AWS, Docker, and Kubernetes
- Knowledge of fault tolerance and security best practices
- Experience with task queues and web sockets preferred
Desirable Skills and Tools
- Spring Boot: Experience in building and maintaining applications with Spring Boot
- AWS / DevOps: Experience in deploying and managing systems in AWS, using DevOps practices to ensure reliability and scalability
- Docker / Kubernetes: Familiarity with containerization and orchestration for a reliable and efficient infrastructure
- Fault Tolerance: Building robust and resilient systems that handle unexpected challenges with minimal disruption
- Security: Ensuring the highest standards of security for the API and the infrastructure it runs on
Soft Skills
- Flexible and willing to accept changes in priority as necessary
- Strong attention to detail
- Willing to accept and provide constructive feedback
- Ability to work independently (self-starter) and multi-task efficiently
- Eager to learn new skills and technologies