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- 2 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.