Current Openings

Back to Job Listings

Software Engineer

Job Snapshot

Dayton, OH

Software Engineer


Job Description


Work on moderately complex, less clearly defined projects.
Conduct and participates in periodic reviews of work output.
Apply knowledge to identify problems that are not immediately apparent and then take action.
Prepare detailed technical requirements and specifications to meet product requirements.
Estimate time to complete tasks.
Verify the specifications and prototypes by designing and assisting with test cases.
Collaborate with cross functional team members on system level decisions.
Respond to internal/external inquiries about the technical aspects of our products.
Improve skills and product knowledge by getting training and continued education
Implement internal process improvements and facilitates change management.
Complete tasks that support the overall schedule and clearly communicates status.
Assist in the development of user/tech manuals as needed.
Follow best practices and all regulatory procedures for ISO, UL, CE, and others as required.
Maintain an organized and clean lab/project environment.
Take additional responsibility for designing and implementing system specifications and formal representations of solutions used to create, modify, test, debug, deploy, and maintain system software that operates hardware and/or interacts with the product user or automated system.
Troubleshoot, analyze, and revise existing system logic and software as necessary.
Consistently models the Company Values and Expected Behaviors.
Other duties as assigned.

Bachelor’s Degree in Computer Engineering or Electrical Engineering
3+ years engineering experience
Collaborative style and a passion for learning, laughing, and achieving
Strong verbal and written communication skills with a strong attention to detail
Competent with source control and Eclipse based development tools
Experience developing/implementing bootloaders, low level drivers, libraries, and BSPs
Advanced in C/C++
Intermediate experience with RTOS and/or embedded Linux
Strong understanding of state machines
Intermediate knowledge of what interrupts are and how they work
Advanced understanding of Boolean and hexadecimal math
Strong understanding of multi-tasking and how to debug
Strong understanding of microprocessor internals
Strong understanding of digital and analog electronics
Ability to read and understand schematics
Ability to perform advanced electronics debugging/troubleshooting
Ability to use a debugger to perform complex operations
Ability to develop and debug code for timers, PWM, real-time clocks, PID
Strong understanding of UART/USART, RS232, RS485, Modbus, CAN, USB, Ethernet, SPI, I2C, Flash, EEPROM, and ADC/DAC
Ability to effectively use a multimeter and an oscilloscope
Advanced understanding of HMI programming

Apply Now

PDSI Technical Services is an equal opportunity employer, and does not discriminate in employment opportunities or practices on the basis of race, color, religion, sex, genetic information, national origin, age, disability, military service or veteran status or any other characteristic protected by law.  In order to provide equal employment and advancement opportunities to all individuals, consideration of employment staffing submissions are based on demonstrated skills, qualifications, work experience, expertise and expectations meeting the position requirements as specified by the client, including compensation