A Software Developer is responsible for coding, testing, and documenting application programs of basic to moderate size and complexity, working with accepted development department standards and procedures.
The ideal candidate would have a passion for developing great, high quality, software in a collaborative team environment with a hunger to continuously learn, grow and improve.
- Work in a collaborative fashion with product teams to bring tangible results to market.
- Work in an Agile/Scrum environment through all phases of the software development life cycle, including research, design, analysis, requirements, implementation, test automation, and maintenance.
- Contribute to the continuous improvement of the internal processes.
- Analyze, design, and develop lean, secure, well-documented and testable code of moderate to high complexity using modern design techniques that conform to the requirements, established technical architecture, and industry best practices.
- Collaborate with a cross-functional team of product managers, business analysts, developers, and QA analysts to solve challenging business and technical objectives.
- Produce written test cases, unit tests, and integration tests and perform necessary application testing to ensure code quality and adherence to requirements.
- Troubleshoot software issues to determine root causes and provide solutions.
- Maintain existing application programs by fixing bugs or clearing up operational deficiencies in both previously released software and software slated for future release.
- Apply your creativity and problem-solving skills in developing new application programs from established specifications or documented requirements.
- Work on high level projects that are viewed as strategically important to our future success (technology stack will vary by project).
- Bachelor’s degree in computer science, information technology or related discipline; or equivalent work-related technical experience.
- Understanding of general engineering concepts like design patterns, OO programming and SOLID principles, data structures and algorithms.
- Experience with or exposure to different technologies, including full stack, web development and cloud development.
- Working knowledge and experience with MVC frameworks and technology.
- Good working understanding and experience with relational and non-relational database technologies and concepts.
- Demonstrated ability to move projects forward with minimal direction.
- Solid research, analytic, and problem-solving skills.
- Excellent written, oral, and interpersonal communication skills in a small team environment.
- Results-oriented, self-motivated.
- A particular interest in building tools to that will connect communities and empower the people who serve the public.