About UsOur company specializes in innovative ultrasound technologies, providing cutting-edge consulting services across various industries including medical imaging, non-destructive testing, and advanced sensing applications. We work with clients ranging from startups to Fortune 500 companies, delivering customized solutions that push the boundaries of ultrasound technology. Position OverviewWe are seeking a skilled and versatile Software Engineer with a strong background in signal processing, software architecture, and data analysis to join our dynamic team. In this role, you will be instrumental in developing software solutions for processing, analyzing, and visualizing ultrasound data, working across the technology stack.This position will primarily leverage Python for developing applications software, signal processing pipelines, data analysis tools, and instrumentation. You will also utilize C/C++ for embedded and low-level applications. MATLAB will also be used to control a research ultrasound system for algorithm prototyping and validation. Working directly with clients, you will tackle challenging technical problems within the ultrasound domain. The ideal candidate thrives in a fast-paced consulting environment, can design robust and maintainable software systems, adapts quickly to various programming languages and technical challenges, and possesses strong analytical and problem-solving abilities.Key ResponsibilitiesDevelop, implement, and optimize advanced digital signal processing algorithms and pipelines for ultrasound data, primarily using Python.Design and build robust, scalable, and well-structured software architectures for ultrasound data acquisition, processing, analysis, and visualization applications.Create primary application software and tools using Python to interact with ultrasound data, perform analysis, generate reports, and visualize results.Utilize C/C++ for implementing performance-critical components or interfacing with lower-level hardware APIs when necessary.Employ MATLAB for algorithm prototyping, simulation, testing, and validation of signal processing techniques.Collaborate with cross-functional teams including hardware engineers, transducer engineers, and application scientists to integrate software solutions.Work directly with clients to gather requirements, understand their challenges, develop technical specifications, and deliver tailored software solutions.Troubleshoot and debug complex software issues and data processing workflows.Develop and maintain comprehensive technical documentation, including design specifications, code documentation, and user guides.Participate in client meetings and presentations to communicate technical concepts, progress, and results.QualificationsRequiredBachelor's degree in Electrical Engineering, Computer Engineering, Computer Science, Physics, or a related field with a strong quantitative focus.4+ years of professional experience in software development with a significant focus on digital signal processing or data analysis applications.Proficiency in Python, including experience with scientific computing libraries (e.g., NumPy, SciPy, Pandas, scikit-image) and data visualization.Proficiency in C/C++ with embedded application experience.Strong understanding of digital signal processing concepts (e.g., filtering, spectral analysis, sampling theory, Fourier analysis).Experience designing and implementing software using good architecture principles and design patterns.Experience with version control systems (Git) and modern software development methodologies.Excellent analytical and problem-solving skills, particularly in the context of complex data processing.Strong communication skills and ability to explain technical concepts clearly to diverse audiences.Adaptability to work across multiple projects simultaneously in a dynamic environment.PreferredExperience with ultrasound systems, medical devices, or related acoustic/sensing technologies.Background in s
The median wage is the salary of a given occupation where half the workers earn more than that amount, and half earn less. This information is presented on job postings to help job seekers determine how the salary compares to the amount earned by other workers working the same job. Job Bank preferred indicating the median wage, which is less affected by extremely high or low wages, rather than the average wage which is calculated by adding up all the salaries of a group of people and then dividing that total by the number of people.