Software Engineer (Payments Engineering)
About Paidy Inc.
Paidy is Japan's pioneer and leading BNPL service with the mission to spread trust through society and to give people room to dream.
Paidy offers instant, monthly-consolidated credit to consumers by removing hassles from payment and purchase experiences. Paidy uses proprietary models and machine learning to underwrite transactions in seconds and guarantee payments to merchants. Paidy increases revenue for merchants by reducing the number of incomplete transactions, increasing conversion rates, boosting average order values, and facilitating repeat purchases from consumers.
Paidy has reached an agreement to join PayPal, the global payments company. Paidy will continue to operate its existing business, maintain its brand and support a wide variety of consumer wallets and marketplaces by providing convenient and innovative services.
Paidy continues to innovate to make shopping easier and more fun both online and offline. For more information, please visit http://www.paidy.com.
About the role:
Paidy is looking for an experienced Scala Engineer to join our Payments Engineering team.
The Payments Engineering team owns the existing payment systems and APIs that are core to Paidy’s business. Responsibilities include setting technical direction, working with other teams on identifying requirements, and delivering new functionality.
You will work on the API gateways and backend services that are used by Paidy’s users and merchants to create and manage payments. You will be involved in all stages of the development cycle. You will be able to share best practices and set standards for your team and other teams in Paidy's engineering organization. You will be able to leave your mark on the engineering culture as well.
About you: You are passionate about getting things done and into production. The code that you write is functional. You have experience with the Typelevel ecosystem (for example, cats, cats-effect). You are comfortable working with existing Scala code bases. Consistency across services and projects is important to you.
“Full remote” is available for this position. For this, we require that you’re either based in Japan, or in a location close to Japan that allows for a lot of overlapping working hours (the time zone in Japan is UTC+09:00).
Key Role and Responsabilites:
- Design, develop, and deliver new features on our RESTful API gateways and backend services
- Collaborate with distributed and multidisciplinary teams
- Assist in requirements identification and in producing specifications
- Contribute and adhere to coding standards, best practices, and procedures
Skills and Requirements:
Required to have:
- Knowledge of Functional Programming, Scala, and the Typelevel ecosystem
- Understanding of software architecture and design with the ability to align the overall service architecture
- Experience with building distributed systems, scalability and high throughput software
- Experience with maintaining and further developing existing code bases
- Comfortable with knowledge sharing, working on a team and building relationships
- Shows interest in the organization’s engineering strategy, product development strategy and how that aligns to the overall business strategy
- Ability to define task outlines and deliverables
- Demonstrates a sense of urgency when required
- Ability to manage some ambiguity and exercises good judgement when needed
- Ability to give and receive constructive feedback tactfully upstream and downstream
- Excellent communication skills, ability to interact effectively with multidisciplinary teams
Good to have:
- Experience with Akka Cluster, Cassandra, Redis, Elasticsearch, Kafka
- Experience with Event Sourcing and CQRS
- Understanding of JVM internals and performance optimization
- Experience with CircleCI, AWS, Fargate, Terraform, Datadog
- Experience working on a payment platform or other fintech field
Be a winner / 勝ちにこだわる
- Beat expectations / 常に期待値を超える
- Display surprising speed / 人をスピードで驚かす
- Embrace risk / リスクを恐れない
Own it and deliver / 結果を出す
- Commit to what, when and how to deliver/ 目的・やり方・期限にコミットする。
- Own the actions to deliver / 結果のためのアクションにこだわる
- Embrace conflict when needed to deliver results / 必要なら対立・衝突も恐れない
Play an integral role / 大切なピースになる
- Make an irreplaceable contribution to our business / 替えの効かない貢献をする
- Embrace and bridge differences in language and culture / 皆が言語と文化の架け橋になる
- Raise the bar / スタンダードを上げ続ける