Net Lead Software Developer Apply
.Net Lead Software Developer
Ann Arbor, MI
6 Months CTH
PREFER HYBRID! Mon-Wed on site Thursday Friday remote (or onsite)
Job Description:
- Strong Experience with .NET Core/Framework: You've built, maintained, and optimized applications using .NET technologies.
- C# Mastery: You know your way around the C# language and can use it to write clean, efficient, and maintainable code.
- Web Development: Familiarity with ASP.NET, RESTful APIs, and front-end frameworks (e.g., JavaScript, HTML, CSS) is a plus.
- Database Knowledge: Experience with SQL Server or other relational databases, with the ability to write optimized queries and design efficient schemas.
- Cloud Skills: Familiarity with cloud platforms and tools (Azure & Cosmos) and building cloud-native applications is a big bonus.
- Agile Enthusiast: You're comfortable working in an Agile environment and know how to break down tasks and deliver incremental value.
Required Skills
- C#: The primary language for .NET development. Strong proficiency in C# is essential, including knowledge of object-oriented programming (OOP) principles, LINQ, async/await, and exception handling.
- .NET 5/6/7+: The modern, unified version of .NET, which combines the capabilities of .NET Core, .NET Framework, and Xamarin.
- ASP.NET / Core /ASP.NET MVC, web services and APIs.
- Understanding of ORM (Object-Relational Mapping) for working with databases. This includes knowledge of database migrations, LINQ queries, and performance optimization techniques.
- SQL: Proficiency in SQL and relational databases (SQL Server)
- Cloud Platforms and DevOps
- Azure: Proficiency in Microsoft's cloud platform, including services like Azure App Services, Azure Functions, Azure SQL Database, and Azure DevOps.
- CI/CD: Familiarity with Continuous Integration and Continuous Deployment practices, using tools like GitHub Actions, Azure DevOps, Jenkins, or GitLab CI.
- Unit Testing: Writing and maintaining unit tests with tools like xUnit, NUnit, or MSTest
- Mocking Frameworks: Tools like Moq or NSubstitute to simulate dependencies and isolate the code being tested.
- Integration Testing: Testing interactions with databases, APIs, and other external services.
- Test-Driven Development (TDD): Knowledge of TDD principles can improve code quality and reduce defects.
- Understanding of Design Patterns & Principles (Required)
- SOLID Principles: Understanding of SOLID principles for writing clean, maintainable, and scalable code.
- Design Patterns: Familiarity with common design patterns like Singleton, Factory, Observer, Decorator, and Repository.
- Microservices: Understanding how to design and implement microservices, with an emphasis on distributed systems and service communication (e.g., using REST, gRPC, or messaging queues)
- Authentication & Authorization: Knowledge of OAuth, OpenID Connect, JWT, ASP.NET Identity, and other security mechanisms.
- Data Security: Secure coding practices, handling encryption, and working with secure data storage solutions.
- OWASP: Familiarity with common security vulnerabilities (e.g., SQL Injection, Cross-Site Scripting) and how to mitigate them.
- Accessibility: Understanding of web and app accessibility standards (WCAG) to make applications usable for all users.
- Proven experience optimizing performance
- Profiling and Debugging: Familiarity with tools like Visual Studio Profiler, dotTrace, Application Insights, and New Relic for optimizing performance.
- Caching: Implementing caching strategies using tools like Redis, MemoryCache, or Distributed Cache.
- Concurrency: Knowledge of handling multi-threading, parallelism, and asynchronous operations for high-performance applications.
Required Soft Skills:
- Problem-Solving: Ability to break down complex problems and develop effective, efficient solutions.
- Collaboration & Teamwork: Communicating and working effectively in a team, often with diverse, co-located and cross-functional teams.
- Communication: Clearly explaining technical concepts to both technical and non-technical stakeholders.
- Adaptability: Willingness to learn new technologies, frameworks, and methodologies as the .NET ecosystem evolves.