ESSENTIAL DUTIES AND RESPONSIBILITIES include the following. Other duties may be assigned as needed:
- Perform revision, repair, or expansion of existing programs to increase operating efficiency or adapt to new requirements
- Conduct data extract, transform and load
- Provide system requirements analysis for replacement of legacy applications, and enhancement to existing applications
- Develop, test and implement business process analysis, redesign, and automation
- Create, test and implement enhancements to existing code
- Review application to ensure compliance with security and architectural standards
- Produce, test and implement remediation of existing application fixes and change requests
- Carry out analysis of business requirements and convert them into technical requirements;
- Maintain and develop software requirements specifications, software design specifications, system design specifications, system configuration specifications, and other documents required to plan, design, build, test, maintain and support systems and applications
- Design concept papers, standards, policy recommendations; provides technical consultation and support to other programs that have similar systems; meets with other technical staff and management in scheduling resources, developing timelines and resolving issues; prepares documentation, proposals procurement documents, technical specifications, server builds, etc.
- Dispense maintenance as needed on Canine Companions written applications as well as standard applications in use at Canine Companions
- Perform data pull requests and validate results
- Conduct periodic backup of Canine Companions relational databases and server data
- Act as backup for programming and other data entry systems and applications
- Assist and coordinate in maintenance on database related systems, including but not limited to: hardware upgrades/replacement, operating system software maintenance, database software maintenance
- Establish and maintain web technology standards, processes and procedures for configuration management, change management and release management
- Research, analyze and institute best practices to improve technology standards, processes and procedures for planning, building and maintaining applications, application management, and tools
- Develop and maintain software requirements specifications, software design specifications, system design specifications, system configuration specifications, and other documents required to plan, design, build, test, maintain and support systems and applications
- Maintain and develop systems documentation for applications and their complex support systems
- Offer training to co-workers including technical and business staff
- Provide presentations to staff, management and business partners when necessary
- Develop and maintain stored procedures, views, and functions
- Be accountable not only for direct responsibilities outlined in this job description but also to serve fellow staff and other constituents with whom position interacts.
- Ensure actions and communications follow core values.
- Systems analysis and data processing skills to translate manual operations and processes to automated or streamlined processes
- Understanding of modern software development techniques, agile methodologies, object-oriented design, continuous integration (including GitLab CI/CD and Jenkins), and version control (GIT)
- Knowledge of applications design, documentation, and coding
- Good interpersonal and communication skills
- Strong problem solving and decision-making skills; comfortable starting with ambiguity and refining to concrete solutions
- Ability to: communicate effectively to staff, contractors, managers and leadership; exercise a high degree of initiative, independence of action and originality; establish priorities and complete multiple assignments to meet firm deadlines; easily adapt to changing priorities, plan and project workload to meet work demands
- Understanding of Information Technology Infrastructure Library (ITIL) and working in a process driven environment
- Strong desire to learn new technologies
- Professional software development experience with a consistent track record of owning feature-level deliverables
- Strong object-oriented design and coding ability
- Experience with asynchronous web application development and relational databases (SQL Server, PostgreSQL, MySQL, etc.)
- Experience designing and implementing complex data-driven, multi-tier web applications which are performant and user-centric
Preferred experience with:
- CiviCRM, Drupal and/ or WordPress
- Deploying systems using Cloud Services such as Azure, AWS, Google, Etc
- Scripting languages (e.g. Powershell, Ruby, Pythol, Perl)
- Predictive analytics, data mining and data visualization languages (including R and ELK Stack)
- Building rich user interfaces
- Progressive web application development; analyzing data integrity (e.g. collations/ encoding, data constraints/ reconciliation
- Writing and developing using Jasper
- PowerShell or VB scripting skills for task automation.
EDUCATION: B.S. degree in Computer Science or an equivalent combination of education and experience.
WORKING CONDITIONS: Stationed at workstation for majority of job. Occasional travel to regional centers. Occasional night and weekend work may be required.
SAFETY HAZARDS: While performing the duties of this job, the employee may be subject to hazards that can be caused by working around service animals and other campus animals. Activities include repetitive motions. The noise level in work environment is usually quiet. Minimal Hazards. General office working conditions.