Senior Staff Software Engineer - Algorithm

IDEXX   •  

Westbrook, ME

Industry: Pharmaceuticals & Biotech


Not Specified years

Posted 90 days ago

This job is no longer available.

Staff Software Engineer - Algorithm

Outstanding opportunity to design innovative veterinary diagnostic instruments while joining the growing team of a very stable, innovative public pet healthcare company that is well positioned for future growth, with a market cap of over $5 billion and a stock that has outperformed the market by more than 500% in the past 10 years.

Job Summary:

Participate in designing innovative instruments for veterinary medicine by developing algorithms for inline processing of signal and image data, and integrating them into systems for evaluating in-clinic hematology, immunoassay, blood chemistry, and other applications.

Duties and Responsibilities:  

  • Use mathematical techniques and machine learning to discover, design, implement, and test novel algorithms to:
    • interpret image data to count, classify/label, and characterize objects (segmentation, feature analysis, morphological operations, classification, cluster analysis, optimization, computational geometry, convolutional neural networks)
    • convert instrument-acquired colorimetric assay data into meaningful results (curve fitting, root finding, iterative optimization methods, linear algebra, physical and empirical modeling)
    • generate insights from large image and signal datasets using dimensionality reduction algorithms (t-SNE, PCA), unsupervised learning techniques (Generative Adversarial Models, unsupervised clustering) and web-based visualization technologies
    • process time-series signals (FIR/IIR filters, Kalman filters, adaptive filtering, recurrent neural networks)
    • classify and fuse data from multiple sensors using Bayesian methods
  • Collaborate with stakeholders to define training and test datasets and annotation procedures
  • Apply machine learning and data hygiene practices to ensure acceptable model performance (cross-validation, boosting, bagging, regularization, generalization error analysis, model selection)
  • Create, analyze, design, and implement algorithms in C++, Python, and possibly other languages, on diverse processing platforms including GPUs, embedded processors and FPGAs
  • Support development of tools for algorithm verification and validation
  • Support and enhance existing instrument and system software; specifies, implements, and tests modifications to existing code
  • Follow defined software development practices and procedures
  • configuration management (IDE, toolchain, build system, code repository)
  • peer review (requirements, design, code, testing)
  • documentation (designs, releasenotes)



B.S., M.S., or Ph.D. in Mathematics/Applied Mathematics, Physics/Applied Physics, or Computer Science/Electrical Engineering. Qualified applicants with other areas of specialization (e.g., biomedical engineering or optics) or experience will be considered.


  • Image processing and analysis
    • working knowledge of basic principles of optics and image acquisition (sensor types and properties, illumination, aberrations, resolution, noise, focus, depth-of-field, radiometry, spectrometry, etc.)
    • standard image processing techniques (contrast enhancement, adaptive thresholding, background subtraction, morphological operations, filters, kernels, transforms, edge and feature detection, denoising, template matching, pattern recognition, segmentation, etc.)
    • desiredexperience with images from optical (bright-field, dark-field, fluorescence) microscopy, preferably cell imaging, labeling, and/or identification (hematology, histology, oncology, etc.)
    • desiredexperience with radiograph, ultrasound, or ECG images and signals
  • Machine learning
    • experience with convolutional neural networks, deep learning, generative adversarial models, linear models, decision trees, and Bayesian methods for regression and classification
    • experienceapplying regularization techniques (weight decay, dropout and other penalties)
    • understanding of generalization error and interpretation of learning curves (cross-validation, data snooping, training\test set splits)
    • ensembling and meta-modeling techniques (boosting, bagging, stacking)
    • unsupervised learning techniques for pattern discovery (clustering algorithms, generative models)
  • Numerical and statistical methods for data analysis
    • root finding, curve and surface fitting, smoothing, splines
    • numerical analysis (computational linear algebra, stability of iterative methods)
    • mathematical optimization techniques (stochastic gradient descent, Nelder-Mead, Newton and quasi-Newton methods, unconstrained and constrained optimization, simulated annealing, etc.)
    • statistics (analysis of variance, hypothesis testing, sensitivity/specificity, receiver operating characteristic, statistical process control, measurement system analysis, design of experiments)
  • Otherdesired skills/experience
    • data acquisition (precision vs. accuracy, sensor noise and resolution, feedback and control, A/D conversion, signal processing/conditioning, error analysis, standardization and calibration)
    • optimizing algorithm performance (sensitivity/specificity as well as execution time)
    • use of Tensorflow (or other ML frameworks), OpenCV, and rapid application development in Python
    • familiarity with git version control and Docker containers
    • experience implementing algorithms on FPGAs, embedded processors, and GPUs

Required Skills and Abilities:

  • Working knowledge of C++, Python, and Linux-based development platforms
  • To read, understand, debug, extend, and maintain existing C++ and Python source code
  • To specify modifications to existing software, and implement and test them
  • To understand software requirements and be able to translate them to design
  • Ability to understand UML specifications of software design elements
  • To be fluent in use of Microsoft desktop environment and tools (Word, PowerPoint, Excel)
  • To understand and design algorithms, and to implement and test them
  • To communicate effectively, both in writing and orally, complex technical information at the appropriate level with other team members,internal customers, and review boards

    IDEXX is a leader in pet healthcare innovation, serving practicing veterinarians around the world with a broad range of diagnostic and information technology-based products and services. IDEXX products enhance the ability of veterinarians to provide advanced medical care, improve staff efficiency and to build more economically successful practices. IDEXX is also a worldwide leader in providing diagnostic tests and information for the production animal industry and tests for the quality and safety of water and milk. Headquartered in Maine, IDEXX Laboratories employs 6,000+ people and offers products to customers in over 100 countries.

    IDEXX attracts, rewards and inspires exceptionally talented and motivated people who are eager to participate in two of the most important technological revolutions of our time—biotechnology and information technology.

    We offer outstanding opportunities for personal growth and success, and support excellence, world-class standards, and continuous improvement.

    If you are looking for a challenging work environment that unleashes creativity and energy, is refreshingly honest and comfortably casual, and offers opportunities for unmatched personal growth, we want to hear from you!

    About the Area: Portland, Maine recently ranked number 6 on Forbes magazine’s list of America’s Best Cities for Young Professionals, was ranked by Bloomberg Businessweek as one of the best places to raise kids, was listed by as one of America’s Best Hipster Neighborhoods, was named the Foodiest city in the US by Bon Appetit magazine, was ranked by as having one of the healthiest and most affordable housing markets, made the Top Ten list of healthiest cities for women by Women’s Health Magazine, and has recently been nominated for “Best Town Ever” by Outside Magazine; the magazine chooses its top ten places to live based on a balance of great culture, breathtaking scenery, reasonable home prices, low-stress living, and, of course, easy access to the outdoors.