Location: Remote, USA
Reports to: SVP of Software Development
By taking ownership of technical architecture, accuracy and code quality across the entire tech ecosystem, the Principal Software Architect oversees development across the DMS software suite. They are a contributing decision maker about what technologies to use, how software should be architected, and what the technical direction of certain platforms will be.
Responsibilities & Duties:
- Provide application-wide leadership on decision making about technical application architecture with the viewpoint of meeting business requirements at the lowest total application life-cycle cost for the related business value added.
- Perform detailed design and prototyping in accordance with the enterprise vision to move DMS’s application base forward
- Advise an application team or set of application teams– providing guidance on development practices and technical designs.
- Lead a team or set of teams directly focusing on architecture improvement projects for specific applications or enterprise architectural components.
- Identify areas in applications for refactoring and improvement and work in collaboration with the SVP of Software Development to establish a roadmap of enterprise and application-specific architectural improvement.
- Assist application Product Owners in prioritization of architectural work on the code base.
- Work closely with the Product team and SVP of Software Development to estimate large efforts and guide long term decisions about how to implement new features and functionality.
- Mentor and guide developers to improve their coding practices via code standards, unit testing, secure coding practices, design patterns, code reviews, pair programming and other best practice activities as necessary.
- Conduct skills development efforts when new technologies are introduced.
- Pay particular attention to:
- Application security best practice implementation in our applications
- Architecture and technology capability with agile processes and tool chains
- “lities” – quality, stability, productivity, scalability, usability and maintainability.
- Inspire and excite people internally around the technology vision and plans.
- Work with DevOps group and application teams to streamline build and release processes via architectural modifications
Technologies & Systems DMS Technology Uses
- HTTP Servers: Apache, Nginx, HAProxy
- Databases: MySQL, PostgreSQL, Redshift, DynamoDB, mongoDB
- AWS services, including but not limited to: VPC, EC2, ECR, ECS, Lambda, S3, EFS, Kinesis, Redshift, ElasticCache, RDS, CloudFront, API Gateway, CodeDeploy, CloudWatch, IAM, SNS, SQS, Load Balancers, Auto Scalers and AMI's
- Tools we use include: Terraform, Docker, Packer, Vagrant, Github, TravisCI, Looker, and Gatlin
- BS in Computer Science preferred, or has an equivalent combination of technical education and/or equal work experience
- 10+ years of experience in software development
- 4+ years leading an engineering team or as a Sr. Software Engineer
- In depth experience w/ AWS
- Ability to effectively communicate across multiple channels, on and offline
- Demonstrates good time management skills, utilizing tools as needed
- Demonstrates knowledge of different design & problem solving patterns
- Use of multiple languages and technologies (front and back end)
- Ability to use the right tool for the job
- Ability to take on legacy projects as well as architect solutions from the ground up
- In depth understanding of the entire SDLC
- Works well with IT and is involved in DevOps processes
- Certified in Scrum/Agile, or equivalent knowledge and experience