Backend Engineers at Airship maintain and improve the backend services that power our platform. They are responsible for the reliability, scalability, and maintainability of a large, distributed system. We provide low latency services that process a stream of events from apps, web, mobile wallet, email, sms, and internal services. In an average week, you will:
● Collaborate with teammates in other functional roles, including Product Managers, Web Engineers, and Program Managers
● Read, understand, and write code (primarily Java)
● Plan for, and develop, new features that will be implemented across multiple microservices
● Work with Infrastructure, QA, and other Engineers to troubleshoot issues that are escalated through Support
● Test changes, both manually and by writing and updating unit tests
● Attend meetings with the team, including sprint planning, backlog refinement, and retrospectives
● Work with a strong, cross-team group of Backend Engineers to build a consistent and maintainable platform
What to Expect
This position is geared toward a Junior to Mid-Level developer. There are opportunities for both collaborative and independent work and you will be part of a larger functional team with plenty of senior engineers ready to help if you need it.
Within the first week, you will:
● Be introduced to the cross-functional team and will learn what each role does
● Set up your development environment, be granted access to source code and internal systems
● Read a lot of documentation and watch a few videos to learn about our product and platform
● Clone code and set up one or more local instances of services
● Be assigned your first ticket and start solving problems
Within the first month, you will:
● Gain familiarity with team processes
● Write code, unit tests, and internal documentation for the new features you are working on
● Deploy your changes to our production environment
● Update assigned tickets as the status changes and communicate closely with the tech lead on your team to stay unblocked
● Participate in daily standups and other team meetings
● Participate in code review (including reviewing code written by more senior Engineers)
Within the first 3-6 months, you will:
● Join the on-call rotation and collaborate to resolve production issues (the entire team takes turns with week-long shifts)
● Continuously explore, understand, and improve unfamiliar codebases
● Make pragmatic decisions about when to refactor and when to iterate
● Deploy updates across services to bring new functionality to end users
Beyond:
● Over time, take on more responsibility for a distributed system designed to handle massive load
● Understand the infrastructure and tools available through Google Cloud Platform
● Contribute to schema design (we use a mix of SQL and NoSQL databases)
● Troubleshoot latency and scale issues by navigating internal dashboards, understanding things like database load and partitioning, and reading logs
Requirements:
● Experience writing Java and familiarity with industry best practices
● Application development experience using Java (or similar Object Oriented language)
● Strong verbal and written communication skills
● Demonstrated ability to work both independently, and in a team environment
Bonus points for:
● Experience using a Linux-based development environment (managing software, using the terminal, familiarity with basic utilities)
● Experience with the Google Cloud Platform or AWS
● Practiced Git workflows (branching, merging, resolving conflicts)
● Experience with distributed NoSQL systems or key-value stores
Airship has a fantastic career path for developing software engineers like yourself, including support to grow your career with regular 1:1s, multiple review cycles per year, a professional development fund, and mentor/mentee opportunities.
We look forward to hearing from you!