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.
Updates job knowledge by studying state-of-the-art development tools, programming techniques, and computing equipment; participating in educational opportunities; reading professional publications; participating in professional organizations.
Basic Qualifications:
Degree in Computer Science, Engineering, or equivalent. Master's preferred
Skilled in project design and execution, interpretation of experimental results, and numerical analysis of data
Desired/Preferred Expertise:
Software Development Fundamentals
Strong understanding of Object-Oriented Design and Principles
Self-motivated
Problem Solving skills
Works well within a team
Excellent communication skills
Desired/Preferred Technology Expertise:
Web front-end technologies and tools: HTML5, CSS, SASS, JavaScript, Angular 16+, Angular CLI, Typescript, NPM, and VS Code.
Web back-end technologies: RESTful APIs using Microservices (NodeJS, C#, C++, Python), Express, JSON, OData, Web Sockets, and Java EE.
Testing: JEST, Karma/Jasmine, E2E testing with Protractor.