About Euler Motors
Similar jobs
Company background and Vision
We at Neysa believe that good software is one where you don’t have to (necessarily) read the full manual. Good software is intuitive, inviting and accommodating. Most importantly, good software should make life easy. That’s easier said than done, though. Good software is definitely hard to write. For the end user to be required to do the least amount of work, the developer has to do the most. To get the most out of a computer system, the code should be as native as possible. Neysa is out to build the most intuitive network management software ever, and we hope you would write code to bring that vision to life.
Day in the life In this role...
Work with time-sensitive and streaming data for analysis, filtering and sorting, for example, the C++ STL. Create parallel processing architectures which can scale up and down on demand. Interact with external systems and handle their idiosyncrasies in a live, data-heavy, time-constrained environment. Provide a resilient and predictable platform for upper-layer applications. Come up with bespoke solutions for real-world data handling problems. Handle cryptography and communication security over untrusted channels.
Must-have skills
On day one, we'll expect you to... Have a deep understanding of object-oriented programming, socket programming and memory management techniques. Have experience with multi-threaded and multi-core programming and its associated concurrency, locking and synchronization techniques. Be aware of interprocess communications (IPC/gRPC) and message queueing. Be comfortable with mathematical functions and the associated libraries in system programming. You also should be unafraid to use math to optimize your code. Understand synchronous and asynchronous communication, and when to use what. Be comfortable in handling low-level byte-handling operations.
What separates the best from the rest
You will need to have... The initiative to work on your own, at your own pace, but on a schedule. The courage to iterate, re-iterate and the re-re-iterate till you get it right. And then defend your design philosophy. Think through all the possible applications of your work, and then make sure it performs awesome in every one of them. Making the right algorithm choices based on design requirements. Write good, commented and (hopefully) error-free code. Logic failures are acceptable, but poor error handling is not.
What you can expect
The best equipment which complements your talents. The best tools in the business for you to bring your creations to life. A great environment. Flexible work hours, and flexible work locations. You will need to be in the office though. The opportunity to make your mark and shape the future. And have fun…
The Technical Skill Tree
Things you must know…
C, C++, Java, system programming, stream programming, socket programming, Linux Internals, Hooks and System Call and Kernel APIs. Locking and synchronizing techniques like mutexes, atomics, deadlocks and races and ways to avoid them. “Safe” programming, exception handling. String input/output and manipulation, data structure(hash tables, graphs, stacks, queues, trees, binary trees) and operations on them. System memory management, instruction reordering and memory order. A “code-based” understanding of the TCP /IP stack and other networking protocols.
Great if you know....
Garbage collection in C++, thread-safe and type-safe programming, hierarchal exceptional handling. Specialised algorithms for data collection, analysis and presentation. Understanding of the REST, protobuf, XML, JSON and other data interchange formats. Understanding of cryptographic libraries, key management concepts, and symmetric and asymmetric encryption. STL containers, API service creation, “daemons”, operating system services, microservices,
We'll help you out on ...
Web servers, system administration, website management, code management systems, and code debugging systems. CI/CD, Automation frameworks. Version management tools.
The Neysa Team
Neysa is founded by a team, which has nurtured a multi-million dollar business from its inception and grown it to be the best in its industry. We are problem solvers at heart, and we get our kicks when our ideas are out there, taking a crack in the real world. Never accepting the status quo, we have always pushed the boundaries of what is possible. And changed our lives, the people we work with and the community in which we operate.
Responsibilities:
· Collaborate with cross-functional teams, including hardware engineers, system architects, and product managers, to define software requirements and specifications for embedded systems.
· Design and develop efficient, reliable, and scalable embedded software solutions that meet the defined requirements.
· Write, test, and debug code in programming languages commonly used for embedded systems, such as C, C++, and assembly language.
· Interface with hardware components, such as sensors, actuators, microcontrollers, and communication interfaces (UART, SPI, I2C,CAN etc.).
· Develop and implement device drivers, firmware, and low-level software to control hardware peripherals.
· Participate in code reviews to ensure code quality, maintainability, and adherence to coding standards.
· Perform unit testing, integration testing, and system testing of the embedded software.
· Analyse and optimize system performance, memory usage, and power consumption.
· Collaborate with the quality assurance team to identify and resolve software defects.
· Stay up-to-date with industry trends, tools, and technologies related to embedded systems and software development.
· Document software design, code, and test procedures for internal and external use.
· Provide technical support to other teams during product integration, testing, and deployment.
Qualifications:
· Bachelor's or Master's degree in Computer Engineering, Electrical Engineering, or a related field.
· Proven experience in embedded software development, including designing, coding, testing, and debugging.
· Proficiency in programming languages such as C and C++.
· Familiarity with Embedded C, 32-bit microcontroller,16-bit microcontroller hardware interfaces.
· Knowledge of real-time operating systems (RTOS) and multi-threaded programming.
· Strong problem-solving skills and ability to troubleshoot complex hardware-software interactions.
· Excellent communication skills and the ability to work effectively in a team.
· Familiarity with communication protocols (UART, SPI, I2C, CAN, Ethernet) is desirable.
· Knowledge of security considerations in embedded systems is an advantage.
Location: Chennai
WheelsEye is India's leading SAAS-based platform in formulating the next tech-enabled logistics revolution. We offer technology that connects truck fleet owners & SMEs and helps them to automate operations, secure fleets, save costs, improve on-time performance, and streamline their business.
We have a young and energetic team of IITs, NITs, IIMs & top B-Schools employees serving PAN India. We go to great lengths to hire the best talent who are deeply aligned with our values.
We at WheelsEye, believe in fostering a sense of intrapreneurship, promoting team bonding, and creating a positive and friendly work culture where you will feel valued and motivated to do the best work.
Role:- Senior Firmware Developer
Requirements
Core skills:
- Proficiency in programming, specifically Embedded C and C++
- Understanding of Hardware components (Sensors, MCUs, Actuators, Antenna)
Core Experience
- Over 4 years of hands-on experience in Embedded Systems
- Prior experience in building IOT Gateway
- Previous experience in designing FOTA
- Previous experience in the telematics/DMS would be advantageous
- Teamwork
Job Responsibilities
Responsibilities for this position include, but are not limited to, the following.
Understand requirements and create low-level design using UML
Develop embedded software as per defined software requirements
Software integration & testing
Background & Skills
Education:
B.E/B. Tech/M.Tech/Master (Electronics/Telecommunications/Computers Science)OR equivalent
Experience & Attributes:
2-8 years’ experience in Embedded system software design, development, and testing.
Excellent communication skills, spoken and written English
Must have specialized knowledge :
· Embedded C
· Electronics
· RTOS
· Knowledge of Microcontrollers (RISC, CISC)
· CAN Communication & Protocols like UDS, KWP2000, CANopen and J1939
· MISRA standard - 2000/MISRA 2012
· SDLC, Agile Scrum
· Static analysis & Tools like LDRA or QAC or Vector cast
· Change Management & Tools like JIRA/VSTS
· Version control & Tools like SVN/GIT/Clearcase
· Traceability management & Tools like Reqtify or equivalent
· Design methodologies - like UML
· Software Test Life Cycle
Specialized knowledge – Will be Preferred
· Functional Safety life-cycle & Management - Applies to software design & development
· Safety standards like - IEC-61508, ISO-26262, ISO-25119, ISO-13849
Key Tasks and Responsibilities
· Software requirement specification writing
· Creating design for assigned modules
· Implementing the code for assigned requirements
· Perform unit testing
· Perform peer reviews or inspection of software work products
· Support testing team on defect analysis
· Adhere to Quality processes
Developer Software (Embedded)
Location: Udaipur
Qualification: BE in (Electrical/Electronic Engineering)
Technical
· Experience in design and development with structured Software Development Life Cycle for embedded applications
· Proficiency in C language or assembly programming, Microcontroller, Micro Processor.
· Preferably experience in working and understanding the metering domain
· Proficiency in development processes, tools/IDE (KEIL, IAR, Eclipse) & test automation
· Unit testing skill
· Interface RS485, RS232, SPI, I2C, USB, LCD, Keypad, Flash, EEPROM
· Coding Standards and MISRA rules are preferable
· Knowledge of ARM / MIPS / Coldfire / MSP430 / dsPIC / 8051 and other popular processor
· Experience in working on communication products based on GPRS, ZIGBEE, ZWAVE, Ethernet, Power line communication, DLMS, MODBUS
Job Description
· Understand improvement requirements and develop improvement solutions & package, according to technical specifications / high-level solution design
· Responsible to carry out effective and timely unit testing, in order to, deliver first time right solutions
· Development of automation framework/compiler / emulators to speed up business delivery cycle in NPI programs
· Keep track of new trends, continuously learn and self-develop skills by ensuring effective knowledge sharing through group meetings and training. Impart training to new joiners as and when assigned
· Proficiency in developing embedded software design with high reusability using relevant tools and BSM or flow diagram
Role & Responsibilities
- Strong proficiency in C++ with minimum 2 years of Development
- Knowledge of the STL, containers, algorithms and data
- Good understanding on Design patterns and memory
- Familiarity with debugging tools, such as Valgrind, winDBG, WireShark is an additional advantage.
Desired Experience
- (2-6 Years) of Experience as C++ Developer