Software Engineer
Wheat Ridge, CO
Experience: 3–7+ years in embedded software or systems development
Compensation: $75K to $140K per year depending on experience/qualifications
Minimum Education: Bachelor’s degree in Computer Engineering, Electrical Engineering, Computer Science, or related field — or equivalent practical experience
Olson Engineering has an opening for a Junior Software Developer to Senior Embedded Software Engineer to support and expand our software and embedded systems capabilities within our engineering and geophysical services.
The ideal candidates will have education and experience in software development using C, C++, and C#, along with experience or interest in embedded systems development (STM32 or similar microcontrollers), and wireless transmission. This role includes developing software for data acquisition, instrument control, and analysis tools used in near-surface engineering and environmental applications.
Olson Engineering, Inc. is a leader in geophysical and nondestructive evaluation services for infrastructure projects. Our geophysical group conducts a variety of survey methods to meet client needs. Our subsidiary, Olson Instruments, Inc., manufactures instruments for nondestructive evaluation, providing opportunities to work directly with both hardware and software systems. This position will include software development supporting instrumentation and data collection systems.
Strong software development, debugging, and problem-solving skills are required, along with the ability to work both independently and as part of a team. Candidates should be comfortable working across firmware, application software, and hardware interfaces, and contributing to the growth of our software capabilities.
Must be willing to work in office, have a clean driving record, and be able to pass a drug test.
Key Responsibilities:
- Develop embedded firmware using C/C++ for STM32 microcontrollers
- Design and implement software for hardware interfacing (sensors, I/O, communication protocols)
- Develop supporting tools or applications inC# (e.g., UI, testing, data interfaces)
- Debug and troubleshoot embedded systems (hardware + firmware)
- Optimize code for performance, memory usage, and reliability
- Work closely with electrical and mechanical engineers
- Maintain clear documentation and participate in code reviews
Required Qualifications:
- Strong proficiency inC and/or C++ for embedded systems
- Experience withSTM32 (or similar ARM Cortex-M microcontrollers)
- Experience developing Windows applications
- Understanding of:
- Memory management and low-level programming
- Microcontroller peripherals (GPIO, ADC, UART, SPI, I2C, timers)
- Experience debugging embedded systems (JTAG/SWD, oscilloscopes, logic analyzers)
- Ability to work across both firmware and application layers
- Must be local to the Denver area
Preferred Qualifications:
- Experience withSTM32 HAL / LL libraries or bare-metal development
- Familiarity withRTOS (e.g., FreeRTOS)
- Experience withTouchGFX(or similar embedded GUI frameworks) is a plus
- Experience withserial protocols, USB, BT or Ethernet
- Knowledge ofPCB-level hardware interaction
- Experience withWindows desktop application development (C#/.NET)
- Mobile app development a plus
- Version control experience (Git)
What We Offer:
- Competitive salary based on experience
- Hands-on work with real hardware and systems
- Small, collaborative engineering team
- Opportunity to own projects end-to-end
- Health insurance
- SIMPLE IRA retirement plan with employer contribution
- Optional dental and vision coverage