SALARY: $150k - $170k USD
LOCATION: Remote only, US based
Mailshake is seeking a highly-technical Software Architect to oversee the implementation, design, and architecture of our simple yet powerful sales engagement software for sales professionals. You’ll be the technical steward of our platform, charged with ensuring our applications, services, APIs, and backend systems are designed for maintainability, scalability, reliability, and growth.
ABOUT MAILSHAKE
Mailshake is a profitable, bootstrapped, and fast-growing startup looking to expand our product offering with the feedback of thousands of happy customers. We believe in putting our customers first, tackling tough problems head on, and simply trusting our employees to get stuff done. We offer flexible schedules, paid maternity/paternity leave, and other perks that come with being a remote company.
ABOUT THE POSITION
The Software Architect is responsible for the technical oversight of Mailshake’s applications and services. This is a remote-only position and thus requires the ability to effectively communicate technical details to people who don’t sit right next to you and are in different timezones. This role also requires in-depth knowledge of the following technologies: Node, Angular, Typescript, and MySQL, along with various AWS technologies such as Aurora RDS, ElastiCache/Redis, ECS and Fargate, SQS, Lambda, EC2, CloudFront, and CloudWatch.
The ideal Software Architect possesses a unique blend of big picture design thinking and low-level implementation details, with the ability to balance everything in between. This person should have a constant eye on the horizon for what’s coming, but also not lose focus on the day-to-day things that need to get done. This role requires demonstrable knowledge of how to design applications and services for cloud-specific infrastructure, including serverless and container technologies. The Software Architect is expected to write code in some form almost daily; non-coding architects need not apply.
CORE ACCOUNTABILITIES
1. Application architecture and design
Use large-scale systems thinking to oversee the design of a high-performing and scalable technical platform to support short-term business operations and long-term company growth.
2. Coding conventions and patterns
Primary person responsible for identifying and implementing design patterns where appropriate and ensures other team members adhere to agreed upon standards, conventions, and practices with thoughtful and empathetic feedback on code reviews.
3. Cloud infrastructure
Oversee the settings, configuration, monitoring, and capacity planning of our AWS cloud infrastructure for scalability, performance, reliability, and system growth. This includes our VPC and subnets, Aurora RDS databases, SQS queues, ECS and Fargate containers, Lambda functions, ElastiCache/Redis caches, EC2 instances, CloudFront CDN, and CloudWatch logs.
KEY RESPONSIBILITIES
- Identify areas of technical debt for refactoring to improve overall system and codebase.
- Provide up-level support for internal, customer-facing teams.
- Work with other members of the Engineering team to provide estimates for feature work.
- Implement application features on an as-needed basis.
- Work closely with key stakeholders to understand business priorities and schedules.
- Perform R&D activities to recommend technology enhancements and alternatives.
- Build POCs to demonstrate concepts for current and future consideration.
- Provide input to the product roadmap based on technical feasibility and system growth.
- Monitor production applications, services, and databases for possible issues.
- Enhance backend databases with schema changes and ETL processes.
- Analyze database queries and index usage to identify performance enhancements.
- Review pull requests to ensure code adheres to our defined standards and conventions.
- Deploy code to production using our CI/CD pipeline.
- Participate in UI/UX design reviews to give feedback to Product Designers.
REQUIREMENTS
- 10+ combined years experience in a Principal Engineer and/or Software Architect role.
- Proven experience building high-performing, scalable systems involving large data sets.
- Excellent verbal and written communication skills.
- Experience working at a SaaS company.
- Experience managing a cloud infrastructure.
- Experience with capacity planning (and associated costs) of a cloud infrastructure.
- Experience mentoring other software engineers.
- In-depth and working knowledge of the aforementioned technologies.