I’m looking for Scala developer roles, where I can remotely work from Japan. If your system is mainly based on Akka, written in Scala, I could be a candidate for your team. I am familiar with Akka/Scala especially about the core behavior of Akka Actor and Akka Streams. I could help in implementating Akka-based systems efficiently, avoiding common pitfalls to cause maintenance burden.
Unfortunately it's difficult for me to move outside Japan, but in terms of timezone/work hours I am fully flexible. I can work in hours your local team members are working.
For the compensation, it would be great if you pay more than 100k USD / year.
Other skills than Akka
- General Scala knowledge - Decent knowledge about Scala so that I can catch up on whatever Scala technologies you use. To be honest, I am not an expert in pure functional programming (e.g.) I don’t know things like fs2, http4s, ZIO, Cats IO, etc. Still I’m familiar with Cats and Scalaz to some extent though, like Monad Transformers.
- Web (Typescrpt, React, Firebase) - Did some personal projects (explained later). Not a React superstar myself, but I can communicate well with web developers
- AWS - Feel somewhat comfortable with EC2, VPC, IAM, CloudFormation. I think I can contribute to streamlining development pipelines, if there is appropriate assistance from infra engineers. I know GCP a bit too.
- Cassandra - I did day-to-day support for a system using Cassandra in Akka Persistence. For high-level concepts I learnt much from Datastax videos.
- Elasticsearch - again not an expert but understand high-level concepts and use cases
- Implementing stable, easy-to-maintain, and performant system using Akka-based architecture. Particular patterns of interest include Event-Sourcing, CQRS, EIP patterns
- DevOps, AWS/GCP/Azure - Streamlining development and troubleshooting procedure especially in containerized environments. CI, log management, etc.
- Performance analysis and benchmarking - learned a lot from Brendan Gregg’s resources, and TechEmpower framwork. Still on the way learning, and will continue to dive in Linux internals like threading and tools such as eBPF
- Of course, a lot more! Let me know anything technically interesting!
- Akka OSS - voluntary and occasional contributor. Made 100+ commits. Although most of the commits are about documentation, I learned internals of Akka a lot from this.
- Blog - Akka, Concurrency, etc - Some of my findings about akka and other technologies are posted.
- pinvite (sorry it's in Japanese only) - an application to share your workshop promotions using Twitter OAuth 1.0. It’s based on React written in TypeScript, backed up by Firebase, and Tweets are posted via Twitter’s OAuth 1.0a. I learned some of modern practices of web development through the project, coordinating with a professional web developer who helped on this.
Web-service company - notebook management service for corporate users, May 2018 to present (less than 1 year)
Responsible for the server side in Scala. The server side is fully based on Akka HTTP and written in Scala. It’s written in a traditional transaction-script style, and the main database is MySQL. ElasticSearch is used only for text search in the bodies of notebooks, while the source-of-truth data is still kept in MySQL.
Online payment service company, Jun 2017 to Apr 2018 (less than 1 year)
I wanted to turn into a professional Scala developer after contributing to Akka occasionally for about a year, so I moved to this company.
The company’s main system was build on Scala/Akka and I worked in a team responsible for the core processing of payments. In terms of projects, I was involved in few-month-worth refactoring effort for the core payment processing, and development of new payment features.
It was good experience for me working on an Event-Sourced system using Akka Persistence with Cassandra, and I learned how Event-Sourcing can help investigation of issues.
Large investment bank, Apr 2008 to Jun 2017 (9 years)
I was in multiple technology teams supporting internal trading and sales applications in Fixed Income and Derivatives area. The infrastructure heavily relied on a legacy in-house database technology and the in-house programming language dedicated for development on the database infrastructure. I mainly learnt about coordination with non-engineer people, troubleshooting in a time-pressured environment, workaround (and frequently compromises with …) of the legacy systems. Development projects ranged from single-developer work (most projects fell into this category) to company-wide projects typically due to regulation reforms in the financial industry after 2008, bankruptcy of Lehman Brothers.