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.
- 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
- A Degree in Software Engineering, Computer Science, Information Technology or equivalent.
- Able to work / be available a couple hours a day that overlap with US Business Hours is a must.
Skillset
- Front-end technology: Expertise in front-end technologies, including JavaScript / Typescript, CSS3 and HTML5 and Angular third-party libraries.
- Development languages: Knowledge of server-side programming languages including C# /.NET (Core, Standard)
- Database and cache: Familiarity with DBMS technology: SQL Server, T-SQL
- Web Services: Experience with SOAP, REST, JSON.
- Basic design ability: Including knowledge of UI/UX and basic prototype design.
- Programming Techniques: experience with dependency injections,
- Development Tools: Eclipse IDE, Dev Studio is nice to have.
- Testing: Ability to implement Unit tests and Integration tests. Experience with Selenium is nice to have.
- SDLC Methodology: experience practicing the Agile methodology.
- Additional experience is a plus in the following areas: WCF; Web Security, multithreading, MVC / MVVM, RESTful APIs, IoC Containers
- Cloud Computing platform: Microsoft Azure preferred.
- Good writing and communication skills
- Ability to visualize a proposed system and be able to build it.