Software Development Engineer
Job Summary
The Software Development Engineer works collaboratively within their team to perform feature analysis, research, requirements gathering, implementation/coding, testing, deployment, maintenance, and support of Smith Technology products. The development engineer is a vital member of a Scrum team actively participating in all aspects of the Scrum workflow. The focus of a development engineer will be on troubleshooting, code & design reviews, product quality, and working within the team.
Key Duties
- Primary focus of work will be on smaller components of the application such as ownership of a screen or portion of a subsystem.
- Will assist others in the gathering and creation of feature specifications, requirements documents, and design documents.
- Performs designing, coding, debugging, testing, and troubleshooting throughout the application development process utilizing appropriate principles and patterns for the given languages and application type. For example, OOD/OOP will be used for object-oriented languages.
- Collaborate cross-functionally with product managers, analysts, quality assurance engineers, and other team members to achieve elegant solutions.
- Adheres to department and product development standards and best practices while working with others to do the same.
- Actively ensures a high level of quality across the product from within the code to the delivered product.
- Actively engages and works as a member of the Scrum team contributing to all Scrum ceremonies as needed.
- Builds and maintains effective working relationships with all members of the Scrum team, co-workers, and those in other departments.
- Works directly with the Support department on an as-needed basis assisting with their focused areas of ownership.
- Performs special projects and other related duties as assigned.
Education/Training
- Bachelor's Degree in Computer Science, an Engineering discipline or equivalent field, required. A combination of education and experience may substitute in lieu of a Bachelor's degree.
Required Work Experience/Skills
- C# and .NET Core, including .NET 6 or newer required
- NET Core for web application and RESTful API development, including MVC architecture and Razor pages
- Entity Framework (EF) Core or similar ORM tools for database access and manipulation
- Unit testing frameworks ( xUnit, MSTest) and integration testing to ensure code reliability and maintainability.
- Strong problem-solving abilities and debugging skills, including use of Visual Studio Debugger and related tools
- LINQ usage for efficient data querying and manipulation within C#
- HTML, CSS, and JavaScript
- Relational databases, particularly SQL Server, including query optimization, indexing, and security
- Version control, especially with Git
Desired Work Experience/Skills
- Modern front-end frameworks such as React
- Non-relational databases (e.g., MongoDB, CosmosDB) a plus
- Design, build, and document RESTful APIs for internal and external integrations
- Understanding of API testing tools (e.g., Postman, Swagger) and best practices for scalable, secure API design
- Automated testing and continuous integration/continuous deployment (CI/CD) practices
- Cloud platforms, especially Microsoft Azure, for deploying, scaling, and monitoring applications
- Containerization (Docker, Kubernetes) and DevOps tools for streamlined development and deployment workflow
- Background processing and job scheduling (e.g., BackgroundService, Hangfire, Quartz.NET) for long running or scheduled tasks
- Cybersecurity best practices, including secure coding and knowledge of common vulnerabilities (e.g., SQL injection, XSS, CSRF)
Physical Demands, Working Conditions, and General Employment Guidelines
- Moderate levels of stress may be experienced in the performance of the job.
- Position is performed in a general office environment, home office, or approved remote workspace where physical work includes, but is not limited to, sitting, standing, reaching, kneeling, bending, and lifting to 25 lbs.
Equipment
- Daily use of Microsoft Teams (phone), computer, printer, and other routine office equipment.
- Must have reliable and consistent internet access.
Safety to Self and Others
- Little responsibility for the safety of others. Job is performed in an office setting where there are no hazardous materials or equipment.
Working Conditions/Hazards
- Position is performed in an open office environment
Work Location
- Remote