Golang后端软件工程师招聘 - 远程/纽约布鲁克林
Golang后端软件工程师招聘 - 远程/纽约布鲁克林
Civil Media Company
你好!Civil Media Company (civil.co) 正在寻找开发人员加入我们的工程团队。我们热衷于构建一个社区所有的市场,用于推广道德、独立的新闻业。我们的 Go 后端为我们当前和未来的产品提供动力,并与以太坊上的智能合约进行交互。
申请方式:
软件工程师 - 后端
在 Civil,我们热衷于构建一个社区所有的市场,用于推广道德、独立的新闻业。我们致力于开发能够维持新闻自由、文明对话和公共问责制的产品。如果你对这些价值观充满热情,并希望构建前沿的应用程序,我们正在寻找认真负责、具有团队合作精神的软件工程师加入我们世界一流的工程团队。
作为团队的一员,你的职责将是设计、实现、测试和维护我们的 API 和后台数据系统,这些系统为 Civil 的许多产品和服务提供支持。你将与你的工程师同事以及产品、运营和设计团队紧密合作,构建面向全球用户的消费者优先产品。在公司支持下,你将学习、成长并取得成功。
Civil 深信一种基于透明度、包容性和好奇心的文化。
要求
- 约 3-6 年的团队软件工程师经验。
- 精通设计、实现、测试和调试生产级代码。
- 精通 Go。
- 精通编写单元测试并在测试驱动环境中工作。
- 精通 SCM/git 并通过代码审查和技术设计会议进行协作。
- 了解关系型/SQL 数据库,如 PostgreSQL。
- 熟练的书面和口头沟通能力。
以下是加分项,但绝对不是必需条件
- 精通 TypeScript/NodeJS。
- 了解以太坊和/或区块链技术。
- 了解 Solidity 智能合约。
- 有将生产应用程序部署到 Google Cloud(Kubernetes、PubSub 等)的经验。
- 有 DevOps 和/或 SRE 经验。
- 有在敏捷环境(Scrum/Sprints/Stories)中工作的经验。
我们是一家远程优先的公司,虽然我们的团队遍布全球,但我们的总部设在纽约布鲁克林。我们提供有竞争力的薪资、医疗/牙科/视力保险、灵活的休假政策、育儿假等。
更多关于Golang后端软件工程师招聘 - 远程/纽约布鲁克林的实战教程也可以访问 https://www.itying.com/category-94-b0.html
你好, 希望你一切顺利。
我想进一步讨论这个工作机会。 请通过我的电子邮件联系我:Vanessa@cisinlabs.com
期待你的回复。 此致, Vanessa
更多关于Golang后端软件工程师招聘 - 远程/纽约布鲁克林的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
这是一个非常典型的Go后端开发职位,对核心技能要求明确。从技术栈来看,这是一个典型的现代Go微服务架构岗位。
核心Go技术要求分析:
- 生产级Go代码能力 - 需要熟悉Go的最佳实践和并发模式
- 测试驱动开发 - 强调单元测试,这是Go社区非常重视的
- PostgreSQL数据库 - Go中常用的数据库驱动和ORM选择
示例代码 - 展示Go后端常见模式:
// 典型的API处理器示例
package main
import (
"encoding/json"
"log"
"net/http"
"github.com/jmoiron/sqlx"
_ "github.com/lib/pq"
)
type Article struct {
ID int `json:"id" db:"id"`
Title string `json:"title" db:"title"`
Body string `json:"body" db:"body"`
}
type APIHandler struct {
db *sqlx.DB
}
func (h *APIHandler) GetArticles(w http.ResponseWriter, r *http.Request) {
var articles []Article
err := h.db.Select(&articles, "SELECT id, title, body FROM articles WHERE published = true")
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(articles)
}
// 单元测试示例
func TestGetArticles(t *testing.T) {
// 模拟数据库连接
db, mock, err := sqlmock.New()
if err != nil {
t.Fatalf("failed to create mock: %v", err)
}
defer db.Close()
rows := sqlmock.NewRows([]string{"id", "title", "body"}).
AddRow(1, "Test Article", "Content here")
mock.ExpectQuery("SELECT id, title, body FROM articles WHERE published = true").
WillReturnRows(rows)
handler := &APIHandler{db: sqlx.NewDb(db, "postgres")}
req := httptest.NewRequest("GET", "/articles", nil)
w := httptest.NewRecorder()
handler.GetArticles(w, req)
if w.Code != http.StatusOK {
t.Errorf("expected status 200, got %d", w.Code)
}
}
区块链集成考虑:
由于职位提到以太坊集成,Go开发者可能需要了解以下相关库:
// 以太坊客户端交互示例
import (
"context"
"github.com/ethereum/go-ethereum/ethclient"
"github.com/ethereum/go-ethereum/common"
)
func GetBlockchainData() {
client, err := ethclient.Dial("https://mainnet.infura.io/v3/YOUR_PROJECT_ID")
if err != nil {
log.Fatal(err)
}
address := common.HexToAddress("0x...")
balance, err := client.BalanceAt(context.Background(), address, nil)
if err != nil {
log.Fatal(err)
}
}
云部署相关:
职位要求Google Cloud和Kubernetes经验,典型的Go Dockerfile示例:
# 多阶段构建是Go部署的最佳实践
FROM golang:1.21-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o main .
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /app/main .
EXPOSE 8080
CMD ["./main"]
这个职位对Go开发者的要求很全面,涵盖了从代码开发、测试到部署的完整生命周期。候选人需要展示在团队环境中编写可维护、可测试的Go代码的能力,特别是考虑到需要与区块链智能合约交互的特殊要求。

