Senior Software Engineer
Job description
About the role
Abnormal is seeking a Senior Software Engineer to join their growing team in San Francisco. This role centers on building and maintaining software systems that directly support the company's core mission and product offerings. The engineer will work closely with cross-functional teams including product, design, and operations to deliver high-quality, reliable solutions. Candidates should be excited about contributing to a collaborative engineering environment where continuous learning and improvement are valued.
Key facts
What you'll do
Design and implement scalable software components that meet both business needs and technical standards.
Collaborate with product managers and designers to translate requirements into clear and actionable technical specifications.
Review code written by peers to ensure consistency, correctness, and adherence to established best practices.
Participate in architectural discussions to help shape the long-term direction of the platform and its core services.
Write and maintain comprehensive documentation that clearly explains system behavior, operational procedures, and deployment processes.
Troubleshoot and resolve production issues by applying root cause analysis to prevent recurrence and improve stability.
Contribute to the continuous improvement of development workflows, internal tooling, and automated testing infrastructure.
Mentor junior engineers through code reviews, pair programming sessions, and informal knowledge-sharing opportunities.
Own features end to end, from initial design and implementation through deployment and ongoing monitoring.
Communicate progress, technical trade-offs, and architectural decisions to both engineering and non-technical stakeholders clearly.
Participate in on-call rotations to ensure system reliability and contribute to rapid incident response efforts.
Drive the adoption of new technologies and approaches that improve developer productivity and system performance.
Work alongside data engineers to ensure APIs and data pipelines are well-integrated and performant.
Participate in sprint planning and backlog refinement to help prioritize the engineering roadmap.
Requirements
Demonstrated experience building production-grade software applications in a professional engineering setting over multiple years.
Strong understanding of data structures, algorithms, and fundamental computer science principles applied to real problems.
Ability to work effectively in a team-oriented environment while contributing diverse perspectives and ideas.
Proficiency in at least one modern programming language and familiarity with associated development frameworks.
Experience designing and deploying services that handle real-world scale, traffic, and operational complexity.
Comfortable navigating ambiguity and making informed technical decisions with incomplete or evolving requirements.
Excellent written and verbal communication skills for effective collaboration across engineering and product disciplines.
A degree in computer science or a related technical field, or equivalent practical experience.
Track record of taking ownership of projects and seeing them through from concept to production.
Willingness to engage in code reviews and provide constructive feedback to peers on a regular basis.
Nice to have
Familiarity with cloud infrastructure platforms such as AWS or GCP and containerized deployment workflows.
Background in security-conscious development practices including threat modeling and secure coding techniques.
Knowledge of observability tools, distributed tracing, and monitoring systems for complex distributed architectures.
Prior experience with feature flag systems, A/B testing frameworks, and gradual rollout strategies.
Interest in financial technology, fraud detection, or risk management domains is a strong plus.
Skills & tools
Proficiency in modern programming languages such as Python, Java, Go, or TypeScript for backend development.
Experience with relational databases like PostgreSQL and non-relational stores for persistent data management.
Familiarity with RESTful API design principles and message queue systems for reliable service communication.
Working knowledge of version control systems, continuous integration pipelines, and automated deployment processes.
Understanding of containerization technologies like Docker and orchestration platforms for scalable service deployments.
Comfort with Linux-based operating systems, shell scripting, and command line tooling for daily workflows.
Familiarity with caching layers, load balancing, and other techniques for improving application performance.
Practical notes
This is a hybrid position requiring regular on-site presence at the San Francisco office.
The hiring process includes technical coding interviews, system design discussions, and cultural alignment conversations.
Abnormal values diversity and encourages applicants from all backgrounds, identities, and experiences to apply.
The engineering team operates with a focus on code quality, testing, and continuous improvement.
Compensation is competitive and includes benefits tailored to the needs of each team member.