Senior Software Engineer

Skills
.NET FrameworkApplication DevelopmentComputer ScienceOOPSoftware DevelopmentWeb Application DevelopmentWeb Applications
Role

What the job involves

The main requirements, responsibilities and hiring steps.

Requirements

  • Fluent in English for written and verbal communications
  • Strong understanding of SOLID principles and best practices
  • Experience with back-end development using C# and .NET Core
  • Familiarity with PHP is a plus
  • Experience with front-end development using HTML, CSS, and JavaScript/TypeScript (preferably Angular)
  • Experience with database technologies such as T-SQL, MS SQL Server/MySQL
  • Experience with code versioning tools such as Git
  • Ability to design, develop, configure, and test software products
  • Experience in Azure, Cloud Native Architecture, Containers
  • Capable of leading a small team and working independently
  • Commitment to staying current with latest technologies
  • Minimum 8 years of software engineering experience
  • At least 4 years of .NET experience
  • 2+ years of full-stack .NET web application development experience
  • Experience with container technologies like Docker and Kubernetes
  • Experience with Agile development methodologies

Nice to have

  • Proficient in managing Linux-based VMs
  • Skilled in editing configurations, running services, and analyzing logs
  • Experience with Nginx
  • Skilled in managing build and deployment pipelines

Day to day

  • Lead and mentor development teams and provide technical mentorship
  • Participate in Program Increment and Sprint planning, User Story Decomposition and Sizing, and assign Sprint Tasks
  • Translate business requirements into technical designs and develop high-quality code
  • Adhere to coding principles such as SOLID and DRY while applying Secure Coding Standards
  • Test and debug newly implemented functionality
  • Write automated unit and integration tests
  • Optimize code performance and SQL queries
  • Develop detailed production deployment plans inclusive of rollback scenarios
  • Provide post production support for software components
  • Contribute to all phases of software development
  • Drive innovation and improvement
  • Ensure high-quality software delivery