Knowledge of software engineering best practices (including requirements analysis, system design, modularity, version control, testing, documentation, etc.) for productivity, collaboration, quality, and maintainability.
Knowledge of how a component fits into a larger ecosystem of products and services.
Understanding of how these different pieces work together, and communicate with them (using library calls, REST APIs, database queries, etc.)
Know how to build appropriate interfaces for components that others will depend on. Knowledge of basic system design patterns to avoid bottlenecks and let your algorithms scale well with increasing volumes of data.
Perform research and development tasks.
Expected to design, code, test, do troubleshooting and document engineering systems applications by following the software development lifecycle.
Accomplishes engineering and organization mission by completing related results as needed. ...