Identify and define solutions to business requirements and deliver state-of-the-art implementations in the form of application design, development and support
Design, code, upgrade, test (incl. automated unit, functional, smoke & performance testing), debug, document, integrate and maintain applications, application components and common services adhering to our SDLC best practices and guidelines
Make use of application design, development and maintenance standards including the use of standard languages and tools
Develop productivity skills by learning source control, editors, the build system, and other tools as well as testing best practices
Understand and practice Agile software development following SCRUM methodology.
Participate in business analysis, systems analysis/consulting, and systems design
Provide advice, guidance, training and support to junior developers, business and information technology users, business partners, and management
Champion the product scalability, usability, reliability, functionality and performance-related aspects of the system. Scales themselves by delegating effectively; ensures tasks are completed as specified.
Establish intensive communication and good relationship with the team members and stakeholders, empower the team, lead by example and contribute to others’ and own career development
CORE REQUIREMENTS:
Excellent verbal & written skills to interact, build and maintain effective relationships with peers in both English and Bulgarian. This also includes communication channels like email, chat, scrum boards, wiki pages etc.
Strong analytical, problem-solving and programming skills, with high responsibility and care of the details
Ability to identify and isolate problem areas within the entire application flow and to investigate the root cause and implement solutions. Need to get a clear understanding of the requirements and work with the business to implement best possible solutions.
Self-organized, working well independently and in a geographically diverse team environment in a collaborative fashion.
Ability to design a good architecture for a new project as well as migration of legacy projects to new architecture. Produce and maintain proper documentation. Minimum of a Bachelor’s Degree in Computer Science or a related field.
REQUIRED SKILLS/EXPERIENCE:
Microsoft .NET developer with 7+ years of experience building high-performance client/server and web applications.
Strong experience with Microsoft .NET/C#/.NET Core software development (4+ years).
Strong experience in RESTful API design, develop & support
Strong experience with JSON and XML data interchange formats. XSL and XSLT are a plus.
Strong experience with Microsoft SQL Server (5 years), including experience with stored procedures, triggers, functions, and TSQL. Knowledge of transactions, ACID compliance, and data normalization.
Experience in optimizing SQL queries and knowledge of ORMs such as Dapper or similar.
Strong Object Oriented Design and Programming skills for designing, building and maintaining clean, readable, efficient, reusable, and reliable C# code
Experience with multi-process, multithreaded development in a Windows environment.
DESIRED SKILLS/EXPERIENCE (WOULD BE A PLUS):
Experience with PowerShell
Experience porting .NET applications to .NET Core
Network programming with TCP/IP sockets. Understands how to use tools such as tcpdump and WireShark.
Experience in migrating legacy physical systems to the Amazon Cloud (AWS)
Experience with current development technologies, methodologies and workflows including CI/CD, Agile development (Scrum, JIRA), Git, Jenkins, Artifactory, Terraform, BDD, Docker, Microservices, spinnaker, Istio, Grafana, Prometheus.
Experience writing unit, functional, performance, soak and stress tests. Knowledge of Cucumber is a plus
Experience developing secure applications (OWASP Top 10)
Experience with encryption and compression techniques
Experience with developing and deploying and configuring Windows Services and WCF Services