Job Description
Position Summary, Responsibilities, and Expectations :
Being a proactive leader to a software development team.
Defining code style policies utlized within the team.
Defining and implement code review and other processes which improve performance, communication within the team and quality of software being developed.
Lead the software development team - drive performance by fostering a collaborative environment with a high degree of accountability
Research, assess and adapt to new technologies necessary for future enhancements of products
Choosing appropriate tools, frameworks and approaches to ensure the highest quality of software products.
Have great troubleshooting and debugging skills and be able to respond to issues promptly by setting a foundation for consequent work needed to address those.
Controlling development resources, be able to foresee the needs to grow team based on future planned software enhancements.
Resolving conflicts and solve any problems that arise in the team about technical options.
Ensuring all team members are effectively working toward project completion.
Establish metrics, templates, and milestones for projects including key performance indicators, and track progress and dependencies.
Communicating and coordinating with outside stakeholders to define project goals and technical options.
Implementing proof-of-concept projects.
Venturing into new technologies.
Managing project timelines and tasks.
Collaboration with hardware and software partners to ensure
Writing development reports.
Collaborating with hardware and software partners, establishing the best way for integration of software and hardware products.
A proven track record of managing resources supporting multiple projects and programs, problem solving, interfacing with internal and external senior management, performing analysis, making trade off decisions, and utilizing formal project management techniques and accountability
Essential Skills and Experience :
Software Architect requirement :
5+ years of experience developing desktop software for Windows.
Experience developing macOS applications would be a plus.
Strong leadership abilities.
Excellent diagnostic and troubleshooting skills.
Ability to design software with security in mind.
Experience in the following : .NET / C# along with P / Invoke, C++, Win32, application installers, Windows services.
Task management and code version control systems.
Should be able to implement and support code quality policies and organize code review process.
Experience in designing various SDKs would be a plus.
Experience writing applications that utilize device drivers and / or communicate with USB or HID devices would be a plus.
Willingness to explore new platforms, frameworks and programming languages.
Ability to build and maintain effective working relationships at all levels of the organization, and work with a diverse group of people.
Ability to foster a sense of teamwork.
Strong communication and presentation skills.