The Software Engineer is a technical member of the development team. They are responsible for designing, coding, and reviewing the work done in the team. They participate in all aspects of the agile software development lifecycle, from inception to support. Software Engineers embrace continuous personal improvement in their own learning process and team improvement. Software Engineers demonstrate competence in technical decision making and problem solving. They independently manage their contributions and proactively raise impediments. They fully understand the processes and support adoption by the team. Software Engineers are a positive influence on the culture of the team and help other team members meet their objectives.
Essential Duties & Responsibilities
- Contributes independently to multiple functional and technical areas within a product.
- Designs and scopes new features.
- Creates artifacts/documents that are valuable to the team.
- Continued ownership of technical growth including:
- Product and business knowledge
- Problem solving skills
- Technical knowledge
- Process knowledge
- Acts as a good citizen within the team technically and culturally.
- Ensures quality of code written or reviewed.
- Adheres to quality/technical team standards.
- Reviews code according to their expertise.
- Ensures that their deliverables meet the scheduled commitments.
- Makes decisions in their area of responsibility that help maintainability, reuse, and performance.
- Initiates conversations to get the support/clarity necessary to carry out a task.
- Constructively challenges existing perspectives and proposed solutions inside the team.
- Proactively assists in accomplishing team-level technical goals.
- Initiates knowledge sharing with other team members.
- Evaluates alignment of work with strategic initiatives and company goals.
- Able to diagnose issues and provide solutions for multiple functional and technical areas within a product.
- Can independently frame problems and perform relevant research for small (1 team-sprint) effort.
- Recommended 4+ years of relevant experience
- BA/BS required, Technical Diploma in Computer Science, MIS, or IT or a related field preferred.
- Able to work / be available a couple hours a day that overlap with US Business Hours is a must.
- Development languages: Knowledge of server-side programming languages including C# /.Net, &/or Java.
- Web Services: Experience with SOAP, REST, JSON.
- Database and cache: Familiarity with DBMS technology, including SQL Server, and / or Oracle.
- Good writing and communication skills
- Ability to visualize a proposed system and be able to build it.
- Dev Ops: Experience working with Ansible, Azure Dev Ops & Terraform is strongly preferred.
Nice to Have
- Server: Linux experience is nice to have.
- Development Tools: Eclipse IDE, Visual Studio/vs code and GIT is nice to have.
- Testing Tools: Experience with Selenium is nice to have.
- ESRI/GIS experience is nice to have.
- Database: Familiarity with Postgress