Mô Tả Công Việc
TaxBit đang tìm kiếm một kỹ sư phần mềm có tay nghề để thiết kế, phát triển và duy trì các ứng dụng phức tạp, hiện đại nhằm mang đến cho khách hàng những chức năng thanh lịch, nhất quán và hiệu quả. Vai trò này sẽ bao gồm làm việc chặt chẽ với các nhóm liên chức năng để tạo ra các giải pháp sáng tạo phù hợp với mục tiêu kinh doanh và nhu cầu người dùng. Ứng viên lý tưởng sẽ chịu trách nhiệm xây dựng các hệ thống và dịch vụ có khả năng mở rộng, tích hợp liền mạch với các nền tảng hiện có, đảm bảo hiệu suất và độ tin cậy cao. Bạn cũng sẽ đóng góp vào chiến lược sản phẩm tổng thể bằng cách hợp tác với các nhà thiết kế và quản lý sản phẩm để xác định các phương pháp tốt nhất cho các công cụ chúng tôi phát triển, tập trung vào trải nghiệm người dùng và chất lượng kỹ thuật. Vị trí này đòi hỏi hiểu biết sâu sắc về vòng đời phát triển phần mềm và khả năng cung cấp mã chất lượng cao đáp ứng các thời hạn nghiêm ngặt.
Trách Nhiệm Chính
- Phát triển và duy trì các ứng dụng phức tạp bằng cách sử dụng các công nghệ và framework hiện đại, đảm bảo chúng đáp ứng các yêu cầu của khách hàng về chức năng, hiệu suất và khả năng mở rộng.
- Hợp tác với các nhà thiết kế và quản lý sản phẩm để chuyển đổi nhu cầu kinh doanh thành các thông số kỹ thuật, tinh chỉnh công cụ và quy trình để tối ưu hóa trải nghiệm người dùng và hiệu quả hệ thống.
- Viết mã sạch, được tài liệu hóa tốt và dễ bảo trì tuân thủ các phương pháp tốt nhất, bao gồm khả năng đọc mã, khả năng kiểm thử và tuân thủ các nguyên tắc thiết kế phần mềm.
- Tham gia vào các buổi đánh giá mã để đảm bảo chất lượng mã, xác định các vấn đề tiềm ẩn và chia sẻ kiến thức trong nhóm kỹ thuật. Điều này bao gồm đánh giá mã về hiệu suất, bảo mật và khả năng bảo trì.
- Giải quyết vấn đề từ đầu đến cuối trên nhiều hệ thống và dịch vụ, làm việc độc lập để gỡ lỗi, tối ưu hóa và cải thiện các giải pháp hiện có trong khi hợp tác với các kỹ sư khác để giải quyết các thách thức kỹ thuật.
- Cập nhật các công nghệ mới nổi và xu hướng ngành để liên tục cải thiện quy trình phát triển và cung cấp các giải pháp tiên tiến đáp ứng nhu cầu khách hàng đang phát triển.
- Đóng góp vào việc phát triển tài liệu kỹ thuật, bao gồm thông số API, hướng dẫn người dùng và sơ đồ kiến trúc hệ thống, để đảm bảo sự rõ ràng và dễ sử dụng cho các bên liên quan.
- Hỗ trợ triển khai các phương pháp phát triển agile, bao gồm các cuộc họp stand-up hàng ngày, lập kế hoạch sprint và hồi cứu, để đảm bảo giao phần mềm chất lượng cao đúng hạn.
- Tham gia vào các thực hành tích hợp và phân phối liên tục (CI/CD) để tự động hóa quy trình kiểm thử, triển khai và giám sát, đảm bảo phân phối ứng dụng đáng tin cậy và có thể mở rộng.
- Hợp tác với các nhóm QA để thiết kế và thực hiện các trường hợp kiểm thử, đảm bảo tất cả các tính năng và chức năng đáp ứng các tiêu chuẩn chất lượng và kỳ vọng của người dùng.
Yêu Cầu Công Việc
- Có kinh nghiệm được chứng minh trong việc phát triển các ứng dụng phức tạp bằng các ngôn ngữ lập trình như Python, JavaScript hoặc Java, với nền tảng vững chắc về lập trình hướng đối tượng và các nguyên tắc thiết kế phần mềm.
- Hiểu biết sâu sắc về các framework phát triển web hiện đại như React, Node.js hoặc Django, và khả năng triển khai các giải pháp có thể mở rộng, bảo mật và dễ bảo trì.
- Hiểu biết vững chắc về các công nghệ cơ sở dữ liệu như PostgreSQL, MongoDB hoặc MySQL, bao gồm tối ưu hóa truy vấn, mô hình hóa dữ liệu và tích hợp với logic ứng dụng.
- Kinh nghiệm với các nền tảng đám mây như AWS, Azure hoặc Google Cloud, bao gồm triển khai, cấu hình và quản lý cơ sở hạ tầng và dịch vụ có thể mở rộng.
- Kỹ năng giải quyết vấn đề xuất sắc và khả năng gỡ lỗi, khắc phục sự cố và tối ưu hóa các hệ thống phức tạp, tập trung vào hiệu suất, độ tin cậy và bảo mật.
- Thành thạo các hệ thống kiểm soát phiên bản như Git, bao gồm chiến lược phân nhánh, hợp tác mã và duy trì lịch sử commit sạch sẽ.
- Khả năng làm việc độc lập và hợp tác trong môi trường nhanh chóng, với tinh thần trách nhiệm cao và trách nhiệm giải trình đối với các sản phẩm giao.
- Kỹ năng giao tiếp xuất sắc, cả bằng văn bản và lời nói, để hợp tác hiệu quả với các nhóm liên chức năng, trình bày các giải pháp kỹ thuật và tài liệu hóa quy trình để đảm bảo sự rõ ràng.
- Chú ý cao đến chi tiết và khả năng viết mã sạch, có cấu trúc tốt và dễ bảo trì tuân thủ các tiêu chuẩn mã hóa và phương pháp tốt nhất.
- Kinh nghiệm với các đường ống tích hợp và phân phối liên tục (CI/CD), bao gồm các công cụ như Jenkins, Travis CI hoặc GitHub Actions, để tự động hóa quy trình kiểm thử, triển khai và giám sát.
- Hiểu biết về các phương pháp kiểm thử phần mềm, bao gồm kiểm thử đơn vị, kiểm thử tích hợp và kiểm thử end-to-end, để đảm bảo chất lượng cao và phân phối phần mềm đáng tin cậy.
- Khả năng phân tích và diễn giải các yêu cầu kỹ thuật, chuyển đổi chúng thành thông số kỹ thuật chức năng và triển khai chúng hiệu quả trong mã.
- Kinh nghiệm với các thực hành DevOps và khả năng làm việc với các công cụ infrastructure as code như Terraform hoặc Ansible để quản lý và triển khai các hệ thống có thể mở rộng.
- Hiểu biết vững chắc về kiến trúc hệ thống và khả năng thiết kế và triển khai các giải pháp có thể mở rộng, bảo mật và dễ bảo trì tích hợp với các nền tảng hiện có.
- Kỹ năng quản lý thời gian xuất sắc và khả năng ưu tiên các nhiệm vụ hiệu quả để đáp ứng thời hạn và sản phẩm giao của dự án.
- Thành thạo trong việc sử dụng các phương pháp agile và khả năng thích ứng với các yêu cầu thay đổi và ưu tiên dự án trong môi trường năng động.
- Hiểu biết về phát triển và tích hợp API, bao gồm RESTful và GraphQL APIs, để đảm bảo giao tiếp liền mạch giữa các hệ thống và dịch vụ.
- Khả năng làm việc với các nhóm liên chức năng, bao gồm nhà thiết kế, quản lý sản phẩm và kỹ sư QA, để cung cấp các giải pháp gắn kết và tập trung vào người dùng.
- Hiểu biết vững chắc về vòng đời phát triển phần mềm và khả năng quản lý và theo dõi tiến độ thông qua các công cụ như Jira hoặc Trello.
- Kinh nghiệm với các công nghệ container hóa như Docker và các công cụ điều phối như Kubernetes để triển khai và quản lý các ứng dụng có thể mở rộng trong môi trường sản xuất.