关于服务
翻译我是一名后端开发者,我用 Scala 编写代码,函数式编程对我来说是一种思考问题的方式,而不是偶尔使用的技术。我围绕不可变数据、纯函数和类型化效果设计服务,因此行为保持可预测,编译器在错误到达生产环境之前捕获整个类别的错误。如果您已经有一个 JVM 堆栈并需要 Scala 提供的正确性和并发保证,或者您从头开始并希望建立一个可扩展而不是变得混乱的基础,我将把工作从架构转变为在实际中可靠运行的服务。
大多数时候,我构建 REST 和 gRPC API、事件系统和数据处理管道。我在 Akka actors 和 Akka Streams 上构建并发和分布式后端,建模能够在重启后存活的长期过程,并根据数据性质将一切连接到 Kafka、PostgreSQL、Cassandra 或 Spark。我考虑背压以及当依赖变慢或消失时会发生什么,因此我的系统优雅降级而不是崩溃。大数据上的批处理和流处理任务是常规:迁移、清理和聚合大量数据而不丢失记录且不耗尽内存。
让我明确一下范围:这是 Scala 和函数式方法,而不是用 Scala 语法重写的常规 Java、Kotlin 或 Go。我用 Cats、ZIO 或 Akka 编写惯用代码,通过 ScalaCheck 和基于属性的方法进行测试,并交付您的团队可以阅读和演变的代码。告诉我所需的吞吐量和约束 — 我会建议一种方法和现实的时间表。
— Scala 中的函数式后端服务 (Cats, ZIO)
— 用于并发分布式系统的 Akka actors 和 Akka Streams
— 具有类型化可测试域的 REST 和 gRPC API
— 基于 Spark 和 Kafka 的大数据和 ETL 管道
— PostgreSQL、Cassandra 和事件源存储
— 基于属性的测试和 JVM CI 设置
大多数时候,我构建 REST 和 gRPC API、事件系统和数据处理管道。我在 Akka actors 和 Akka Streams 上构建并发和分布式后端,建模能够在重启后存活的长期过程,并根据数据性质将一切连接到 Kafka、PostgreSQL、Cassandra 或 Spark。我考虑背压以及当依赖变慢或消失时会发生什么,因此我的系统优雅降级而不是崩溃。大数据上的批处理和流处理任务是常规:迁移、清理和聚合大量数据而不丢失记录且不耗尽内存。
让我明确一下范围:这是 Scala 和函数式方法,而不是用 Scala 语法重写的常规 Java、Kotlin 或 Go。我用 Cats、ZIO 或 Akka 编写惯用代码,通过 ScalaCheck 和基于属性的方法进行测试,并交付您的团队可以阅读和演变的代码。告诉我所需的吞吐量和约束 — 我会建议一种方法和现实的时间表。
— Scala 中的函数式后端服务 (Cats, ZIO)
— 用于并发分布式系统的 Akka actors 和 Akka Streams
— 具有类型化可测试域的 REST 和 gRPC API
— 基于 Spark 和 Kafka 的大数据和 ETL 管道
— PostgreSQL、Cassandra 和事件源存储
— 基于属性的测试和 JVM CI 设置