Faryal K

Software Engineer with experience in full stack development, microservices, and enterprise applications. Proficient in .NET Core, MVC, C#, and Elasticsearch, with a focus on improving application performance, streamlining deployments, and supporting scalable software systems in Agile environments.
AUD
Availability Lead Time:
2-4 weeks
Skills

Video Intro

Qualifications & Work History

EDUCATION

BS Computer Science, National University of Computer and Emerging Sciences, Lahore, Pakistan (2016 – 2020)

WORK EXPERIENCE

Senior Software Engineer @ Netwrix Corporation, USA, Remote (Mar 2020 – Present)

  • Design and implement a background service on IIS using Quartz.NET, managing multiple scheduled tasks and reducing manual intervention by 90%.
  • Work as a Full Stack Developer on an enterprise-level .NET Core MVC application, enhancing functionality by 30% as the primary feature developer. Deliver 7+ core features, build 10+ reusable front-end components, and implement 15+ API endpoints in C#.
  • Contribute to the migration of a legacy MMC Snap-in console to a modern web application.
  • Participate in the transition to a microservices architecture, reducing deployment times by 60% and enhancing usability by 50%.
  • Utilize Elasticsearch as the primary data storage solution, developing advanced querying criteria that improve index retrieval speed by 20%.
  • Deliver and maintain a C# Windows Patch Application using .NET Framework and MVVM, reducing customer issue resolution time by 80% and achieving 95% client satisfaction.
  • Provide technical support for the primary product, engaging with international clients, identifying 90% of issues in the first interaction, and ensuring high customer satisfaction.
  • Collaborate within an Agile team of .NET developers, leveraging Azure DevOps for sprint planning and bug management, completing 95% of sprint tasks within deadlines.

Assessment

Attribute types measured include cognitive ability, skills, knowledge, personality characteristics, emotional intelligence, and past behavioral history. Note that these results should always be used as a part of a balanced candidate selection process that includes independent evaluation steps, such as interviews and reference checks.

Another Video

Image

Interview

Q1.Please describe a recent .NET project you are proud of. In your
description, briefly explain the project's purpose, its architecture (e.g.,
microservices, monolith), and mention at least three key .NET-related
technologies or libraries you used and why.

I primarily worked on an enterprise product that was recently migrated from
.NET Framework to .NET Core. During the major release, we added multiple
features, one of which was the Scheduling Service within our .NET
application.
The purpose of this service was to handle recurring business actions at
user-specific scheduled times, reducing human intervention and automating
multiple tasks. I built it as a standalone component within our
architecture, keeping it loosely coupled so it could integrate with both
our monolithic setup and a future microservice-oriented design. For
scheduling, I used Quartz.NET, which provided flexible cron-based triggers
and job persistence.

The technologies I leveraged were:

  1. Quartz.NET
  2. BackgroundService abstract class to keep the scheduler state up to date
  3. SQL Server, which contained the notification queue holding notifications
    that needed to be sent when a task was completed (automatically picked up
    by our independent email service).
    This approach made the solution OS-independent and removed the dependency
    on Windows-based task schedulers for automation.

Q2. When building a large and complex Angular application, performance can
be a challenge. Based on your experience, please describe two different
strategies you have used to optimize an Angular application's performance.

In my experience working with Angular, I’ve used a couple of
straightforward strategies to improve performance which are:

  1. Lazy Loading Modules: I configured Angular to load modules only when
    they are needed. This reduced the initial bundle size and made the
    application load faster.
  2. I used Angular’s built-in async pipe instead of manually subscribing to
    observables. This made the components more efficient and prevented memory
    leaks from forgotten subscriptions.

Q3. Cassandra data modeling is often described as 'query-driven'. Briefly
explain what this means and describe the difference between a partition key
and a clustering key.

Cassandra is a noSQL database designed for distributed systems. And by
query driven, it means that the schema design is based on queries that our
application uses instead of KeyValuePairs(Elastic NoSQL) or Tables(SQL).
A partition key decides which partition stores the date and groups related
data together in that partition.
A clustering key decides in what order is that data stored for maximum
performance.

Q4. Briefly outline the high-level components of a simple social media
application where users can post short updates, which are then displayed in
a feed. Describe the role that .NET, Angular, and Cassandra would each play
in this system.

A social media application could be structured with the following services:
Backend

  1. User Service: Handles login/logout, authentication, profiles,
    friend/follow relationships
  2. Post Service: Manages creating and retrieving posts when a user opens
    the application. Cassandra can be used here to store posts in a
    query-driven way, making feed retrieval fast and efficient.
  3. Notification Service: Sends notifications when someone posts, likes, or
    follows you. This can be implemented using an observer/subscriber pattern
    or a messaging queue for scalability.

Frontend
Angular/React Application: For UI of the application

Database
Cassandra:Stores posts, activity data, relationships