We have an immediate need for a SENIOR SOFTWARE ENGINEER
Job Title: Senior Member of Technical Staff
Job Function: Engineering
Classification: Regular Full Time
Location: Hyderabad, India
As a member of the Remote Monitoring Environment (REM) product development team, you will develop and enhance software and firmware for our industry leading IT Infrastructure Management products. Our platforms enable secure remote access to equipment for monitoring, troubleshooting, and repairing assets even during system or network outages.
Skills and Competencies
BSEE/BSCS or equivalent, MSEE/MSCS a plus.
5+ years of practical experience in embedded product development for networking equipment (wired or wireless), M2M technology or equivalent.
Experience in developing low-level hardware drivers, system and hardware level diagnostic routines, boot loaders, error handling, and event logging
Requires strong C/C++ programming experience and good understanding of algorithms and data structures.
Custom board bring-up.
Build tools (GNU Toolchain, OpenWRT, Buildroot, Yocto), Bootloaders (U-Boot, Coreboot, UEFI), Kernel configuration, Device Drivers and Device Tree Customization.
Experience in source control such as GitHub or GitLab.
Device driver development for Wireless devices (Cellular, Wi-Fi and Bluetooth)
Device driver development for hardware peripherals/interfaces (UART, SPI, I2C, GPIO, MDIO, USB, PCIe)
Demonstrated understanding of system level concepts, including:
o Kernel and User Mode Software Partitioning
o Host Device Driver / Hardware Interfaces
o PCIe Protocol
o Interrupts (INTA, MSIx)
o DMA Concepts
o Physical and Virtual Memory Management
o Complex Data Structures and Multi-Process / Multi-Threaded Software Architectures
o Hardware Virtualization Concepts (IOMMU, SR-IOV, Multi-Tenant Architectures)
o Networking Concepts (all layers)
o Low level device and block level programming for complex SoC platforms
Demonstrated expertise in hardware and software debug, including:
o Reading schematics and data sheets.
o Ability to work with system bus analyzers and network protocol analyzers
o Comfortable with In Circuit Emulators and low level ARM CPU debug environment
o Trace buffer and post-mortem analysis / troubleshooting
o Ability to work with hardware design engineers to capture and analyze digital wave forms
o Experience in Ethernet switching chipsets such as Broadcom and Marvell.
Experience with containerized systems (Docker, Vagrant, Virtual Box and VMWare)
Demonstrated experience in TCP/IP protocols (Sockets, IPv4, IPv6, TCP, UDP, ICMP, QOS, etc.).
Experience in at least one embedded Linux distribution is needed
Effective written and verbal communication skills.
Keyskills: linux kernel linux driver linux driver developing
Copious Consult is a leading consulting company that provides management consulting services. Copious Consult helps organizations to develop strategies for improving their performance, analyzing the problems and providing effective guidance for the implementation. The company offers assistance in ar...