Software Engineer - Full Stack Developer
GENERAL SCOPE & SUMMARY
The Senior Engineer is a key designer and developer of application layer components in a large, scalable, multi-tiered workforce management application. In this position, you will leverage technology to develop and validate components at a senior level, manage defect resolutions, and coordinate code development with other engineers. While working in a nibble Agile scrum environment, you will be a primary developer for product component(s), responsible for design, documentation, implementation, unit testing, and defect fixing of new and existing products. You will also be responsible for handling critical customer problems in real-time, and developing code fixes or enhancements to be included in future code releases. The job requires close interaction with the Development, QA, Support, and Professional Services teams.
PRIMARY ROLE & RESPONSIBILITIES
Designs and develops components in the application tier of a large multi-tiered, distributed system. But may participate in development in any of a range of product areas such as thin client, rich client, server, installation, communication layers, deployment, and so forth
Analyzes, designs, programs, debugs, and does ongoing modification of software components
Interact with internal cross-functional members to better understand system requirements and/or necessary modifications
Develops and/or executes implementation according to project plans and priorities
Reviews and provides suggestion on roadmap direction
Develop solutions/implementations to consistently improve product stability, scalability, and performance
Work with support engineers, professional services and sales engineers to investigate and handle customer and field escalated cases
Create and document best practices guidelines and knowledge base articles
Provides estimated timelines for issues reported from the field
Proactively identify non-compliance of code against requirements/standards/design and raise defects
Able to switch between multiple tasks based on dynamic changing priorities QUALIFICATIONS
SPECIFIC TECHNICAL REQUIREMENTS
Bachelor's degree preferred with 3+ years' experience on the Windows platform, or equivalent combination of education and experience
Strong understanding of fundamental design principles behind a scalable application
Strong understanding and experience with C#; knowledge of, or experience with, C++ is a plus
Strong understanding of the latest .NET Framework and .Net Core
Strong understanding of MVC design patterns and object-oriented programming
Experience with User Interface development (either Desktop or Web Applications)
Experience with PowerShell scripting
Experience using cloud services like AWS
Experience with code versioning tools
Experience with Microsoft Visual Studio as the IDE
Experience writing simple to complex queries for Microsoft SQL Server or Oracle RDBMS
Experience working in an Agile scrum development environment
Have a systematic problem-solving approach coupled with strong communication skills, documentation skills, and a sense of ownership and drive. HELPFUL SKILLS
Experience with Delphi
Knowledge of, or experience with, deployment technologies, such as Chef, Ansible, or Terraform
Knowledge of, or experience with, containerization and orchestration technologies, such as Docker & Kubernetes
Experience with web development (JavaScript, HTML, JQuery, Knockout, MVC, Angular)
Familiarity with contact center concepts or workforce management concepts