Mô Tả Công Việc
About Us
At our company, we're a team that is hardworking, logical, and fast to execute. We don't care what your degree is. If you're logical (no bullshit) and love building things that work, this is the place for you.
We do not accept anything mediocre. Quality of work is everything. Even if you cannot achieve perfection at the beginning, we value the relentless effort to strive toward it.
Our product is built with Go the way it was meant to be — simple, powerful, and production-ready. We especially welcome candidates who understand that good code doesn't need to be complicated.
You Should Apply If
You loveeeeee building things — not (only) for money, but because you love creating something incredible
You learn new things every day — and get excited about diving deep into Go fundamentals
You hate over-engineered solutions to the bone — you've seen too many frameworks ruin simple problems
You know how to ask smart questions — not just "how?" but "why?" and "is this the right approach?"
You believe simple code beats complex code every single time
What You'll Be Doing
Lead a team of Go developers who share your passion for clean, working code
Build, test, and improve production systems with a focus on real-world applications that actually work
Design architectures that scale — not just in theory, but in practice with real traffic
Work with real databases — from design to optimization, including complex queries and performance tuning
Collaborate with a small, focused team — we value clear thinking, not loud talking
Deploy Go applications to production and optimize for performance, reliability, and maintainability
Mentor team members and help them grow their Go skills the right way
Contribute to our engineering culture — we iterate fast based on real user feedback
Make technical decisions that affect the entire product and team
Xem toàn bộ Mô Tả Công Việc
Yêu Cầu Công Việc
Must-Haves
Deep knowledge of Go and always updating your understanding of best practices
Production experience with Go — you've seen real systems under real load
Leadership experience — you can guide a team and make tough technical decisions
Database skills — comfortable with SQL, database design, and performance optimization
Learning mindset — this is what you do every day, naturally
Testing philosophy — you write tests that actually test business logic, not just coverage
Happy and positive attitude — because building great software should be fun
Understand life — challenges and victories are both part of the journey
Nice-to-Haves
Experience with PostgreSQL, CockroachDB, Redis, ClickHouse
Knowledge of Google Cloud Platform or similar
Understanding of microservices and distributed systems
Docker/Kubernetes experience
Performance optimization and profiling skills
Key Principles & Our "Real Go" PhilosophyWhat Makes Us Different
No Repository/Service layers unless necessary — we prefer simple functions over complex abstractions
Feature-based organization — code is organized by what it does, not by architectural layers
Context for dependency injection — we use Go's context package instead of DI frameworks
Real database testing — we test against actual databases, not mocks
HTTP 200 for business errors — clear separation between technical and business failures
Internal packages for shared code — proper encapsulation within modules
Idiomatic Go Practices We Follow
Error handling the Go way — explicit error returns, no exceptions or try-catch
Interfaces are discovered, not declared — small, focused interfaces defined by consumers
Composition over inheritance — embed structs and interfaces, avoid deep hierarchies
Zero values are useful — design types so their zero value is ready to use
Accept interfaces, return structs — flexible input, concrete output
Don't panic in libraries — return errors instead, let callers decide
Use Go modules properly — semantic versioning, minimal dependencies
Follow Go naming conventions — MixedCaps for exported, camelCase for unexported
Prefer clarity over cleverness — readable code beats "smart" code every time
Use gofmt and go vet — consistent formatting and static analysis
"Real Go" Testing Approach
Use Real Database instead of Mocks — create separate test databases for each test case
Complete Isolation — each test case has its own database, no interference between tests
Automatic Setup/Teardown — databases are created and cleaned up automatically
Real Test Data Preparation — create actual test data instead of mocking
Test Real Business Logic — test validation, business rules, and database interactions together
Don't mock HTTP requests to make tests look fancy
Don't use httptest for testing business logic
Don't test routing — test business logic directly
Write focused tests — test actual working functions, not wrappers
No Complex Mock Objects — reduce time and errors from writing mock objects
Understand that good architecture = testable code without mocks
Understanding of Example Project Required
Read and understand "This is real Go"
Deep dive into every file in the example project, understand the structure and rationale behind each package/module
Understand the separation of business logic from transport layer
Understand using context for dependency injection
Understand database migration with embedded SQL files
Anti-patterns We Reject
Java-style OOP in Go (We Don't Want This)
Repository/Service layers everywhere — Don't create interfaces just because "it's good practice"
Dependency Injection frameworks — Use context instead of wire, dig, or fx
Deep inheritance hierarchies — Go doesn't have classes for a reason
Getters/Setters for everything — Use public fields when appropriate
Factory patterns everywhere — Don't create factories of factories
Manager/Controller/Service naming — If you need a "Manager", rethink your design
Interface for every struct — Interfaces should be discovered, not declared upfront
Mocking everything — Test with real databases, not mock objects
🎯 Key Principles We Follow
Functions over methods — Use functions unless you need state
Composition over inheritance — Embed structs, don't create hierarchies
Explicit over implicit — Clear dependencies, no magic
Simple over clever — Readable code beats "smart" code
Direct over abstracted — Don't abstract until you need to
Real over mocked — Test against real systems when possible
🔍 Red Flags in Code ReviewsIf we see these patterns, we'll ask you to refactor:-Multiple layers of abstraction for simple operations-Interfaces created "just in case"-Complex dependency injection setup-Testing HTTP handlers instead of business logic-Mocking databases for unit tests-Manager/Service/Controller naming everywhere-Deep struct embedding hierarchiesTech Stack We Actually Use (No Bloat)Core:-Go (standard library focused)-PostgreSQL / CockroachDB / Redis / ClickHouse-Docker / KubernetesInfrastructure & DevOps:-Google Cloud Platform-GitHub Actions-NATS / Google Cloud Pub/Sub-Docker / Kubernetes
Xem toàn bộ Yêu Cầu Công Việc
Hình thức
Full-time
Quyền Lợi
Be Part of Something Real
Fight against over-engineered solutions and build systems that actually work
Grow fast with biannual performance reviews and real ownership of your work
Salary increases based on your growth — not years of experience or politics
Learn from World-Class People
Work with people who've built production systems at scale
Learn from mentors who understand both the theory and practice of Go
No toxic people, no politics — just passionate developers who want to build great things
Work Environment That Actually Works
Flexible working hours — we measure output, not hours
No micromanagement — we trust you to deliver results
Constructive code reviews — we help each other write better code
Fast iteration cycles — see your code in production quickly
What We Value in People
Can read documentation independently — no hand-holding needed
Ask thoughtful questions — you think before you ask
Take feedback without getting emotional — you understand code can always improve
Love learning and growing — you want to become better every day
Have fighting spirit — you don't give up when things get challenging
Deliver more than expected — you surprise us in good ways
If you accept all of the above, apply now.PS. We want someone with a fighting attitude. If you give up easily, DO NOT apply
Mức lương
Thỏa thuận
Báo cáo tin tuyển dụng: Nếu bạn thấy rằng tin tuyển dụng này không đúng hoặc có dấu hiệu lừa đảo,
hãy phản ánh với chúng tôi.
Tham khảo: 10 Dấu hiệu nhận biết hành vi lừa đảo qua tin tuyển dụng.
Tham khảo: 10 Dấu hiệu nhận biết hành vi lừa đảo qua tin tuyển dụng.