You will be part of a 2 member LabVIEW development team, supported by the Founder on the architecture front and will work closely with the Design\Algo & C++ Development team. They are your internal customers.
Your primary contribution will be towards:
- Supporting ProductDesign and Algorithm Team in all LabVIEW Code development activities –Develop code and execute Experiments for algorithms, kinematics, and solutions that the design team comes up with.
- Translating the concepts that Design and algo teams comes up with into LabVIEW codes and experiments, adhering to the architecture and SW development life cycle.
- Performance coding and performance optimization of the code written – timing and memory.
- Build data visualizations to the needs of the Design and algo team
- Make more readily usable application UI for Lab Experiments to accelerate the Algo and design teams experiments.
- Code Refactoring: Owing to the rich experience in Architecting LabVIEW Development that the founders carry from their NI work experience, there is a strong Architecture, Design Pattern and coding guidelines put -in place. Understand the design pattern
- , Document, and translate the existing ‘spaghetti’ code bases and the new mock-up code of Design and Algo team to the coding standards with design pattern established by the founding team.
- Translate the development practices into the SW development lifecycle by proper Source Control, version control and Integration of the .dll Libraries developed by the C++ SW development team as the versions evolve, without breaking the existing code base.
- V&V: Coming up with test cases for the experiments and the code developed by the C++ Development team and interface the libraries and test for functionality and performance of the Algorithms developed. Executing the tests and validating the algorithms with HW-in-loop.
- Interface with the customer and support customer with application implementation and delivery.
- Be the LabVIEW knowledge base and support system for the Algorithm/Design engineers and freshers who join the organization.
- Excellent understanding of Data Flow paradigm and understand parallel programming.
- Experienced with dynamic spawning of threads, services and thread management.
- Excellent understanding of “Re-entrancy” (this beckons basic understanding of Compiler working).
- Experienced with handling Race conditions, reference leaks, memory leaks and memory profiling.
- Excellent hands-on experience with debugging, Error Handling and profiling. (If you are experienced, its obvious that we never get the solution in the first short. We arrive at the solution by correcting the mistakes from our first attempt. If we are not equipped well with debugging, we cannot ‘know’ what to correct!!)
- Fundamentals of Testing, types of testing and Test Development. Testand Experience is a plus.
SW Design & Development:
- Must have excellent understanding and strong tendency to develop – Modular, Scalable and Maintainable code. We are ‘fixated’ with “Functional” output the code that we develop that, we forget about the “user” of the code – Code may work functionally but
- how easy is the code to integrate with other code?
- How easy is to test it?
- How easy is to develop further?
- How easy is to update or modify the code?
- How minimal a number of bugs happen or modifications I have to do to use this code with other code?
- Also, the Code often uses another code/library to build – e.g.: VISA, Vision Development Module, Mathscript module, etc. Unfortunately, contrary to our wish and belief that you have built bug-proof perfectly working code, the actual bugs will come out only when someone else uses them!! – This is SW Development lifecycle.
- Must have had experience with being a part ofSW Development lifecycle and Distributed Development – Source Control, Version Control, GIT and source distribution.
- Excellent with State Machine and must have at least been exposed to other design patterns and must have implemented at least a few times.
- Must have a strong understanding of OOPs and API architecture. Experience in developing an API library is a plus.
- Excellent with understanding the SW architecture and Design pattern established and building code adhering to them.
- Excellent proficiency with Graphing and Data Visualization and building custom Controls and UI elements. Xcontrols is a plus.
- Excellent with Subpanels, Resolution Reflow and Splitter management.
- Must have strong understanding of VI server (Methods and Attributes of LV Environment). VI scripting is a plus.
- Excellent with LabVIEW project settings, Environment settings – FP customization, function palette, dependency settings, all Debugging options, VI properties and LV productivity features.
- Adept with LVpointers/DVR, Queues and VI/ Application references.
- Experienced with making Project templates and distributing Project templates.
- Experienced with Quick drop app creation.
- Code cleanup: Clean, well document code development practice.
- Hands -on experience with Application builder :
- Compilation settings
- Folder settings for compiled output
- .exe creation
- Installer creation
- Lvlibp, LvLib, dll & llb creation
- Code distribution
Connectivity, Interface & HW Control:
- .dll library interface and C++ library/header interface. Experience with registry coding is a plus.
- Strong work experience with File handling – create, open, write, read & close sequences. Understanding of different file types & parsing data –
- config files -.ini, .json, etc;
- Data file formats: .xlsx, .csv, TDMS, etc;
- Images files – .png, bmp, etc ;
- Report generation and Report generation Toolkit.
- Strong work experience with implementing communication protocols – Ethernet (UDP, TCP), RS232/485, Industrial communication protocols like Modbus, CAN, etc.
- Good with Sensors, IO programming, PLC Automation, Cabling. Robot Ecosystem is a plus.
- Basic Programming skill with at least one Language – Python / C++.
Critical Thinking, Available, Responsible, Versatile, Resourceful, Thorough, Attention to Details & “Humble”.