Skill diminta
.NETASP.NETGraphQLMicroservicesPostgreSQLSQLTroubleshooting
Deskripsi
Deskripsi pekerjaan GraphQL & Data Access Optimization Pt Vanz Inovatif Teknologi (qbit)
Requirements
Strong experience with C# and .NET 8 / ASP.NET Core.
Strong understanding of GraphQL, including:Schema design, Queries and mutations, Resolvers, Fragments and variables, Pagination, Error handling, Schema evolution
- Strong experience building REST and/or GraphQL APIs.
- Strong knowledge of Entity Framework Core, LINQ, and ORM optimization.
- Strong SQL knowledge with experience in PostgreSQL, MySQL, or SQL Server.
- Good understanding of database concepts including: Indexing, Joins, Transactions, Concurrency, Query execution plans, Connection management
- Strong understanding of N+1 query problems and solutions such as DataLoader/batching.
- Experience with asynchronous programming and async/await.
- Experience with API and database performance tuning.
Key Responsibilities
- Review GraphQL queries and resolver implementations that may cause excessive database calls.
- Optimize resolvers, batching, filtering, pagination, and data fetching.
- Identify and mitigate issues such as N+1 queries and unnecessary data retrieval.
- GraphQL Development & API Integration
- Design, develop, and maintain GraphQL APIs using ASP.NET Core and .NET 8.
- Design GraphQL schemas, types, queries, mutations, resolvers, and interfaces based on business requirements.
- Integrate GraphQL APIs with internal services, microservices, databases, and third-party systems.
- Implement efficient resolver patterns and ensure proper separation of application, business, and data-access layers.
- Maintain API documentation and ensure backward compatibility when introducing schema changes.
- Design and optimize data-access layers using Entity Framework Core, LINQ, and PostgreSQL/SQL.
- Analyze and resolve N+1 query problems using DataLoader, batching, and optimized resolver strategies.
- Optimize database queries, joins, indexing, filtering, pagination, and transaction handling.
- Review generated SQL queries and identify inefficient ORM/database access patterns.
- Implement appropriate caching strategies at application, resolver, and data-access levels.
- Improve API and database performance by reducing unnecessary queries, round trips, and data retrieval.
- Monitor and troubleshoot API and database performance issues in development, staging, and production environments.
- Conduct performance profiling, query analysis, and root-cause investigation.
- Design scalable data-fetching patterns for high-volume and high-concurrency applications.
- Implement asynchronous programming using async/await and appropriate cancellation/error-handling patterns.
- Optimize GraphQL queries, response payloads, pagination, and field resolution to improve latency and resource utilization.
- Collaborate with infrastructure/database teams to improve end-to-end application performance.
- Implement authentication, authorization, validation, rate limiting, and query complexity/depth controls for GraphQL APIs.
- Handle errors consistently and ensure reliable API behavior.
- Prevent excessive or abusive GraphQL queries that could impact system performance.
- Support monitoring, logging, tracing, and production troubleshooting.
- Maintain technical documentation, coding standards, and best practices.
- Work closely with Backend Engineers, Database Engineers, Frontend Engineers, QA, DevOps, and Product teams.
- Participate in system design, code reviews, technical discussions, and architecture decisions.
- Identify opportunities to improve application architecture, data access patterns, and overall system performance.