Job Description
1. Web client side developer:
TypeScript and JavaScript (ES 2015+)
Angular (latest version, currently Angular 21):
Must Have:
Strong foundation in Angular (v17/21) routing, Guards, Angular Forms (Template driven and Reactive), Custom validation, State Management using Ngx/NgRx, Angular HTTP communication, Angular Services, Directives, Pipes, Components, Modules (with lazy loading), Component lifecycle hooks, Dynamic loading of views, Dependency injection in Angular, RxJS operators, sound knowledge of observable patterns and usage, optimizing logic for high performance applications, Unit testing.
Good to have:
Strong Angular CLI concepts (latest version)
Frontend Development/Styling/Layouts:
Must have:
HTML 5, CSS 3 (especially responsive UI design using Grid layout and Flexbox layout), SCSS (variables, mixins, functions, etc.)
UI frameworks knowledge: Bootstrap 5, Tailwind CSS, Angular Material (latest versions)
2. Web server side developer:
Must have:
Strong knowledge in:
.NET Framework with C# (Desktop applications, ASP.NET Web API v2.2, dependency injection using 3 rd party libraries),
.NET 8/.NET Core (latest version) with C# (Dependency injection, understanding of middleware and creating custom middleware, Razor pages, HTTP communication between services and client – Push and Pull scenarios, adding behaviors via attributes)
Candidate should be able to write performant applications, services, Web APIs (REST/GraphQL), ASP.NET web applications using .NET Framework, .NET 8/.NET Core with C#.
Candidate should have good knowledge of SQL Server. Expertise in SQL Server includes creating and managing SQL Agent jobs, designing and optimizing complex queries, and developing efficient database schemas to ensure data integrity and performance.
Strong knowledge and hands-on experience with data access using Entity Framework 6/Entity Framework Core (latest version).
Candidate should be able to choose data access approaches based on scenarios/parameters such as data size, type of application, data streaming, high load, high throughput.
Candidate should have good knowledge of how to maintain data integrity, techniques to prevent data loss during communication in high load, high throughput, time delay between multiple data sources and/or temporary loss in network connectivity.
Candidate should understand time complexity involved in data coming from various sources at different rates and should know techniques to synchronize data in such conditions based on time and/or other metadata properties.
Knowledge of RabbitMQ and RabbitMQ streams.
Knowledge on .NET Core SignalR (latest version)
Communication using REST, GraphQL, gRPC in .NET.
Good to have:
Knowledge of Microservices: State management, inter-service communication, hosting.
Finding patterns of data based on business rules across streaming data packets.
Knowledge of NoSQL databases and data access through .NET interfaces.
Knowledge of Postgre SQL and Influx DB
