Atheneum is hiring a

Software Engineer

Shanghai, China

About the role (Job Summary)

In this role, you will:

  • Design, develop, and maintain software applications and systems.
  • Write clean, efficient, and well-documented code.
  • Collaborate with cross-functional teams to gather requirements and implement solutions.
  • Conduct code reviews and ensure code quality and adherence to best practices.
  • Participate in the full software development lifecycle, from planning and design to deployment, operation and maintenance.

Technology

Currently we use the following:

  • TypeScript, JavaScript, React Native, MySQL.
  • Amazon Web Services (AWS).

We’re looking for smart people, rather than engineers that can use this tool or that language. You’ll get the opportunity to influence the technology and methodologies we use, but the themes of our stack are:


  • Microservices.
  • Serverless.
  • Cloud computing.
  • Containerisation.
  • Distributed systems.
  • Infrastructure as Code (IaC).


Projects

We have various projects in flight, but some of the broad initiatives we have planned, and that you will be involved in include:

  • Artificial Intelligence (AI) and Machine Learning (ML) Initiatives.
  • Rebuilding the core Atheneum business application.
  • Executing Continuous Integration (CI) and Continuous Delivery (CD) transformation.
  • Cloud re-platform.

About You (Profile)

We’re looking for exceptional Software Engineers who excel in dynamic, fast-paced environments. You evangelise software engineering excellence both within your team and the wider tech community. We’re talking open-source contributions[CV1] , giving tech talks, attending meetups, giving department-wide brown bags, and leading excellence-driving initiatives within Atheneum.

As a seasoned engineer, you will be constantly evolving your craft and building a robust set of principles. You understand that when times are hard, principles should be relied upon, not abandoned.

You care about code quality

Test Driven Development isn’t just a TLA - you believe in it, you do it yourself in your personal projects, and not because it looks good on a CV - you can demonstrate why it’s important!

If you come to meet us, we’re going to ask you about things like CQS, encapsulation, SOLID, outside-in-TDD, triangulation, verification, characterisation tests, pairing, devil’s advocate, ping-pong, Gollum-style, red-green-refactor… If you’re genuinely excited right now, then so are we!

You thrive on delivery

While quality is essential, you understand that flawless code that never gets to production has zero value. You know when to be pragmatic and value shipping early and often. You have the discipline to revisit imperfect products only when it is appropriate to do so, and you’ll be working as part of a multidisciplinary team to help make that happen.

We’re an agile organisation, delivering value early and often, and you should be comfortable working this way, too. You know how to work collaboratively and iteratively to incrementally improve the features and functionality of the product with each release. There are no big bangs here!

If you’re passionate about exceptional code and thrive in an environment that values quality outcomes and continuous improvement, then we're eager to meet you!

In this role, you will (Key Responsibilities)

  • Work in an agile software engineering environment to deliver awesome features that will delight our customers.
  • Write software in an iterative environment using continuous integration and continuous delivery.
  • Work in a collaborative environment to design, prove, document, engineer, test, deploy, scale and operate software.
  • Contribute technically to ensure design feasibility; approach; usability; architecture; code quality; testability; scalability; and performance.
  • Suggest appropriate technologies, techniques and standards to help deliver our goals.
  • Participate in scrum ceremonies to help provide visibility and accountability towards delivery of projects you’re working on.
  • Pair with other team members.
  • Support and developing other software engineers by providing advice, coaching, mentoring and educational opportunities.
  • Work to help ensure homogeneous code contributions from everyone on your team.
  • Work with a geographically distributed software engineering team.
  • Assist with driving the adoption of good practices across the department.
  • Update job knowledge by studying state-of-the-art development tools, programming techniques, and technologies; participating in educational opportunities; maintaining personal networks; and participating in professional organisations.


This job is no longer available

Enter your email address below to get notified whenever we find a similar job post.

Unsubscribe at any time.