Job Description
A Software engineer at IFS designs, develops and maintains software included in IFS products. This work is focused on interpreting and analyzing functional and technical requirements to create fit-for-purpose and enterprise-grade software. Usability, maintainability, security and performance are key aspects of this work.
Someone in this role uses their technical know-how to develop and maintain the products in a way that ensures product sustainability throughout the product’s lifecycle. Software engineers at IFS demonstrate a strong commitment to the product quality and takes proactive action to prevent issues from arising and resolve them quickly and effective when they still do occur.
To participate in design/code reviews and to apply sound and established software engineering practices and principles is part of the day-to-day work. So is defining and using design patterns, quality metrics, test cases and best practices.
Responsibilities:
- Design, develop, and maintain software for IFS products, focusing on usability, maintainability, security, and performance.
 - Interpret and analyze functional and technical requirements to create enterprise-grade software solutions.
 - Contribute to multiple functional and technical areas within a product, including designing and scoping new features.
 - Participate in design/code reviews and apply established software engineering practices and principles.
 - Ensure code quality through adherence to team standards and regular code reviews.
 - Proactively prevent and resolve issues to maintain product sustainability throughout its lifecycle.
 - Continuously improve technical skills, product knowledge, and problem-solving abilities.
 - Collaborate effectively within the team, initiating knowledge sharing and constructively challenging existing perspectives.
 - Diagnose issues and provide solutions across multiple functional and technical areas within a product.
 - Align work with strategic initiatives and company goals, making decisions that enhance maintainability, reuse, and performance.
 
· 1- 5 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.
Must-Have Skills
- Programming: Hands-on experience with C#/.NET, ASP.NET, Angular, and Python.
 - Databases: Familiar with PostgreSQL and Oracle.
 - APIs: Good understanding of RESTful APIs and JSON.
 - UI/UX: Basic knowledge of UI/UX principles, wireframing, and prototyping.
 - Software Design: Experience with dependency injection, ORM frameworks, and writing clean code.
 - Testing: Able to write and maintain unit and integration tests.
 - Agile: Worked in Agile/Scrum teams.
 - Communication: Strong verbal and written communication skills.
 - System Design: Ability to design and build scalable software systems.
 
Nice-to-Have Skills
- Tools: Experience with Visual Studio and helpful extensions.
 - DevOps: Exposure to Docker and Azure DevOps pipelines.
 - Cloud: Basic knowledge of Microsoft Azure.
 - GIS: Experience with ArcGIS tools like ArcGIS Pro SDK, ArcPy, or ArcGIS JavaScript API.
 - OS: Comfortable working in Linux and/or Windows environments.
 - Advanced Testing: Familiar with Selenium, SpecFlow/Reqnroll, NUnit, and BDD tools like Gherkin.
 - AI Tools: Exposure to AI tools that support faster and better software development
 

.png)

