Software Architect - C++ (ML & Robotics)

40.0 years

0.0 Lacs P.A.

Bengaluru, Karnataka, India

Posted:1 week ago| Platform: Linkedin logo

Apply Now

Skills Required

softwaremlroboticsvisualstacktrainingvideocustomizationdevelopervisionlearningalgorithmsapilibraryuicompositionscalabilitydevelopmentdesigncodingcodesupportideintegrationdebugginglicensingarchitecturemanagementtestprofilingcompilerlayerscudaengineeringprocessingdrive

Work Mode

On-site

Job Type

Full Time

Job Description

About CynLr Just like a baby’s brain, CynLr Visual Intelligence stack makes Robots to instinctively see & pick any object under any ambience, without any training . ( a demo video link ). Today, we don’t have a robot that can fit a screw into a nut without slipping a thread. Imagine what it would take for a robot to assemble a Smartphone or a car by putting together 1000s of parts with varied shapes and weights, all in random orientations. Thus factories become complex, needing heavy customization of their environment. CynLr-enabled visual robots intuitively handle any object, even from a clutter – a universal alternative to custom machines, simplifying factory lines into modular LEGO blocks of micro-factories. Simplifying factories with robots that can pick & place any object has been a 40-year-old pipe dream - touted as The Holy Grail of Robotics . As a SW developer, you will be responsible for building the entire Vision & Learning SW Stack, Task & Robot Control OS, extensively optimising the performance of these algorithms, translating them into an API library for Internal Engineers and Customers, along with creating a UI layer for the end users. Requirements in Practice : Setting up the Project Framework and breaking down the composition of the Software - scalability, modularity & maintainability. Set up a development framework for the distributed development of Software to ensure – Scalability, Modularity and Maintainability. Design and set the Coding standards and guidelines along with the review process to assess the Scalability, Modularity and Maintainability of the code across every stage of Software Development Lifecycle Identify the platforms, Setup Tool Chains and support APIs needed for every stage of the Development process – Visual Studio IDE setup, Continuous Integration, Debugging for Multi-Threads, Licensing, Cross Language Licensing, Dependency Bundling, etc. Set up the C++ project templates for Services Architecture, API structure and state machine. Design the development process for Parallel Threaded Coding and debugging. Train the team with Debugging skills and the nuances of performance improvements with C++. Design the Dependency architecture and version management system Design the release management system & API/Library Licensing. Design Test Frameworks for Integration, distribution, Performance profiling & Safety. Must have an understanding of : Compiler working and construction. CPU architectures – x86, x64 & ARM Hardware-associated driver development. OS and layers (Board Support Packages, BIOS, UEFI, BootLoader) Memory architectures and optimizations. MIMD, SIMD Good to have experience and practice with GPU-based application development. Knowledge of CUDA (Excellency is not necessary) State machine architecture Realtime computing UI-based deployable application development Team Structure: The engineering team will comprise of – Algo Team, GPU Team, Software Dev Team & HW Team. Members of other teams will be passive members of each team, apart from the team they lead. The Algo Team will provide the Neural Models & Vision algorithms, while the GPU Team will provide the GPU optimizations for the algos, Hardware team will provide the HW integration and the Software team with translate GPU optimized algos into SW blocks. Each team will split the implementation among other teams and guide them through the implementation. Every team member will be a passive member of all other teams. What will you do? Your contribution is predominantly (but not confined only to) architecting, defining test cases, reviewing & implementing all the SW & firmware parts and development effort - the image processing, Neural Models, APIs, vision sequences, manipulation sequences, drivers, etc. Your thorough knowledge of system architecture, C++ skill set, design patterns & your penchant for application-oriented SW design thought processes, will drive and implement the whole software design & development part. You will also provide architectures and approaches for the drivers to be developed to keep them modular and scalable, and consistently review them all. How will you Do? You have complete freedom here, but you will be subjected to reviews. Since this is a startup and the product is not yet well-defined, you would be the one with the responsibility of defining it. Expect things to be not orderly and requirements to not be solid. Part of your design effort largely involves requirements building, too and developing architectures that are agnostic to such requirement changes. The SW part of the product significantly evolves as per your thought process and will henceforth carry your signature in it. You will also be building a team as the product evolves to maintain and develop further. Though confined to a focused area, the work is pretty much expected to be entrepreneurial with the exact advantages and difficulties of a startup. Show more Show less

CynLr
CynLr
Not specified
No locations

RecommendedJobs for You