Please apply only to positions that you know you are qualified for, not positions you think you would be interested in. We have many other positions that are not posted due to confidentiality. If there are no positions that fit your background click on the above Register link. We will search our confidential career opportunities, and if we do not presently have a position that fits your experience we will put your resume into our active database for future job openings.

Sr. Algorithm Engineer

Location: Westbrook, Maine
Date Posted: 05-31-2018
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, release notes)
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.)
    • desired experience with images from optical (bright-field, dark-field, fluorescence) microscopy, preferably cell imaging, labeling, and/or identification (hematology, histology, oncology, etc.)
    • desired experience 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
    • experience applying 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)
  • Other desired 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
this job portal is powered by CATS