MCPNew: Mokaru MCP server is live
Shijigroup

Shijigroup

Senior Backend Developer .NET

Company

Shijigroup

Role

Senior Backend Developer .NET

Job type

Full-time

Found on Mokaru

4 weeks ago

Share this job

Salary

Not disclosed by employer

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

任职要求 

  • 英语能力:要求具备流利的英语口语和书面沟通能力,能够向技术和非技术利益相关者传达复杂的技术概念;具备撰写清晰的技术文档和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
Resume ExampleCover Letter Example

Explore more