We are growing and looking to expand our top notch Software Engineering team !!
About the Role
Develops and modifies software programs of a high degree of complexity and scope, using a thorough knowledge of current software development techniques and capabilities. Provides technical support to applications programmers and lower level software engineers. Works to achieve the most efficient use of available hardware through effective use of software programs and routines. May lead the work of lower level software engineers.
What You'll Be Doing
- Designs, develops and documents technical aspects of computer software systems and related hardware interface components, based on functional and system requirements, to produce accurate and timely results for Company products. Works independently with a minimum of assistance/guidance
- Assists the Technical Leads in analyzing system specifications and translating system requirements to task specifications for lower level Software Engineers
- Maintains current knowledge of new computer and software technology and advanced knowledge of electronic monitoring industry and user trends for Company products
- Responds promptly and professionally to bug reports. Resolves issues or assigns to lower level Software Engineers for resolution. Provides status reports to management
- Prepares and provides product training for Company technical support and systems administration staff as needed
- Develops and documents functional specifications for Company designed products
- Provides mentoring, technical leadership and guidance to lower level software engineers in best practices and appropriate use of design patterns. Mentors other department staff members as needed
- Studies available software and makes recommendations concerning purchase of software packages from vendors or development of in-house programs
- Participates in the project planning process and suggests methods and improvements to compete projects on time and within budget
- Supports software development projects through the entire lifecycle, including design, development, test and production release
- Researches and designs new object oriented techniques and frameworks and incorporates best solutions into the software infrastructure
- Participates in scrum meetings to provide project status and identify project roadblocks, as necessary
- Participates in Sprint Planning to plan the work and development tasks for the next software release
What You'll Bring
- Bachelor’s Degree in Computer Science or related field. Equivalent foreign education experience acceptable.
- At least eight years hands-on software development experience.
- In-depth software development experience and skills in the following areas:
- Standard Development Skills: C#, SQL, Object Oriented Development, Service Oriented Development.
- Technologies: COM. DCOM, firmware experience.
- Environment/Platforms: Microsoft Visual Studio 2013 or higher, Microsoft Windows 2012 or higher.
- Toolsets: Telerik, Crystal Reports
- Database: Relational database experience, SQL Server 2012 or higher.
- Source Control: knowledge of change control technologies
- Thorough familiarity with the product development life cycle and extensive hands-on experience with multiple methodologies.
- In-depth knowledge of multi-user, multi-tasking software capabilities and constraints.
- In-depth understanding of iterative software development lifecycle methodology such as Agile.
- Proficiency in project management techniques and practices, including time/cost estimating and scheduling. Ability to build development work plans for self and team
- Solid understanding of relational databases.
- Outstanding technical and analytical skills.
- Ability to identify tasks which require automation and automate them.
- Ability to learn new technologies very quickly and resolve any problems involved in integrating new technologies with Company systems.
- Expert knowledge of standard development tools.
- Ability to provide technical mentoring to peers, evaluate technical alternatives and provide technical recommendations to management.
- Ability to design, analyze and develop system applications.
- Ability to analyze, troubleshoot and resolve complex technical problems.
- Ability to prioritize and lead multiple tasks.
- Ability to develop timely, creative, working software oriented solutions to specific end-user problems while remaining within the context of overall product specification.
- Outstanding written and oral communication skills with cross-functional groups to determine functional requirements of new software.
- Ability to clearly and professionally communicate with business users, team members and management.
- Ability to produce clear documentation and reports that can be understood by both technical and non-technical audience.
- Excellent customer service skills.
- U.S. Citizenship required.
- Ability to pass a federal background check and obtain a suitability determination.
- Ability to maintain confidentiality with regard to information stored in operational databases.
- Working knowledge of Object Oriented / nTier design/architecture, SOA, XML.
- Ability to work with computers and the necessary software typically used by the department.