What are the responsibilities and job description for the Software Engineer position at Precision Additive?
We are seeking a skilled full-stack Software Engineer to join a fast-paced, growing business. The ideal candidate will have a passion for high-performance computing, hardware systems, and scalable software, with an interest in building data-driven and intelligent solutions. Expertise and experience developing complex, memory-efficient applications using C# (.NET) and Python are required.
This role will be responsible for developing and maintaining efficient, scalable, and high-performance applications that power data ingestion and analysis pipelines to inform quality control in our 3D printers. The ideal candidate will also help lay the foundation for integrating data science and machine learning capabilities to continuously improve print performance and enable future AI-driven features.
Responsibilities:
- Refactor existing codebases to be scalable, maintainable, and adaptable for data-driven and production-ready applications.
- Identify and demonstrate opportunities for improvement during development (e.g., memory efficiency, compute performance, and data processing pipelines). Troubleshoot, debug, and optimize.
- Deliver reusable and efficient code with full test coverage, including components that support data collection, processing, and analysis.
- Provide well-documented code, data flows, and processes to support future analytics and machine learning initiatives.
- Contribute to and/or deliver full-stack production-ready applications, including systems that capture and utilize machine or sensor data.
- Design and implement data pipelines to support analysis, modeling, and continuous improvement of system performance.
- Collaborate on the development and integration of data science and machine learning models into production systems (e.g., print optimization, anomaly detection, predictive maintenance).
- Provide frequent and prompt progress reports concerning production-ready applications and data-driven features.
- Implement new features as required, including those leveraging data insights or AI-driven functionality.
- Perform code reviews and contribute to best practices across software engineering and data/ML workflows.
- Integrate custom code into third-party software, APIs, and data platforms.
- Stay up to date with the latest industry trends in software engineering, data science, and AI/ML to bring best practices to the development process.
- Participate in software architecture discussions and design processes, including systems that support scalable data collection and machine learning deployment.
- Strong communication and collaboration skills, with the ability to work across software, hardware, and data-focused teams.
Qualifications:
- 5 years of professional software engineering or software development experience, with expertise in C# (.NET) and Python. Experience using Python for data analysis or scientific computing is a plus.
- A BS or MS degree in Software Engineering, Computer Science, an engineering-related technical field, or equivalent experience.
- Understanding of cloud platforms (e.g., AWS, Azure), local platforms (Ubuntu Linux) and containerization (e.g., Docker), including deploying data-driven or ML-enabled services.
- Strong understanding of high-performance algorithms, asynchronous computing, memory management, data structures, and software design practices.
- Experience or exposure to data processing, data pipelines, or wo rking with structured/unstructured datasets.
- Familiarity with data science or machine learning tools and frameworks (e.g., Pandas, NumPy, scikit-learn, PyTorch, TensorFlow) is a plus.
- Experience with time-series data, sensor data, or industrial/manufacturing systems is a plus.
- Understanding of model deployment, monitoring, or MLOps concepts is a plus.
- Excellent problem-solving skills and attention to detail.