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.
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, with assistance from more senior developers when necessary.
- Maintains and supports existing Company software systems until completely phased out and replaced by updated versions.
- Tests, evaluates, and tracks software defects to maintain a clear record of development status and known function anomalies.
- Maintains current knowledge of new computer software technology and solid knowledge of electronic monitoring industry and user trends for Company products.
- Prepares and provides product training for Company technical support and systems administration staff, as needed
- Provides high-end technical support, trouble-shooting and problem resolution for internal user and technical support groups.
- Develops and documents functional specifications for Company designed products.
- Develops software solutions by studying information needs; conferring with users; studying systems flow, data usage, and work processes; investigating problem areas; and following the software development lifecycle
- Provides ad hoc custom reports for customers, operations and management.
- Supports testing efforts during quality assurance and user acceptance testing in order to ensure quality and punctual software development within area of responsibility.
- Provides mentoring and technical leadership and guidance to less experienced software engineers.
- Assists with project planning. Suggests improvements to complete projects on time.
- Participates in scrum meetings to provide project status and identify roadblocks, as necessary.
- Participates in Sprint Planning to plan the work and development tasks for the next software release.
- Performs other duties as assigned.
What You'll Bring to the Position
As a Software Engineer II you will bring the ability to design, analyze and develop system applications.
Additional requirements include:
- Bachelor’s Degree in Computer Science or related field.
- Minimum four years hands-on software development experience.
- In-depth software developmentexperience and skills in at least four of the following areas, and some level ofexperience and proficiency in theothers:
- Standard Development Skills: C#, SQL, Object Oriented Development, Service Oriented Development.
- Technologies: COM. DCOM, firmwareexperience.
- Environment/Platforms: Microsoft Visual Studio 2013 or higher, Microsoft Windows2012 or higher.
- Toolsets: Telerik, Crystal Reports
- Database: Relational databaseexperience, 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 understanding of iterative software development lifecycle methodology, such as Agile.
- Proficiency in project management techniques and practices. Ability to build development work plans for self and team.
- Solid understanding of relational databases.
- Outstanding technical and analytical skills.
- 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.
- .Outstanding written and oral communication skills with cross-functional groups to determine functional requirements for 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.
- Ability to plan and report daily activities and progress on assigned tasks.
- Excellent customer service skills.
- U.S. Citizenship required.
- Ability to pass a federal background check and obtain a suitability determination.