Senior Backend Developer .NET

  • Full-time

Company Description

石基集团成立于1998年,作为面向整个消费市场的软件提供商,为酒店、餐饮、零售和娱乐行业提供软件解决方案及技术服务,业务范围涵盖酒店管理解决方案、餐饮及零售系统、支付网关、数据管理、在线分销等不同行业与业务场景。 

通过成体系的技术解决方案,为酒店、零售、餐饮及娱乐等不同类型的企业提升运作效率,更好地与宾客建立联系。 

如今,石基集团在全球拥有80多家子公司及品牌,员工总数达5000人,服务超过91,000家酒店、200,000家餐厅及600,000个零售网点。 

Shiji Group provides software solutions and services for the hospitality, food service, retail and entertainment industries, ranging from hotel management solutions to food and beverage system and retail systems, payment gateways, data management, online distribution and more.
Founded in 1998 as a network solutions provider for hotels, and later transitioned to a software provider for the entire consumer market, Shiji Group today comprises 5,000 employees in 80+ subsidiaries and brands, serving over 91,000 hotels, 200,000 restaurants and 600,000 retail outlets.
Shiji is committed to connecting the global business of hospitality. We provide an integrated suite of technological solutions that empower hotel, retail, food, and entertainment companies to better connect with their guests.

Job Description

我们的酒店管理解决方案由多个面向领域的微服务(domain-oriented microservices)组成,并由数个跨职能团队共同开发。您将参与开发面向酒店行业的分布式系统的一部分。该系统由多个面向领域的微服务组成,由若干跨职能团队共同开发。通过您的工作,您将为全球数以千计酒店员工的工作体验带来改善。 

随着业务的发展,需招募高级Backend开发工程师若干名,详情如下: 

主要职责范围 

1. 系统功能的开发、实施与维护 

  • 运用领域驱动设计(Domain-Driven Design)的原则,在现有的微服务(microservice)生态系统中设计可扩展的解决方案。 
  • 实现复杂的酒店管理业务逻辑,包括预订、费用结算和报表功能。 
  • 在系统架构不断进化的过程中,确保其兼容性。 
  • 设计容错组件,以应对高吞吐量的数据处理任务。 
  • 与产品团队协作,将业务需求进行技术转化。 

 

2. 为第三方构建专用的数据导出解决方案 

  • 为与酒店管理系统对接的第三方系统设计并实现稳健的 API 集成。 
  • 为酒店管理系统(PMS)、渠道管理系统(Channel Management)及收益管理工具创建数据导出机制。 
  • 为B2B集成实施安全的身份验证和授权机制。 
  • 开发支持多种格式(XML, JSON, CSV)的基于文件的导出解决方案。 
  • 确保外部数据交换的一致性和可靠性。 
  • 管理API版本控制,并维护现有集成兼容性。 

 

3. 为分析和报表目的构建可扩展的数据聚合策略 

  • 设计高效的数据聚合管道,用于酒店经营分析和商业智能(BI)。 
  • 对于酒店大数据场景设计实时和批处理解决方案。 
  • 创建针对入住率、收入和运营指标报表的优化数据模型。 
  • 开发处理复杂酒店数据转换的ETL(抽取、转换、加载)流程。 
  • 确保来自多个数据源的数据质量和一致性。 
  • 与数据分析师协作,理解报表需求并优化查询性能。 

 

4. 每日进行代码审查并参与评审流程 

  • 专注于代码质量、安全性和性能进行彻底的代码审查。 
  • 确保代码符合编码标准、SOLID原则及既定的架构模式。 
  • 就实现方法提供富有建设性的反馈并提出改进建议。 
  • 审查数据库查询,寻找优化机会并发现潜在的性能问题。 
  • 验证错误处理、日志记录和监控功能的正确实施。 
  • 提交带有清晰描述和上下文的、文档齐全的拉取/合并请求(Pull/Merge Requests)。 
  • 及时响应审查反馈并落实改进建议。 
  • 参与关于实现方法和设计决策的技术讨论。 
  • 遵循既定的分支策略和合并流程。 
  • 确保所有代码变更都包含适当的单元测试和集成测试。 
  • 保持较高的代码覆盖率和质量。 

 

5. 使用高级工具优化API和报表中SQL查询的性能 

  • 分析并优化处理大型酒店数据集的复杂PostgreSQL查询。 
  • 为时序酒店数据设计高效的数据库索引和分区策略。 
  • 实施查询优化技术,包括适当的连接(Join)策略和子查询优化。 
  • 使用数据库性能分析工具识别并解决性能瓶颈。 
  • 监控查询执行计划,并在适当情况下实施缓存策略。 
  • 优化Entity Framework查询并实施高效的数据访问模式。 

 

6. 在敏捷开发的框架下进行协作式、迭代式的软件开发 

  • 积极参与例会、迭代规划和评审会议等。 
  • 与质量保证(QA)、产品构架以及产品团队等跨职能团队进行有效协作。 
  • 通过提供准确的工作量预估和技术洞察,参与迭代规划。 
  • 在保持代码质量和交付时间线的前提下,适应不断变化的需求。 
  • 通过自动化测试和监控实践持续集成与持续部署(CI/CD)。 
  • 参与生产环境问题的事件响应和事后分析(Post-mortem analysis)。 

 

技术需求 

  • C# 9, .NET Core:使用最新的C#特性和现代.NET生态系统。 
  • PostgreSQL:高级SQL特性、JSON支持、分区及性能调优。 
  • 微服务:面向服务的架构、服务间通信及分布式系统模式。 
  • Swagger:API文档生成、测试及客户端代码生成。 
  • Docker:容器化、编排及部署策略。 
  • Redis:缓存、会话管理及分布式数据结构。 
  • Kafka:事件流处理、消息队列及服务间的异步通信。 
  • Elastic Search(加分项):全文搜索、日志聚合及分析。 
  • Visual Studio 2022 / Resharper / Rider:配备高级调试和重构工具的专业开发环境。 

 

Your job will be to develop a part of a distributed system that serves the hospitality industry. The system consists of many domain-oriented microservices developed under a few cross-functional teams. You can bring a smile to the faces of thousands of people working in hotels across the globe.

Key Areas of Responsibilities

Designing, implementing, and maintaining new functionalities within a living system

  • Design scalable solutions within existing microservices ecosystem using Domain-Driven Design principles
  • Implement complex business logic for hotel management operations including reservations, billing, and reporting
  • Ensure backward compatibility while evolving system architecture
  • Design fault-tolerant components that handle high-volume hospitality data processing
  • Collaborate with product teams to translate business requirements into technical specifications

Building dedicated export solutions for 3rd parties

  • Design and implement robust APIs integration for external hotel management systems
  • Create data export mechanisms for property management systems, channel managers, and revenue management tools
  • Implement secure authentication and authorization for B2B integrations
  • Develop file-based export solutions supporting various formats (XML, JSON, CSV)
  • Ensure data consistency and reliability in external data exchanges
  • Manage API versioning and maintain backward compatibility for existing integrations

Building scalable aggregated data strategy for analytical and reporting purposes

  • Design efficient data aggregation pipelines for hotel performance analytics and business intelligence
  • Implement real-time and batch processing solutions for large-scale hospitality data
  • Create optimized data models for reporting on occupancy, revenue, and operational metrics
  • Develop ETL processes that handle complex hotel data transformations
  • Ensure data quality and consistency across multiple data sources
  • Collaborate with data analysts to understand reporting requirements and optimize query performance

Performing code reviews daily and participating in code review process

  • Conduct thorough code reviews focusing on code quality, security, and performance
  • Ensure adherence to coding standards, SOLID principles, and established architectural patterns
  • Provide constructive feedback on implementation approaches and suggest improvements
  • Review database queries for optimization opportunities and potential performance issues
  • Validate proper error handling, logging, and monitoring implementation
  • Submit well-documented pull/merge requests with clear descriptions and context
  • Respond promptly to review feedback and implement suggested improvements
  • Engage in technical discussions about implementation approaches and design decisions
  • Follow established branching strategies and merge procedures
  • Ensure all code changes include appropriate unit and integration tests
  • Maintain high code coverage and quality metrics

Using advanced tools to optimize performance of SQL queries used in APIs and reports

  • Analyze and optimize complex PostgreSQL queries handling large hospitality datasets
  • Design efficient database indexes and partitioning strategies for time-series hotel data
  • Implement query optimization techniques including proper join strategies and subquery optimization
  • Use database profiling tools to identify and resolve performance bottlenecks
  • Monitor query execution plans and implement caching strategies where appropriate
  • Optimize Entity Framework queries and implement efficient data access patterns

Working in a collaborative and iterative software development process with an Agile team

  • Actively participate in Scrum ceremonies including daily standups, sprint planning, and retrospectives
  • Collaborate effectively with cross-functional teams including QA, Infrastructure, and Product Team people
  • Contribute to sprint planning by providing accurate effort estimates and technical insights
  • Adapt to changing requirements while maintaining code quality and delivery timelines
  • Practice continuous integration and deployment with automated testing and monitoring
  • Participate in incident response and post-mortem analysis for production issues

Technologies used:

  • C# 9, .NET Core - Latest C# features and modern .NET ecosystem
  • PostgreSQL - Advanced SQL features, JSON support, partitioning, and performance tuning
  • Microservices - Service-oriented architecture, inter-service communication, and distributed system patterns
  • Swagger - API documentation, testing, and client code generation
  • Docker - Containerization, orchestration, and deployment strategies
  • Redis - Caching, session management, and distributed data structures
  • Kafka - Event streaming, message queuing, and asynchronous communication between services
  • Elastic Search (nice to have) - Full-text search, log aggregation, and analytics
  • Visual Studio 2022 / Resharper / Rider - Professional development environment with advanced debugging and refactoring tools

Qualifications

任职要求 

  • 英语能力:要求具备流利的英语口语和书面沟通能力,能够向技术和非技术利益相关者传达复杂的技术概念;具备撰写清晰的技术文档和API规范的经验;能有效地在国际化的分布式团队中协作。 
  • 编程范式:精通面向对象(OOP)和函数式编程(FP)范式,对OOP原则有深刻理解,具备C#函数式编程概念的经验,并掌握设计模式。 
  • .NET技术:具备.NET 8/9和Entity Framework的扎实经验,精通最新.NET特性;高级Entity Framework Core知识(包括迁移、查询优化和性能调优);具备依赖注入、中间件和ASP.NET Core管道的经验。 
  • PostgreSQL:具备丰富的PostgreSQL实战经验,拥有高级SQL技能(包括复杂连接、窗口函数和CTE);掌握数据库设计和规范化原则;具备PostgreSQL特定功能(如JSON/JSONB、数组和自定义数据类型)的经验;拥有数据库性能调优和查询优化的知识。 
  • 数据库性能:具备编写代码及配套测试的能力,熟悉测试驱动开发(TDD)和行为驱动开发(BDD)实践;掌握单元测试、集成测试和端到端测试策略;了解代码覆盖率分析和质量指标;遵循整洁代码原则和SOLID设计模式。 
  • 软性素质:思维开放、积极主动,乐于学习新技术并适应变化的需求;能主动发现问题并在其影响团队前解决;乐于协作解决问题并分享知识;具备自我激励的职业发展态度,定期参与技术社区并紧跟行业趋势;能主动提出并实施流程改进方案。 
  • 工作经验:至少3年同类职位经验,且在IT行业拥有至少5年经验;在高级后端开发岗位上有可证实的业绩;具备领导技术项目并指导其他开发人员的经验;具备处理复杂分布式系统的能力。 

加分技能(Nice To Have) 

  • Linux与Docker基础:熟练使用Linux命令行及系统管理基础;具备Docker容器化、Docker Compose及容器编排的经验。 
  • 领域驱动设计(DDD):了解DDD概念,包括限界上下文(Bounded Contexts)、聚合(Aggregates)和领域事件(Domain Events)。 
  • CQRS与事件溯源模式:具备命令查询职责分离(CQRS)和事件溯源(Event Sourcing)架构及事件存储管理的经验。 
  • 分布式系统与Web服务:具备微服务通信模式(同步和异步)的经验;了解分布式事务管理和最终一致性。 
  • AWS技术:具备AWS RDS PostgreSQL及其他AWS数据库相关技术的经验者优先,包括AWS RDS配置、监控与优化;AWS数据库迁移服务及备份策略;AWS CloudWatch监控及性能洞察。 
  • 酒店系统经验:具备酒店系统经验并对酒店应用熟悉者将被视为极大的优势,包括了解酒店运营(预订、入住/退房、计费流程);熟悉酒店行业标准及集成(PMS, CRS, GDS);了解酒店收益管理和报表要求;熟悉酒店特定的数据模型和业务规则。 

Strong verbal and written communication skills in English are required

  • Ability to communicate complex technical concepts to both technical and non-technical stakeholders
  • Experience with writing clear technical documentation and API specifications
  • Effective collaboration in international, distributed teams

Fluent in Object-Oriented and Functional Programming paradigms

  • Deep understanding of OOP principles
  • Experience with functional programming concepts in C#
  • Knowledge of design patterns

Knowledge of .NET 8/9 and Entity Framework

  • Proficiency in latest .NET features
  • Advanced Entity Framework Core knowledge including migrations, query optimization, and performance tuning
  • Experience with dependency injection, middleware, and ASP.NET Core pipeline

Strong experience with PostgreSQL

  • Advanced SQL skills including complex joins, window functions, and CTEs
  • Database design and normalization principles
  • Experience with PostgreSQL-specific features like JSON/JSONB, arrays, and custom data types
  • Knowledge of database performance tuning and query optimization

Good understanding of and hands-on experience with database performance aspects

  • Index design and optimization strategies
  • Query execution plan analysis and optimization
  • Database monitoring and performance metrics analysis
  • Experience with connection pooling and transaction management

Capability of writing clean code along with tests

  • Test-driven development (TDD) and behavior-driven development (BDD) practices
  • Unit testing, integration testing, and end-to-end testing strategies
  • Code coverage analysis and quality metrics
  • Clean code principles and SOLID design patterns

Open-minded, proactive person

  • Willingness to learn new technologies and adapt to changing requirements
  • Initiative in identifying and solving problems before they impact the team
  • Collaborative approach to problem-solving and knowledge sharing

Proactive attitude and continuous improvement

  • Self-motivated approach to professional development
  • Regular participation in technical communities and staying updated with industry trends
  • Initiative in proposing and implementing process improvements

Minimum 3 years of experience with similar position and minimum 5 years of experience with IT industry

  • Proven track record in senior backend development roles
  • Experience with leading technical initiatives and mentoring other developers
  • Demonstrated ability to work with complex distributed systems

Nice To Have Skills

Basics of Linux and Docker

  • Linux command line proficiency and system administration basics
  • Docker containerization, Docker Compose, and container orchestration

Domain-Driven Design

  • DDD concepts including bounded contexts, aggregates, and domain events

Experience with CQRS and Event Sourcing patterns

  • Command Query Responsibility Segregation (CQRS) implementation
  • Event Sourcing architecture and event store management
  • Experience with event-driven architecture patterns

Experience with distributed systems and web services

  • Microservices communication patterns (synchronous and asynchronous)
  • Distributed transaction management and eventual consistency

Experience with AWS RDS PostgreSQL and other AWS database-related technologies is a plus

  • AWS RDS configuration, monitoring, and optimization
  • AWS database migration services and backup strategies
  • AWS CloudWatch monitoring and Performance Insights

Experience with hospitality systems and familiarity with hospitality applications is a strong plus

  • Understanding of hotel operations, including reservations, check-in/check-out, and billing processes
  • Knowledge of hospitality industry standards and integrations (PMS, CRS, GDS)
  • Experience with hotel revenue management and reporting requirements
  • Familiarity with hospitality-specific data models and business rules