Senior Software Engineer (Windows Application Development)
Job DescriptionJob DescriptionDescription:
Department: Engineering/Technology
Reports To: Sr. Manager of Engineering
Job Overview:
The Senior Software Engineer (Windows Application Development) is responsible for designing, developing, and maintaining high-quality Windows desktop applications using technologies such as .NET, C#, WPF, and C++. This role requires a deep understanding of Windows application architecture, UI/UX design principles, and the ability to work effectively in a collaborative, agile environment. The Senior Software Engineer will lead technical efforts for new feature development, optimize existing features, and ensure that the applications meet performance, quality, security, and scalability requirements. This role also demands proficiency in SQL/DB management, communication protocols, REST/COM interfaces, .NET Core, client-server architecture, video/streaming technologies, and camera profile knowledge.
Key Responsibilities:
Windows Application Development:
- Design, develop, and maintain robust Windows desktop applications using modern .NET, C#, WPF, and/or C++.
- Implement and optimize user interfaces with a focus on usability, responsiveness, maintainability, and performance.
- Develop and integrate software modules that interface with hardware components, video/streaming systems, and other software systems.
- Leverage SQL/DB management, communications protocols (TCP, etc.), REST/COM interfaces, and client-server architecture to enhance application functionality.
- Utilize .NET Core for building scalable and efficient applications.
Technical Leadership:
- Mentor and guide junior engineers, fostering a culture of technical excellence and continuous improvement.
- Lead code reviews, ensuring adherence to design patterns, coding standards, and maintainability best practices.
- Collaborate with cross-functional teams to define, design, and deliver new features and enhancements.
- Champion a sense of ownership and responsibility within the team, taking the lead in critical technical decisions.
- Actively identify areas for team improvement and drive initiatives to enhance team collaboration and effectiveness.
Architecture & Design:
- Design and implement software architectures that support complex application features, scalability, and maintainability.
- Create detailed design documents, technical specifications, and other documentation to ensure proper implementation and maintainability of solutions.
- Evaluate and recommend new tools, technologies, and methodologies to improve the development process.
- Design systems with a deep understanding of the interplay between components, ensuring effective communication of designs through diagrams and written documentation.
Performance Optimization:
- Identify and resolve application performance bottlenecks to ensure efficient operation across various hardware configurations.
- Utilize profiling and diagnostic tools to monitor and optimize application performance, including memory usage, CPU efficiency, and load times.
- Ensure applications are optimized for video/streaming performance, including camera profile management and related technologies.
Quality Assurance & Testing:
- Write and maintain unit tests, integration tests, and automated UI tests to ensure application reliability.
- Collaborate closely with QA engineers to identify, debug, and resolve defects.
- Participate in continuous integration processes to ensure frequent, reliable releases.
Requirement Gathering, Estimation & Collaboration:
- Collaborate with product managers, designers, and other stakeholders to gather and refine requirements.
- Translate business requirements into technical specifications and user stories.
- Actively participate in agile ceremonies, such as sprint planning, daily standups, and retrospectives.
- Justify priority lists and offer pros/cons for alternative approaches during the technical design and estimation process.
Security & Compliance:
- Implement security best practices to protect applications from vulnerabilities and threats.
- Ensure compliance with industry standards and regulations in software development.
Requirements:
Qualifications:
Education:
- Bachelor’s degree in Computer Science, Software Engineering, or a related field.
Experience:
- 5+ years of experience in Windows application development using modern .NET, C#, WPF, and/or C++.
- Proven track record of developing and delivering high-quality, maintainable, and performant Windows desktop applications.
Technical Skills:
- Expert-level proficiency in modern programming (.NET, .Net Core, C#, WPF, C++).
- Strong understanding of SQL/DB management, communications protocols (TCP, etc.), REST/COM interfaces, and client-server architecture.
- Experience with video/streaming technologies, including camera profile management.
- Deep understanding of Windows application architecture, threading models, and asynchronous programming.
- Experience with UI/UX design principles and implementing rich user interfaces.
- Familiarity with version control systems (e.g., Git), CI/CD pipelines, and software development tools.
Soft Skills:
- Strong problem-solving and analytical skills.
- Excellent communication and collaboration abilities, with experience working in cross-functional teams.
- Ability to work independently and take ownership of complex technical challenges.
Key Competencies:
- Technical Excellence: Deep expertise in Windows application development and related technologies.
- Leadership: Ability to mentor and guide junior engineers while driving technical projects to completion.
- Innovation: Ability to innovate and introduce new solutions to improve the development process and application performance.
- Collaboration: Strong team player with a collaborative approach to working with cross-functional teams.
KPIs (Key Performance Indicators):
- Successful delivery of high-quality Windows applications on time and within scope.
- Application performance metrics, including responsiveness, memory usage, CPU efficiency, and video/streaming performance.
- Code quality and maintainability, as evidenced by code reviews and technical debt management.
- Stakeholder satisfaction and alignment with business goals.
Additional Requirements
Candidates will be subject to a background check in accordance with federal and state regulations.
Benefits
Employee benefits include:
- Competitive Medical Benefits
- Employer-sponsored Life Insurance, AD&D, Short-Term and Long-Term Insurance
- Voluntary Dental & Vision
- 401(k) plan
- Flexible PTO
Equal Employment Opportunity
Salient Systems is an equal opportunity employer that is committed to and in the workplace. We prohibit discrimination and harassment of any kind based on , , , , , , , genetic information, , or any other protected characteristic as outlined by federal, state, or local laws.
This policy applies to all employment practices within our organization, including hiring, recruiting, promotion, termination, layoff, recall, leave of absence, compensation, benefits, training, and transfer. Salient Systems makes hiring decisions based solely on qualifications, merit, and business needs at the time.