Software Engineer
Role details
Job location
Tech stack
Job description
As a Senior Software Engineer, you'll design, develop, and maintain production-ready API solutions, collaborating with cross-functional teams while utilizing cloud technologies and agile methodologies., At Mitek, we believe that teams are more resilient, effective, and innovative when they benefit from a wide range of ideas, lived experiences, and perspectives. The strength of our organization is deeply rooted in the people who power it. We know that a workforce reflecting the richness of our communities and customers helps us better serve their needs. The Senior Software Engineer will be part of a high performing team that is building Mitek's next generation cloud platform. Working closely with other software engineers, CloudOps, DevOps, and Product Managers you will deliver cutting edge cloud solutions. This includes the delivery of production ready and highly scalable API solutions based on a primarily microservice/serverless technology stack programmed in Golang and deployed to our Amazon Web Services based cloud platform.
What You Will Do (Essential Responsibilities):
- Design, develop, deploy, and maintain production-ready API solutions.
- Write and execute unit/integration/performance tests to ensure the quality of our products.
- Create and maintain internal software documentation and public API documentation.
- Collaborate with other software engineers, researchers, product managers, and cloud/operation engineers to determine requirements, implement, deploy, test, and support our products.
- Follow Agile/Scrum processes like daily stand-ups, refinements, planning, and retrospectives.
- Provide second level support in a rotating on-call schedule.
Requirements
- Analytical, creative, and innovative. You eagerly try new things and learn from your experiences.
- Logical and creative problem-solver with the ability to summarize issues and effectively.
- Excellent time manager, with the ability to efficiently shift priorities.
- Clear and concise communicator. You effectively set expectations and raise issues as needed.
- Strong team player with a positive attitude and ability to adapt to changes.
- Demonstrate ability to work with ambiguous requirements, adapt, and learn.
- Knowledgeable with broad technical experience in all design phases; occasionally mentor more junior engineers.
- Competent in programming and debugging across multiple modules and dealing with related external dependencies.
- Willing to learn and adapt to new technologies.
What You Need (Required Knowledge, Skills & Abilities):
- Bachelor's Degree in Computer Science or related field or equivalent experience.
- 5+ years of experience in software development leveraging modern development platforms.
- Experience in developing solutions that target cloud services such as Amazon Web Services (AWS) as the deployment platform.
- Experience with building Continuous Integration and Delivery (CI/CD) systems.
- Experience in the implementation of distributed systems based on serverless technology or microservices architecture and a passion around continuous delivery and quality engineering.
- Understanding of agile methodologies and practices.
- Experience developing solutions for deployment within Docker containers.
- Experience partnering with team members to speed adoption of new tools and technologies.
- Experience with building automated unit and integration tests for repeatable and reliable regression testing.
- Experience with building automated load, stress, and endurance tests for repeatable and reliable performance testing.
What Would be Nice (Preferred Skills & Experience):
- 1+ year of programming experience implementing production systems in Golang.
- Experience with AWS services and technologies such as:
- ECS, EKS, S3, Lambda, KMS, API Gateway
- Experience with cloud provisioning with infrastructure as code using CloudFormation, Terraform, and/or AWS Cloud Development Kit (CDK).
- Database development experience (e.g., MongoDB, DocumentDB, DynamoDB, RDS).
- JavaScript front-end SPA frameworks (React/Redux).
- Npm or similar package manager.
- Java, Bash scripting, Groovy, Python, and C++ programming languages.
- Experience with gRPC and Protocol Buffers.
- Experience with image processing.
- Understanding of machine learning principles and architectures.
- Experience developing systems based on user stories.
- Experience using Agile methodologies and practices.