Senior Software Engineer

Information Technology   |   Remote

Job Description

Information Technology

Responsibilities include: 

  • Collaborating with business & systems analysts and developers, in developing and initiating new software programs and applications
  • Adhere to the company Software development policy and standards
  • A keen awareness of software development and design alternatives
  • Taking an active role in cross-departmental projects when needed
  • Contribute to research on emerging application development software products, languages, and standards in support of procurement and development efforts
  • Researching, documenting, and implementing program requirements and specifications
  • Consistently writing, translating, and coding software programs and applications according to specifications
  • Running and monitoring performance tests on new and existing software for the purposes of correcting errors, isolating areas for improvement, and general debugging
  • Administering diagnostic analysis of test results and delivering solutions to critical areas
  • Sharing knowledge of application development best practices
  • Gathering statistics, preparing and writing reports on the status of the programming process for discussion with management and/or team members
  • Determining, developing, and maintaining system manuals and guidelines
  • Installing software products for end users as required
  • Liaising with software vendors for prompt rectification of any problems or emergencies
  • Liaising with network administrators, systems analysts, developers, and other software developers to resolve any defects in products or company systems
  • Recommending, scheduling, and performing software improvements and upgrades for optimal performance of company workstations
  • Conducting quality assurance and change control for all application upgrades and development in accordance with FAC policies and standards
  • Assisting with Disaster Recovery Planning and implementation to include hardware and software
  • Providing out of hours support on a rotating 24x7 basis, as required¬†

The Successful Applicant must have:

  • University degree in Computer Science or related discipline
    • Minimum 10 years of experience developing enterprise level, robust web and server systems (n-tier) using C# or Visual Basic primarily with the .NET/.NET core framework
    • Experience writing clean and maintainable code using design patterns and dependency injection
    • Experienced with REST, MVC, aspect-oriented programming, gRPC, JSON, XML, Polly, Serilog & Seq, Telerik UI, IIS, Javascript, HTML, DI Containers (Microsoft, SimpleInjector), JQuery, Windows Server operating systems
    • 5 years of demonstrable experience with medium to complex distributed systems and microservices
    • 5 years of experience developing high volume transaction processing systems
    • 5 years of experience with bus systems (NServiceBus, RabbitMQ, MSMQ)
    • 5 years of experience developing multithreaded solutions involving traditional async as well as producer/consumer, distributed locks, semaphores, TCP session control, and other thread management constructs.
    • 5 years of experience designing and developing with small to large, high-volume SQL Server databases with and without ORM tools (Llblgen, EF Core)
    • Experience with financial processing message formats including IS0-8583, BASE 24, Visa BASE I, Visa BASE II, Fiserv EDC
    • Experience with credit card/debit card payment processing including ecommerce, card present, EMV and 3DS
      • Experience developing mobile applications (Xamarin)
    • Experience with containerization and orchestration using Docker, Kubernetes, and AKS or equivalent
    • Experience developing applications to run efficiently with a Microsoft Azure environment
      • A thorough understanding and practical knowledge of secure software development techniques. Experience developing software adhering to OWASP standards for PCI-DSS Compliance¬†
      • Thorough knowledge of systems development life cycle and a thorough understanding of various development methodologies and how/when to apply them
      • Experience with Git (Github) and Team Foundation Server source control systems
      • Hands-on software troubleshooting experience demonstrating good judgment in identifying issues and recommending solutions to others
      • Experienced at working both independently and in a team-oriented, collaborative environment is essential
      • Team Foundation Server source control systems