Job Information
IRIS Consulting Corporation Principal Software Engineer in Mendota Heights, Minnesota
The Principal Software Engineer is a technical expert with extensive knowledge and capabilities spanning platforms, frameworks, and languages. They are accountable to the technical health of a product, project, services, or technical domain. This includes defining technical solutions to business problems and to lead the effort to research, design, document, and modify software specifications throughout the product development life cycle. The Principal Software Engineer also defines and implements best practices, standards and processes for development, analysis, and maintenance of software applications. This includes processes and standards on writing, coding, testing, and analyzing software programs and applications.
The focus of this role is backend leaning for decomposing a monolith api into domains primarily written in C#. Knowledge of event driven architecture, containers, strong
Essential Functions
To perform this job successfully, an employee must be able to perform each essential function satisfactorily, with or without reasonable accommodation. To request a reasonable accommodation, notify Human Resources or the manager who oversees the position.
• Lead the research, identification, and analysis of business problems to create technical design meeting customer and stakeholder expectations for new or existing software applications.
• Identify risk and define mitigation plans, drive software engineering plans, and lead the effort in performing software improvements and upgrades.
• Create well architected designs and implemented code to enhance functionality and performance of software applications and lead software testing on new and existing programs for the purposes of ensuring customer health.
• Collaborate with architects and other technologists to develop and maintain code quality and architecture standards.
• Drive the definition of software development plans, including scoping, estimates, and implementation.
• Develop standards and reusable process for all software engineering.
• Provide technical advice, instruction, and training to software engineers with less experience.
• Drive product and software support effort for bugs, issues, and escalated incident tickets to resolve application and software issues.
• Collaborate with peers, managers, stakeholders, and customers to resolve problems with software products or company software systems.
• Deploy software through environments to production upon completion of development, testing, and documentation.
• Conduct code reviews based on team's defined best practices.
• Responsible for leading the technical health of a software area including engineering approaches, designs, architecture, and runtime operations.
• Mentor software team members on technical concepts.
• Introduces new technology to solve business problems and creates relevant prototypes.
• Proven event-driven architecture experience
• Experience breaking up a monolith with all the "ilities” such as Security, Observability, Scalability, etc.
• API management and governance experience to help accelerate teams to move faster
• Container experience such as Docker
• Strong C# development skills is a plus
• Integration and Design patterns experience
Additional functions
In addition to the essential functions listed above, the incumbent may perform the following additional functions.
• Participate in regulatory and compliance activities.
Required Qualifications
• Bachelor's in Computer Science, Information Systems, a related field or equivalent work experience
• 7+ years of software development experience required. Extensive experience in all aspects of software development and product life cycles
• Excellent understanding and proven experience of identifying and implementing software development best practices across teams
• Proven experience in object-oriented programming, additional programming approaches, and in leveraging multiple development technologies with proven ability to maintain software products written in different languages and platforms
• Extensive database (relational and hierarchical) and operating systems experience
• Extensive experience in defining and driving an architecture for products, systems, or infrastructure
• Extensive experience using source code management system
• Ability to analyze across a range of platforms and applications and see interconnections between organizational systems.
• Experience with product planning and developing business cases and return on investment analyses
Preferred Qualifications
• Attendance and speaking at industry events.
• Office environment – either in Patterson facility or at home/remote location
• Travel to vendor and corporate sites is periodically required
• Periodic on call rotations and available outside of normal business hours on evenings and weekends during critical production release or issue escalation periods
Equal opportunity employer including disability/veterans.