Senior Backend Software Engineer
Charter Space
What we’re looking for
Charter is seeking a senior backend engineer who brings years of experience and is able to help our team learn, grow, and win. You’ll help with establishing culture, making sense of the chaos inherent to startups, and helping organise the engineering team to navigate it as effectively as possible. You will be responsible for building, operating and maintaining our critical infrastructure, and you will contribute to key architecture and technology decisions around how to best solve difficult problems with elegant and practical code.
Who you are
Infinitely curious, with a penchant for systematic and methodical thinking. If you think about solving problems in terms of progressive steps and pipelines that look like A → B → C → ... → Z, we want you.
You should also:
- Thrive in a fast-paced environment which revolves around cross-disciplinary interaction and remote collaboration;
- Have a passion for space and the capacity to learn fast, and be excited about contributing your talents to and making an impact in a rapidly expanding market;
- Have a strong bias to action;
- (Preferably) have some prior experience in the space industry;
- Align with our values; and
- Fundamentally believe that great change for the better is possible, if only we have the right cause, team, and timing.
A day in the life as a Senior Backend Engineer:
- Collaborating with the engineering team via pair programming sessions and discussions on slack / google meet / zoom to ship features and overcome engineering challenges.
- Helping the team make decisions related to system architecture and execution strategy.
- Reviewing Merge Requests, providing helpful feedback during code reviews and teaching your peers.
- Responding to issues / bug reports.
- Collaborating with product and design teams and assist in the product vision into reality by providing support where necessary to understand the problems we face and how best to solve them.
- Assisting with the design thinking process by scoping / refining user stories and translating them into technical requirements.
- Assisting the team with technical program management duties such as roadmap projections, documentation, and mentoring where possible.
- Working with the CTO / CEO in your one-on-one meetings to help grow your team and your own career.
Responsibilities
- Collaboratively define, scope, prioritise, and estimate work.
- Work with frontend, product and design folks to ship smooth and bug free features
- Be organised and self sufficient, pick new work autonomously, working to unblock yourself when stuck either by reaching out for help or finding other solutions.
- Provide assistance, feedback and mentoring to junior members where needed.
- Drive helpful conversations around technical issues and engineering practices, suggesting improvements and ideas as you see them.
- Review code and provide thoughtful, constructive feedback during code reviews.
- Own your work, and represent it during company-wide checkins
- Deliver complex code / features that are scalable, easy to maintain, and adheres to design principles and best practices.
- Document your knowledge where necessary.
- Balance speed and quality, with a focus on tangible results.
Qualifications
We care more about hiring people that have a track record of caring deeply about their work than checking all of the qualifications off. So whether you meet all the qualifications or a partial set, we want to hear from you.
Minimum Qualifications
- Excellent communication skills.
- Good experience with Postgres
- 5 years of experience as a full-time professional software engineer.
- Experience working in Linux / Unix environments.
- Working experience with Git.
- Experience with Test Driven Development.
- Experience working in agile teams.
- Experience working asynchronously in a remote, distributed team.
- Some knowledge of backend testing, profiling and debugging practices.
- Strong problem solving skills.
Preferred Qualifications
- Experience working with statically typed languages (e.g. GoLang, Java, Rust, C++) and their relevant web app frameworks.
- Experience developing, operating and maintaining backend systems in production environments.
- Experience working with AWS services such as: Hosting (EC2, ECS, Amplify), Identity (Cognito), API (Lambda, CloudFormation), Storage (S3, DynamoDB), Messaging (SQS / SES).
- Experience in development and maintenance of distributed systems that are resilient, scalable and observable.
- Experience developing and maintaining external facing API libraries.
- Experience (personal / professional) with websockets and other networking concepts
- Experience (personal / professional) with CI/CD tools such as: Jenkins / Gitlab CI Ansible
- Knowledge of logging principles and monitoring tools such as Splunk.
- Exposure to pair programming.
- Exposure to frontend fundamentals such as ReactJs. Typescript.
- Ability to think critically about system design and software engineering concepts, and apply them with pragmatism based on project needs.
Compatible Time Zones
Our current team members are distributed across different time zones including:
- GMT-8 (Los Angeles)
- GMT-5 (NYC)
- GMT+0 (London)
- GMT+1 (Sweden)
- GMT+8 (Singapore)
Although we've found that it's easier to collaborate when everyone's in a similar time zone, if you're willing to stay up late or get up early, so are we.