.NET application development with Entity Framework and LINQ skills
Expertise in System.Linq.Expressions, including constructing and modifying Expression Trees with ExpressionVisitor
Deep understanding of EF Core translation pipeline and SQL translation; ability to troubleshoot could not be translated errors by restructuring C# logic into SQL-friendly constructs (e.g., Joins and Projections)
Advanced metaprogramming: runtime type generation and creating dynamic types to handle varying data shapes without memory leaks
Requirements:
Develop .NET applications using Entity Framework Core and LINQ
Build and modify Expression Trees at runtime using System.Linq.Expressions and ExpressionVisitor
Troubleshoot and optimize EF Core translation to SQL; refactor logic to produce SQL-compatible queries (joins, projections) and resolve 'could not be translated' errors
Implement advanced metaprogramming techniques, including runtime type generation and dynamic types, ensuring memory safety
Job description
.NET DEVELOPER (Remote) Core skill - Expertise in System.Linq.Expressions
Key Requirements
.NET App development with Entity Framework and LINQ skills
Expertise in System.Linq.Expressions: They must move beyond "using" LINQ to "building" it. They need deep experience manually constructing and modifying Expression Trees (using ExpressionVisitor) to rewrite queries at runtime.
EF Core Internals & SQL Translation: Deep understanding of the Entity Framework Core translation pipeline. They should know how to troubleshoot "could not be translated" errors by restructuring C# logic into SQL-compatible structures (like Joins and Projections).
Advanced Metaprogramming: Proficiency in Runtime Type Generation. They should be comfortable creating dynamic types at execution time to handle varying data shapes without causing memory leaks.
Architectural Pattern Mastery: Advanced experience with the Builder Pattern and Fluent API Design (similar to how the EF Core "Fluent API" itself is built).
Functional Programming in C#: High comfort level with generics, delegates, and higher-order functions (passing logic as data).