What red flags and green flags are important to you in a future workplace?
C#
Explain the principle of Dependency Inversion from SOLID.
Do you live in Moscow?
Can you tell more about the architecture: is there a big monolith or a modular monolith?
Task: Events are received from users, each needs to be verified in an external source, but it does not respond immediately. Implement VerificationService which: - Accepts events from users - Tries to verify each by contacting an external service - If the response is PENDING, retries sending this event no earlier than 5 seconds later - Maximum 3 attempts, after which the event ID is output to stdout with status FAILED - Successfully processed events are output to stdout with status VERIFIED The templates and stubs of external dependencies are already implemented: 1. VerificationStatus 2. Event 3. VerificationResult 4. IExternalSource public enum VerificationStatus { OK, Pending, Error } public record Event(string Id, string Payload); public record VerificationResult(VerificationStatus Status, string? Message = null); public interface IExternalSource { VerificationResult Verify(string eventId); } public class VerificationService { private readonly IExternalSource _externalSource; private const int MaxAttempts = 3; private static readonly TimeSpan RetryDelay = TimeSpan.FromSeconds(5); public VerificationService(IExternalSource externalSource) { _externalSource = externalSource; } // TODO: implement }
How do async and await work under the hood in C#?
What happens when waiting for the first completed task with Task.WhenAny while other tasks are still running?
public class A { public virtual void Print1() { System.Console.Write("A"); } public void Print2() { System.Console.Write("A"); } } public class B : A { public override void Print1() { System.Console.Write("B"); } } public class C : B { public new void Print2() { System.Console.Write("C"); } } static void Main(string[] args) { var c = new C(); A a = c; a.Print1(); a.Print2(); c.Print2(); } What will be in stdout?
Would you be interested in mentoring junior developers?
Tell us about your professional journey over the past two and a half years: projects, products, tasks, and interesting nuances.
public struct S : IDisposable { private bool dispose; public void Dispose() { dispose = true; } public bool GetDispose() { return dispose; } } What will be in stdout?
What enabled the increase in the replication service throughput from about 300 to 700 messages per second? How were ConcurrentDictionary and SemaphoreSlim used?
Have you dealt with complex SQL query optimization tasks? Have you encountered EXPLAIN ANALYZE?
How do you evaluate your grade?
Tell me about the most challenging task you are proud of solving.
What are the values of Sum and Count?
If everything goes well and you accept the offer, when will you be able to start? Are there any agreements with your current company or planned vacation?
How to limit the degree of parallelism when processing a set of asynchronous tasks?
How to organize waiting for new events if the queue is empty, and what is the difference between Channel and ConcurrentQueue?
Have you always worked under an employment contract, or have you had/self-employed or are you currently self-employed?