Job Title: Lead Software Engineer
Job Type: Fulltime/ Permanent role
Locations : Remote
About the Role
The Lead Software Engineer will lead technical team leads responsible for driving the implementation of our .NET based applications. This position will work with the engineering members by coordinating implementation approaches and mentoring in product development. Additionally, this position will interface our chief architect, product managers and business executives to align product software design and implementation with business strategy and functional requirements. As part of projects, this position will participate in developing POCs to evaluate potential solutions for their applicability in specific production environments.
As a Lead Software Engineer, responsibilities include the following:
- Drive technology innovation and research; lead technology implementation and share emerging technology trends with engineering teams in coordination with the Chief Architect.
- Lead technical team leads responsible for front-end, back-end and big data tracks.
- Provide support in developing new product lines and upgrading existing products
- Coordinate with product development teams in defining project scope and approaches
- Coordinate with software development teams in developing and implementing software applications
- Mentor Software Engineers and Technical Team Leads to ensure quality and productivity
- Assist Product Managers in analyzing project requirements and project designs
- Participate in design, code and test plan reviews as needed and provide appropriate recommendations
- Analyze software issues and recommend solutions
- Develop best practices to ensure software functionality, usability, reliability, availability and security
- Assist in development of design documents, white papers, code standards, training documents and software architectural design documents.
- Be an involved and hands-on engineer with a minimum of 20% coding, including writing experimental POCs and reference implementations.
- Conduct regular team meetings and one-on-one sessions to share new ideas.
Required Skills and Experience:
- 10+ years of experience in software development
- 5+ years of experience in leading roles for complex software projects
- 5+ years of extensive experience with full stack MS .NET platform including:
ASP.NET, ASP.NET Web Services
- 3+ years hands on practice with DevOps driven environment:
Automated CI/CD pipelines
- 3+ years of experience with MS Azure IaaS, PaaS and SaaS solutions
Desired Skills and Experience:
- Experience with No-SQL solutions. Practical knowledge of MongoDB is required.
- Excellent understanding of RDBs concepts and in depth knowledge of MS SQL.
- Proficient in OOP, architecture patterns and software design principles
- Experience with Lucene based search engines (Solr, ElasticSearch)
- Good understanding of Big Data concepts and machine learning
- Experience in designing and building highly scalable web solutions
- Good understanding of modern application monitoring solutions. Hands on experience with at least one of the following products: New Relic, Application Insights, ELK, Prometheus
- Hands on experience with application dockerization and Kubernetes deployments
- Experience with Azure DevOps
- Good verbal and written communication skills