C# software engineer