Full Stack Developer (.NET), Courts & Justice
Description
The Software Engineer is responsible for coding, testing, and documenting application programs that are moderate to complex in nature, working with accepted development department standards and procedures.
Responsibilities
- Participate in agile processes and ceremonies to collaborate with the team to define stories, identify tasks, estimates, and acceptance criteria.
- Participate in analyzing, designing, writing, and testing code, documenting, and implementing functionally appropriate, technically sound, and well-integrated application systems. This is completed in accordance with customer requirements and organizational methodologies and standards for new application development as well as existing system enhancements.
- Participate in new application development and existing system enhancements by coding system features according to system designs.
- Maintain existing application programs by fixing bugs or clearing up operational deficiencies in both previously released software and software slated for future release.
- Assure program, module and system integrity through thorough testing and adherence to company standards and procedures.
- Work through all phases of the software development life cycle, including research, design, analysis, requirements, implementation, test automation, and maintenance.
- Utilize new technologies and tools to modify products and provide integration with applications developed internally and externally.
- Prepare and modify program and system documentation.
- Collaborate with more experienced team members to ensure knowledge transfer and training are successfully meeting department goals.
- Achieve departmental goals and timelines.
- Perform other duties as assigned.
- Demonstrate the ability to take increasingly difficult assignments and successfully implement it with little or no help from more senior resources.
- Develop programs that are moderate to complex in nature, adhering to established departmental standards.
- Learn and implement new technologies and architectures within a reasonably quick timeframe while producing and testing high-quality software.
- Demonstrate strong knowledge of software development practices, concepts, and technologies obtained through formal training and work experience.
- Demonstrate strong knowledge of required programming languages.
- Demonstrate strong knowledge of the technical/business environment.
- Effectively partner, communicate, and negotiate with business analyst, development, and support groups in order to clarify and implement business requirements.
- Work on individual components that are part of a much larger application suite.
- Adapt to changing products and technologies.
- Fix bugs in existing software under considerable time constraints in support of service level requirements.
- Manage and prioritize conflicting tasks and interruptions so as to minimize their impact on the current deadlines and workload.
Qualifications
- Bachelor’s degree in computer science, computer engineering, or comparable work experience.
- Typically, three or more years of software development experience.
- Excellent verbal and written communication skills.
- Strong interpersonal skills.
- Demonstrated strong knowledge of software development practices, computer science theory, and understanding of relevant technologies.
- Relevant Technologies:
- C# (or similar high level language)
- .NET Framework or .NET Core
- JavaScript
- AngularJS
- Blazor
- Microsoft SQL Server
- Entity Framework
- XML/XSD
- REST/JSON
- Amazon Web Services
- Unit test-driven tools
- Security (OWASP) & Performance
- Web Content Accessibility Guidelines (WCAG)
- Demonstrated experience with JavaScript, AngularJS, and Blazor
- Experience writing and testing code to meet strict deadlines.
- Demonstrated understanding of product architecture and underlying technologies.
- Demonstrated understanding of development process.
- Demonstrated experience with data modeling tools, web services and/or service oriented architecture.
- Ability to work well both independently and within a team environment.
- Solid negotiation with various parties to ensure enhancements to applications are addressed while maintaining/balancing business situations and constrictions.
- Well-developed logical thinking and reasoning skills.
- Ability to prioritize and complete multiple tasks in a fast-paced, technical environment.
- Keen attention to detail.