Job Description:
USA Based Product Company, engaged in research and development; looking for talented people to design, develop and deploy high quality software components for their camera systems. They are building cutting edge softwares as a part of our human vision and machine vision platform which includes core competent technologies like robotics, deep learning, artificial intelligence, computer vision and computational photography.
Job Purpose:
As a senior software development engineer, candidate would be working with team developing exciting products and cross- functional engineering teams. Candidate will work closely with design and research team to take the product from concept to customer release.
Duties & Responsibilities:
- Includes development, writing code and documenting the functionality.
- Integrating software components in different platforms.
- Implementing CV/ AI algorithms.
- Integrating softwares with camera hardware interfaces.
- Deploying functional software with operational specifications.
- Understanding different platforms and able to develop applications.
- Software includes user interfaces.
- Implement camera features
- Implement high quality drivers and HAL
- Work closely with internal customers
- Optimize for performance
- Providing testing facilities
- Work with hardware team to ensure correct exercising of hardware
- Lead a team of software development engineers, front-end software engineers.
Required Skills & Experience:
- Current and Extensive experience in developing software products.
- Understand the limitations and challenges in scaling of the software products.
- understand how to port the software and make it compatible with different platforms
- Understand the importance of software for B2B clients and have worked before.
- Understanding of embedded development constraints
- Knowledge of one or more specific technical areas such as camera, multimedia or audio.
- Have done testing of software during scaling stages
- Solid skills in C, C++
- Experience with one or more general purpose programming languages including but not limited to: Java, C/C++, C#, Objective C, Python, JavaScript, or Go
- Ability to develop softwares using Object Oriented Programming is a plus.
- Ability to develop applications on Linux. Windows platform is a plus.
- Experience in developing an end-to-end software.
Desired Skills & Experience / Bonus Points:
- Experience working low latency and high data throughput applications
- Video capture and camera pipeline processing experience
- Network/Socket Programming
- API library design experience
- High Performance Computer & Cluster experience
- Experience with STL and Boost libraries
- OpenGL/OpenCL/CUDA experience
- Camera HAL experience is a plus
- Linux on ARM CPUs is a plus
Qualification:
- Required expertise in Algorithms, Data structures, software engineering, distributed systems, database systems, Operating Systems.
- Masters degree in Computer Engineering or related field.
- 5+ years of experience doing hands on software development.
- 3+ years of experience working with computer vision based softwares.