We're interested in resumes for new job openings.

Job Description

Join our development team at leading software vendor Frontline Systems ( to research, improve and implement the latest algorithms from the literature, in our software products.  You will design and implement, evaluate and improve high-performance, serial and parallel algorithms for optimization, simulation, statistics and data mining in C/C++.  You should have deep expertise in algorithm development, and the discipline to meet product release schedules.

Skills Required or Preferred

This position calls for both software engineering skills, and expertise in implementing mathematical methods and algorithms -- and beyond this, creativity to go beyond previously-known methods.

On the software engineering side, you'll need excellent design and coding skills in object-oriented C++, the ability to build and maintain a large, well-structured body of code, and the discipline to meet commercial-grade software quality requirements and product release schedules. You should have experience with IDEs such as Microsoft Visual Studio, a source code control system, a bug or issue tracking system, profilers and debuggers.  We place high value on experience building commercial software products, beyond academic prototypes.  Experience writing parallel code and/or network-aware code is a definite plus.  Although user interface design is not a primary part of this role, you should have some experience with UI design and implementation, preferably in HTML and JavaScript.

On the mathematical algorithms side, you should be comfortable reading, understanding and improving upon, and implementing algorithms from the published literature, for example INFORMS, SIAM or ACM journals, technical reports and dissertations.  You should be able to learn quickly in areas that are new to you, building on a solid foundation of discrete mathematics, linear algebra, calculus, probability and statistics.  You should have previously implemented algorithms in more than one of the areas mentioned below, all of which are used in our products -- and more experience with these algorithms is a definite plus.  When hiring for a specific position, we may require knowledge/experience in the specific area(s) needed for that position.

  • Optimization: Simplex method for linear programming, a barrier or interior point method, a gradient-based nonlinear method, or an evolutionary, genetic algorithm, tabu or scatter search based method for continuous optimization; plus a Branch and Bound method, cutting plane (or Branch and Cut) method, or discrete heuristics method for integer/discrete optimization.
  • Simulation: Monte Carlo methods, including random number generation, stratified sampling, generation of correlated samples, distribution and correlation fitting, simulation optimization, stochastic linear programming, or robust optimization methods.
  • Data Mining: Machine learning and multivariate statistical methods for large datasets, such as feature selection, linear and logistic regression, principal components and/or latent semantic analysis, k-nearest neighbors, classification and regression trees, ensemble methods, neural networks and/or deep learning.

We normally require a PhD degree in operations research, management science, or industrial engineering, and at least one year professional or paid academic (research, teaching or internship) experience; we like to see either a degree program minor or BS/MS degree in computer science or applied mathematics.  We periodically offer paid internships to PhD students, and this is a great way to gain relevant experience, and improve your prospects for a full-time position.  In every case, we also heavily weigh your skills, experience, ability to learn, energy and attitude.

How to Apply

Email your CV or resume and/or your questions to  Frontline offers very competitive salaries and benefits, including a 401(k) plan funded by the company, and great working conditions -- in a year-round resort area on the north shore of Lake Tahoe, at the California-Nevada border.