The Digilent organization has an opening for atalented Embedded Software Developer . In this position youwork primarily with Linux and Xilinx development tools for supporting ourinstrumentation products and FPGA development boards.
This is an excellentopportunity to practice and learn new skills in embedded developmentenvironments, C, C++, application user interfaces, high-performance andmulti-core program execution, network communication, real-time system services,high bandwidth data transfers between processor and FPGA.
Core Job Responsibilities
Develop or enhance software support for instrumentation productsor FPGA development boards.
Specify, design, implement, document and test software featuresand capabilities for new and existing products.
Write documentation for users : tutorials, reference manuals,getting started guides
Provide help to customers over email and forum
Provide technical expertise, support and training to other teammembers and customers.
Work and interact with a geographically distributed R&D staff.
Diagnose and debug problems reported by customers and internalusers.
Review product specifications and customer documentation
B.S. in Computer Science, Computer Software Engineering, Informatics, Computer Engineering, Electrical Engineering or related studies.
1 - 8 years of industry experience as software application programmer.
Strong understanding of computers and programming languages.
Proficiency in Text Based Programming languages, preferably C / C++ / C#, and development experience in application programming, knowledge on Data structures & Algorithms.
Strong understanding and experience of software design and architecture principles.
Strong work ethic and drive to succeed
Demonstrated ability to :
Work effectively in a group development environment
Problem-solve effectively - diagnose technical issues and propose reasonable solutions; enjoy problem solving
Take initiative, be a self-starter, and work independently
Persistently drive tasks and projects to successful completion
Take ownership of goals, project schedules
Listen attentively and grasp fast-paced technical conversations
Quickly learn applicable technology, systems, and products
English Language Competency / effective communication skills
Can clearly and concisely communicate in English so that persons you work with can understand you clearly, particularly in technical conversations.
Understanding of digital circuit design is a strong plus.
Experience with Xilinx Zynq ARM processors.
Experience with interfacing with FPGA from Linux. (data transfers between PS and PL)
Experience with device driver such as Ethernet, PCIe, DDR4 memory controller, MIPI Camera, 10GbE, HDMI, FMC, UART, SPI and I2C.
C, C++, scripting languages such as Python
Low-level embedded system software and device drivers for FPGA with baremetal or Linux
Experience with most of the following : Git, Embedded Linux, Linux Kernel / Drivers, U-boot, device trees, Petalinux, Yocto, FPGA, VHDL / Verilog, Vivado / Vitis, Xilinx Zynq processors
Graphical User Interfaces in QT
Software implementation for instrumentation products : sampling, high-bandwidth transfer rates, transfer protocols, graphical data representation, interrupt handling