First Bank of the Lake is seeking a Senior Software Engineer responsible for designing, developing, and maintaining scalable, high-quality software solutions. This role involves collaborating with product owners and other engineers to deliver secure and performant applications using modern technologies.
Responsibilities:
- Design, develop, test, and maintain enterprise‑grade applications using .NET, SQL Server, Azure, and Angular
- Collaborate with product owners, business analysts, and stakeholders to translate business requirements into technical solutions
- Build and maintain RESTful APIs, backend services, and frontend applications with a focus on performance, scalability, and security
- Contribute to architectural decisions and help guide the technical direction of applications and platforms
- Ensure high code quality through code reviews, unit testing, integration testing, and adherence to development standards
- Optimize database queries, schemas, and performance within SQL Server environments
- Develop and deploy applications in Microsoft Azure, leveraging services such as App Services, Azure Functions, Azure SQL, Storage, and DevOps pipelines
- Mentor and support junior and mid-level engineers, fostering a culture of continuous learning and technical excellence
- Participate in Agile/Scrum ceremonies, including sprint planning, stand-ups, reviews, and retrospectives
- Troubleshoot and resolve complex technical issues across the application stack
- Ensure applications meet security, compliance, and regulatory requirements appropriate for a financial institution
- Contribute to the evolution and documentation of coding standards, development practices, and system architecture
- Take ownership of end-to-end solution delivery while continuously improving engineering processes and team effectiveness
- Establish and enforce technical standards, development practices, and architectural consistency across the engineering team
- Act as the go-to engineer for complex technical systems, architectural challenges, and high-impact production issues
- Collaborate with cross-functional teams to ensure seamless integration and operational stability
- Support observability practices by implementing logging, monitoring, dashboards, and alerting to maintain proactive system health
- Participate in on-call rotation as needed to support high‑availability production systems
- Must complete all required training, including Bank Secrecy Act/Anti-money Laundering training, suitable to their position within the bank
Requirements:
- Bachelor's degree in Computer Science, Engineering, or a related field. Additional relevant experience may be substituted on a year‑for‑year basis for formal education
- Minimum 7–10 years of professional software development experience, with a strong focus on Microsoft technologies
- Proven experience delivering production systems in a cloud‑based environment, preferably Azure
- Strong expertise in C#, .NET (Core/6+), Entity Framework, and ASP.NET Web APIs
- Solid experience with SQL Server, including schema design, indexing, performance tuning, and complex queries
- Hands-on experience with Azure services and cloud-native development practices
- Proficiency in Angular, TypeScript, HTML, and CSS/SCSS for building modern web applications
- Experience with CI/CD pipelines, source control (Git), and DevOps best practices
- Strong understanding of secure coding practices and application security principles
- Ability to work effectively in a remote, collaborative team environment
- Strong problem-solving skills and attention to detail
- Excellent communication skills, with the ability to explain technical concepts to both technical and non‑technical audiences
- A proactive, ownership‑driven mindset with a focus on delivering high‑quality, maintainable solutions
- Must complete all required training, including Bank Secrecy Act/Anti-money Laundering training, suitable to their position within the bank
- Experience working within regulated industries such as finance, banking, or insurance is a plus
- Familiarity with domain‑driven design (DDD), microservices architecture, or event‑driven systems is preferred
- Experience with automated testing frameworks (e.g., xUnit, NUnit, Jest, Cypress) is strongly preferred