Reports to: Director of Software Development
A Senior Software Engineer has expert-level experience in coding abilities, and is able to contribute across multiple codebases. They have a proven track record of high-quality code that creates real value for the organization. As a Senior Software Engineer, you will also be responsible for active mentorship of team-members and be an active participant in the Software Development Life Cycle across DMS platforms.
Responsibilities & Duties:
- Focused on developing, integrating, maintaining and developing DMS software platforms
- Understands and contributes to the entire Software Development Lifecycle.
- Collaborates with PM’s and Business Owners to ensure that business needs are met and expectations are aligned
- Driving translation of business requirements to product requirements, and ensuring the software meets these requirements.
- Properly mitigates risks through proper testing, commenting, and documentation.
- Diligently monitors production systems through alerting systems such as cloudwatch, or pagerduty.
- Maintain best practices to ensure consistency and accuracy across the team.
- Communicate effectively with clients verbally and written, as necessary to gather requirements and troubleshoot issues.
- Participate and mentor in peer review, and be an advocate for training and helping the entire team develop.
- Responsible for daily optimization and troubleshooting of the systems as needed with identification of solutions and future mitigation.
- Responsible to actively participate and individually drive projects as defined on the Technology Roadmap to adhere with milestones and deadlines.
- Responsible for ensuring that our critical processes, sites, and platforms are innovative and site improvements are not only identified but addressed fully to continue to address the technology needs of the Organization that meet cost, quality and schedule requirements.
- Oversight of our infrastructure software and distributed systems and microservices to ensure that the framework we build is scalable and achieves the desired outcomes.
- Provides innovative solutions and out-of-the box solutions to problems that are identified that are not only feasible but meet the needs of the business utilizing different techniques and patterns.
- BS in Computer Science preferred, or has an equivalent combination of technical education and/or equal work experience
- 7 - 10 + years of experience working in a modern web development environment and producing quality interfaces
- Experience with Object Oriented Programming and Domain Driven Design
- Knowledge of Java or Golang a plus
- Has experience with Amazon Web Services (AWS) including: S3, CloudFront, SQS, API Gateway and Lambda
- Strong understanding of Linux, Apache/Nginx, SQL databases, NoSQL, Queuing, and Caching systems as they relate to application integration
- Understands JS build/task runners: Webpack, Gulp, Grunt and NPM run scripts
- Thorough understanding of Agile Software Development, GIT
- Strong understanding of Experience with MVC frameworks (Symfony2 is a plus)
- Has strong technical, analytical, debugging and problem-solving skills, along with verbal/written communication skills.
Technologies & Systems DMS Technology Uses
- HTTP Servers: Apache, Nginx, HAProxy
- AWS services: VPC, EC2, ECR, ECS, Lambda, S3, EFS, Redshift, ElasticCache, RDS Aurora MySQL, CloudFront, API Gateway, CodeDeploy, CloudWatch, IAM, SNS, SQS, Load Balancers, Auto Scalers and AMI's
- We support PHP, NodeJS, Go, Python, Bash, Ruby, Java services
- Tools we use include: Terraform, Docker, Packer, Vagrant, GIT-Hub, TravisCI, and Gatlin