The Software Engineer III position designs and develops software applications and performs coding, debugging, testing, and troubleshooting throughout the application development process. The SWENGIII will work with other engineering and functional areas to obtain optimum utilization of equipment, machinery, and resources. May direct junior-level software engineers.
- Develop software modules using the C programming language for real-time embedded systems.
- Develop test software modules using C, C++, Python, and/or LabVIEW programming language.
- Develop build automation scripts using Python, Bash, and Windows batch files.
- Participate in software, electronics, and system design reviews.
- Understand how to read schematics and understand electronics designs.
- Understand concepts needed for low-level software development on “bare metal” systems.
- Understand concepts needed to create drivers for hardware interfaces.
- Test software using lab instrumentation such as oscilloscopes and signal generators.
- File bug reports for defects noticed during testing.
- Correct software bugs and resolve software bug reports.
- Support other software engineers in the software development process.
- Participate in product software failure analysis activities and compile test and failure analysis reports.
- Generates software design documentation and report data from tests.
- Keep accurate and complete records of engineering activities.
- May provide training and/or direction to technicians.
- May provide input to bid and proposal activities.
- May provide communications and/or presentations to customers, suppliers, or vendors.
- May require participation in product field tests requiring travel.
Required Education and Experience
- 4-year degree from an accredited university in BSCS, Engineering, or related field OR a combination of education and relevant experience.
- A minimum of 5 years of experience in software.
- Experience with device driver and operating system implementation. Also known as “Low Level” or “Bare metal”.
- Experience with microprocessor components and peripherals (UART, SPI, I2C, DMA, interrupts, clock configuration, etc.)
- Experience with peripherals, such as Analog to Digital Converters (ADCs), Digital to Analog Converters
- Experience with FreeRTOS and Micrium uC-OSII and uC-OSIII (or equivalent)
- Experience developing embedded software in C or C++; additional languages a plus.
- Electrical/Electronic design experience – schematic capture and board layout.
- Desktop and network software development experience a plus.
- Good working knowledge of full software development lifecycle.
- DACs, etc.
- Familiarity of software tools (requirements tracking, compiler, assemblers, debuggers, programmers, JTAG, etc.
- Working knowledge of data acquisition concepts, instrument control, test, measurement, and implementation of control interfaces to hardware.
- Knowledge of software systems architecture for embedded real-time systems.
- Digital signal processing algorithm modelling and implementation for audio and /or radio frequency (RF) applications in MATLAB.
- ARM Cortex M Processor Architecture.
- Analog Devices Blackfin processors.
- Digital logic design using Field Programmable Gate Arrays (FPGA) and Complex Programmable Logic Devices *CPLDs) with Verilog and VHDL and verification with ModelSim.
- Familiarity with Intel (formerly Altera) Quartus, Xilinx Vivado design tools, Lattice iCEcube2 software.
- Practical skills for bench-level work, including the ability to configure test equipment to verify design.
- Ability to use original thinking and ingenuity to solve problems.
- Ability to write technical reports and contribute to presentations.
- Proficiency in MS Office Suite including Word, Excel, PowerPoint, and Teams.
- Must show initiative and motivation and can act independently to resolve technical issues.
The physical demands describe here are representative of those that must be met by an employee to successfully perform the essential functions of the job. While performing the duties of this job, the employee is frequently required to sit, stand, talk, and communicate, use hands/finger, feel and reach with arms. This position requires the ability to lift, bend or stoop as necessary up to 20 lbs.
Quadrus Corporation is a small group of technical professionals who specialize in commercial software solutions and contract engineering services nationwide since 1995. We provide both custom and commercial off the shelf software including our proprietary GenITC. We also provide engineering consulting services in the space and defense community.
Posting ID: 593638345Posted: 2021-01-24