
Software Engineer
Kestrel Vision
Job description
JOB IDENTIFICATION
Job Title
Software Engineer
JOB MISSION
A short description of the reason why the position exists.
The Software Engineer designs, develops, tests, implements, and supports software solutions for machine vision inspection systems used in high-speed manufacturing environments. This position is responsible for the full software development lifecycle, including requirements analysis, architecture, coding, testing, documentation, troubleshooting, and continuous improvement. The Software Engineer collaborates with multidisciplinary engineering teams, production, sales, service, and customers to deliver reliable, intuitive, and high-performance software solutions that support business objectives and customer success.
RESPONSIBILITIES
Significant Activities and Projects related to the Mission.
Software Design & Development
-
Design, develop, test, and maintain software applications and components for machine vision inspection systems.
-
Participate in all phases of the software development lifecycle, including requirements gathering, design, implementation, testing, deployment, and maintenance.
-
Develop efficient, scalable, and maintainable software using accepted engineering principles and coding standards.
-
Design and implement intuitive graphical user interfaces that simplify complex machine operations.
-
Analyze software requirements and translate them into technical solutions.
-
Create and maintain software documentation for both internal and customer-facing use.
Testing & Quality Assurance
-
Perform software testing, validation, and troubleshooting activities to ensure compliance with quality standards.
-
Assist in product testing and software release verification activities.
-
Analyze software performance and identify opportunities for optimization and improvement.
-
Investigate and resolve software defects in a timely manner.
-
Support continuous improvement of development, testing, and deployment processes.
AI and Development Automation
-
Utilize approved AI-assisted development tools and software agents to improve productivity across the software development lifecycle, including requirements analysis, code development, testing, debugging, documentation, and technical research.
-
Evaluate and apply AI-generated recommendations while exercising sound engineering judgment, validation, and quality assurance practices.
-
Identify opportunities to leverage AI tools and automation technologies to improve software quality, development efficiency, customer support, and internal engineering processes.
-
Stay current with emerging AI technologies, agent-based workflows, and software development tools that may enhance product capabilities and engineering effectiveness.
Technical Support & Customer Engagement
-
Support customers during software implementation, startup, troubleshooting, and performance optimization activities.
-
Analyze customer logs, diagnostics, and operational data to identify root causes of system issues.
-
Conduct software demonstrations and assist with customer training programs.
Cross-Functional Collaboration
-
Collaborate with Electrical, Mechanical, and Manufacturing Engineering teams to deliver integrated solutions.
-
Work closely with international software development teams to ensure alignment of software standards and best practices.
-
Support Production teams by resolving technical issues and improving software-related processes.
-
Contribute to software architecture discussions, design reviews, and technical problem-solving activities.
-
Share knowledge and provide guidance to team members when appropriate.
Continuous Improvement & Innovation
-
Remain current on evolving software development technologies, tools, and methodologies.
-
Research and evaluate new technologies that may enhance product capabilities and performance.
-
Recommend improvements to software standards, processes, and development practices.
-
Take ownership of assigned projects and drive tasks to successful completion with a strong focus on quality, reliability, and customer satisfaction.
SKILLS AND COMPETENCIES (KNOW-HOW)
The knowledge and skills needed to perform the job effectively, encompassing technical, managerial, and interpersonal skills. Includes the depth and breadth of the expertise required.
Practical/Technical Skills (Depth and scope of knowledge. Technology and Tools)
-
Proficiency in object-oriented software development principles and methodologies.
-
Experience with programming languages such as C, C++, C#, and related technologies.
-
Knowledge of Microsoft Windows operating systems and software development environments.
-
Experience with Microsoft Visual Studio and related development tools.
-
Understanding of software architecture, design patterns, and application lifecycle management.
-
Familiarity with source control systems such as Git, Azure DevOps, Team Foundation Server, or equivalent platforms.
-
Knowledge of software testing, debugging, validation, and quality assurance practices.
-
Familiarity with multi-threaded and multi-process software architectures.
-
Understanding of graphical user interface development and user experience principles.
-
Experience with XML, .NET technologies, communication protocols, and system integration concepts.
-
Familiarity with Agile software development methodologies.
-
Machine vision, image processing, and industrial automation experience preferred.
-
Working knowledge of cameras, lighting systems, inspection technologies, and manufacturing environments preferred.
-
Proficiency using AI-assisted development tools, code-generation platforms, and intelligent software agents.
Managerial Skills (Knowledge required for integrating and managing activities and functions)
-
Strong project planning, prioritization, and execution abilities.
-
Demonstrates ownership and accountability for assigned work.
-
Ability to identify risks, develop solutions, and drive issues to resolution.
-
Supports continuous improvement initiatives and process enhancement efforts.
-
Works independently while collaborating effectively across multiple functional teams.
-
Maintains a quality-focused approach while balancing customer and business requirements.
Interpersonal Skills (Communicating, influencing)
-
Excellent verbal and written communication skills.
-
Ability to communicate technical information to both technical and non-technical audiences.
-
Strong analytical and problem-solving abilities.
-
Ability to build productive working relationships with customers, suppliers, and internal stakeholders.
-
Customer-focused mindset with a commitment to service excellence.
-
Detail-oriented and methodical approach to problem solving and decision making.