As a Machine Learning Software Engineer, you'll help build a recommendation system that will help our community members discover solutions for their daily needs. You will use state-of-the-art AI & machine learning algorithms and take a large variety of data from a number of sources and intelligently deliver solutions for our member community. You’ll be working closely with the Engineering Director and the engineering team to define and execute on projects. Strong interpersonal skills and a desire to be involved in all aspects of the project life-cycle are a must. Our technology stack is primarily Ruby/Rails, Node.js, React, Angular, Postgres but we are not dogmatic about it.
This is not a “pure” academic role. You don’t necessarily have to have a research or academic background. It’s not enough to have either software engineering or data science experience. You ideally need both. As a Machine Learning engineer, your final “output” is working software (not the analyses or visualizations that you may have to create along the way), and your “audience” for this output often consists of other software components that run autonomously with minimal human supervision. The decisions are being made by machines and they affect how a product or service behaves. This is why the software engineering skill set is so important to this role.
Mission Outline
The Engage mission is responsible for delivering technology that creates intelligent environments and connected, consciously-engineered communities for every space in the world. Our team is interested in increasing lifetime value, satisfaction productivity, and building engaging community models in smart environments.
Requirements
- 5+ years of Computer Science/ Software Engineering experience
- Data structures (stacks, queues, multi-dimensional arrays, trees, graphs, etc.)
- Algorithms (searching, sorting, optimization, dynamic programming, etc.)
- Computability and Complexity (P vs. NP, NP-complete problems, big-O notation, approximate algorithms, etc.)
- Computer architecture (memory, cache, bandwidth, deadlocks, distributed processing, etc.)
- Understanding of probability and statistics topics, such as conditional probability, Bayes rule, likelihood, independence, etc.
- Experience in Data Modeling & Evaluation
- Experience in working with big data and shipping production level machine learning software code
- Experience in applying standard implementations of machine learning algorithms (that are widely available e.g. scikit-learn, Theano, Spark MLlib, H2O, etc) effectively by choosing a suitable model (decision tree, nearest neighbor, neural net, ensemble of multiple models, etc.)
- Understanding of the relative advantages and disadvantages of different approaches, and the numerous gotchas (bias and variance, overfitting and underfitting, missing data, data leakage, etc.)
- Understanding of how a small component that fits into a larger ecosystem of products and services.
- Understanding of how these different pieces work together, communicate with them (using library calls, REST APIs, database queries, etc.) and build appropriate interfaces for your component that others will depend on.
- Understanding of system design may be necessary to avoid bottlenecks and let your algorithms scale well with increasing volumes of data.
- Software engineering best practices (including requirements analysis, system design, modularity, version control, testing, documentation, etc.) are invaluable for productivity, collaboration, quality and maintainability.
- Fluent in one or more backend languages, with experience in Ruby a plus, and stay up-to-date on standard methodologies.
by via developer jobs - Stack Overflow
No comments:
Post a Comment