Software Developer
Indianapolis, IN
Employment Type:
Full-TimeIndustry:
Additive ManufacturingWorkplace Type:
OnsiteJob Summary:
We are seeking a skilled full-stack Software Developer to join a fast-paced, growing business. The ideal candidate will have a passion for high performance computing algorithms, hardware, and scale. Expertise and experience with developing complex memory efficient projects using both C++ and Python languages is a requirement. The candidate will be responsible for developing and maintaining efficient, scalable, and high-performance applications for data ingestion that informs quality control in our 3D printers.
Responsibilities:
- Refactor existing codebases to be scalable and maintainable in production-ready applications.
- Identify and demonstrate opportunities for improvement during development (i.e. memory efficiency and compute algorithms). Troubleshoot, debug, and optimize.
- Deliver reusable and efficient code with full test coverage.
- Provide well documented code and processes.
- Contribute to and/or deliver full-stack production-ready applications.
- Provide frequent and prompt progress reports concerning production-ready applications.
- Implement new features as required.
- Perform code reviews and contribute to best practices.
- Integrate custom code into third party software and services.
- Stay up to date with the latest industry trends and technologies to bring best practices to the development process.
- Participate in software architecture discussions and design processes.
- Strong communication and collaboration skills.
Qualifications:
- 5+ years of professional software engineering or software development, with expertise using C++ and Python languages.
- A BS or MS degree in Software Engineering, an engineering related technical field, or equivalent experience.
- Understanding of cloud platforms (e.g., AWS, Azure) and containerization (e.g., Docker).
- Expertise in asynchronous programming.
- Strong understanding of high-performance algorithms, asynchronous computing, memory management, data structures, and software design practices.
- Familiarity with RESTful APIs and web services.
- Excellent problem-solving skills and attention to detail.
Preferred Skills:
- Experience with machine learning libraries (e.g., TensorFlow, Keras, PyTorch).
- Experience with distributed GPU computing.
- Understanding of microservices architecture.
- Experience with databases (e.g., PostgreSQL, MySQL, MongoDB).
- Familiarity with front-end technologies (e.g., HTML, CSS, JavaScript).
- Experience with CI/CD pipelines and DevOps practices.
- Experience programming micro-controllers.
- Experience with robotics.
- Experience with image analysis.