• 撒花

  • 有测试工程师的岗位么?

    有,我已经更新了帖子。

  • 比如一个上午/下午4轮这种的吗?

    你说的很对。我们的面试通常先是电话面试,然后再约一个上午/下午3-4轮面试。

  • 运维是没有level的吗?

    运维两个岗位的level:一个是 devops(T2), 一个是 senior devops (T3)

  • 此贴顺便帮我们 SAP 的隔壁团队 successfactor 招聘 Java 工程师 以及 Java 专家。感兴趣的同学可以投递简历。

    Java 工程师(T2)

    Duties and Responsibilities:

    • Understand business requirement, design, implement and continuously improve complex SaaS system to support cloud customer
    • Work closely with local and global engineering teams to develop/maintain SuccessFactors platform services, frameworks and applications
    • Build scalable, stable and efficient platform fundamental services, frameworks and applications
    • Write quality, testable, maintainable, and well-documented code
    • Give support to support service employees on customer issue

    Required Skills & Experience:

    • BS/MS in Computer Science, Computer Engineering or related technical
    • 2+ years of experience in software development and engineering
    • Good knowledge of Java language, OOP concepts.
    • Have a solid foundation with relational database and SQL
    • Understand system architecture
    • Basic knowledge of cloud native development, understanding of scalable micro-services, design pattern, CI/CD and DevOps is a plus
    • Experience of Cache service (redis)/ELK/Messaging System(Kafka) is preferable
    • Exposure to public clouds (i.e. Azure, AWS, GCP, Ali Cloud) is preferable
    • Experience in Agile/Scrum, BDD, TDD, software refactoring and other engineering best practices is preferable
    • A team player with good communication skills, speaking and writing fluent English
    • Demonstrate technical curiosity and passion for exploring new technologies for future technical roadmap via continuous learning and self-development
    • Understanding and hands on skills in docker, k8s, reverse proxy tuning will be a plus
    • Familiarity of scripting language like shell, python, Lua will be a plus

    Java 架构师 (T3)

    Duties and Responsibilities:

    • Understand company strategy and business, design, implement and continuously improve complex backend system to support huge volume SaaS system with complex business scenarios, with high security, performance, scalability and testability Liaison with Product Manager, Engineering Manager and other agile teams to align with the overall product vision and architecture design Lead best practice for clean and effective code, improve team technical level
    • Lead and influence technical direction and roadmap
    • Lead design reviews for engineers and provide feedback on architecture and open design questions
    • Required Skills and Experience:

    BS/MS in Computer Science, Computer Engineering or related technical

    • 8+ years of experience in enterprise software architecture design, Java development and engineering
    • Has experience on Java performance tuning / troubleshooting is a plus
    • Have a solid foundation with relational database and SQL
    • Experience in DB tuning experienced is a plus
    • Good knowledge of cloud native development, understanding of scalable micro-services, design pattern, CI/CD and DevOps is a plus
    • Exposure to public clouds (i.e. Azure, AWS, GCP, Ali Cloud) is preferable
    • Experience in Agile/Scrum, BDD, TDD, software refactoring and other engineering best practices is preferable
    • Capable of working in global engineering team across different time zones and locations
    • Strong analytics skill and logical thinking
    • Strong leadership for people and technical
    • Skills to clean and refactor complex code
    • Strong collaboration and communication skills and be fluent in English
    • Strong sense for built-in quality
    • Demonstrate technical curiosity and passion for exploring new technologies for future technical roadmap via continuous learning and self-development
    • Experience for developing micro-service, familiar with spring cloud, Dubbo etc.
    • Experience for middleware development will be preferable.
    • Familiar with common design pattern and can use it in the real coding or technical discussion
    • Familiar with UML diagram and use to express the design thinking or technical solution
  • 又加了一个职位:运维工程师。

    感兴趣的同学,欢迎投递简历。

    谢谢。

  • 可以申请的,稍微透露一下,我们对英文的要求降低了一些。 😀

  • Let's clone a Message Queue at 2019年03月26日

    我们项目因为历史原因,在使用 delayed_job ,db 做 Queue 系统,锁是个很大问题。

    1. 多个 worker 在拿任务时,会有互斥。
    2. 拿任务和写入任务会互斥

    借用一篇文章的标题:《Databases suck for Messaging》

    https://www.rabbitmq.com/resources/RabbitMQ_Oxford_Geek_Night.pdf


    迫于无奈,我们最终把 delayed_job 的后端迁移到 RabbitMQ 上。

  • 薪资是在公司内部是保密的,我也不知道别人的薪水,需要和 HR 直接谈。你可以按行情价要。

    有几点要说明:

    1. HR 和你谈的时候,是按照年薪和你谈的。所以最好你拿计算器先算好。
    2. 因为我们的工作强度不高,不加班,准点上下班,假期也很多,所以薪酬会比市面上略低。
    3. 公司有股票计划,你每月可以拿十分之一的薪水买 SAP 股票,公司补贴 40%。比如:你月薪20000,那么可以每个月拿2000 投资公司股票,SAP 补贴800。
  • 我们的面试比较注重计算机基本功,英文沟通能力,项目经验。编程语言不是首要考量因素。如果你是 Java 程序员、Python 程序员,也可以申请。

    我们的项目中有个组件是 Java 写的,还有 golang 写的项目,是个大杂烩。

  • 暂时没有内,还有一个 ops 的岗位,过几天会发出来。

  • 我们没有强制要求,你可以只写后端,也可以前后端通吃。写烦了后端,也可以写 mobile 客户端。

  • Feed 流设计 (四):存储 at 2018年09月28日

    以上只是根据 O(log n) 进行估算,可能不准确。但我想表达的意思是,假如一张表的某个字段的值的cardinality 很高,根据这个字段的索引进行查询,无论是 100万的记录,还是1000亿条记录,IO 次数可能差不多。

    100万需要3次

    1000 亿需要5次

  • Feed 流设计 (四):存储 at 2018年09月28日

    粗略估计一下,假如 B Plus tree 每个节点的大小为 4896 byte,用来存放 big integer (8 byte),大概可以存 300-600 个之间。[1]

    假如我们取最小的数字 300 做 branching factor,那么在一张1000亿的表中读取一条记录需要几次IO呢?

    5次。


    [1] 我不知道block的指针占多大,所以只能估算。假如block指针大小为 8 bype,则 branching factor为 4896/(8+8) = 306。

  • 对屏蔽的处理,我放到了 Part 3 中。

    http://mednoter.com/design-of-feed-part-three.html

    1. xiaoronglv 和 quakewang 是好友关系。
    2. quakewang 屏蔽了 xiaoronglv
    3. 当小荣吕发言时,会产生一个 event
    4. RouteService.route! 在分发时,发现 quakewang 已经屏蔽 xiaoronglv了,就不会分发给 quakewang 了。
  • 多谢,已经修改。

  • 很多人选择推拉结合。

    一个例子就是「对僵尸用户的处理」

    几年前我在薄荷网工作,那时有2000万用户,但日活只有20+万。换句话说,存在大量的僵尸用户。如果为他们准备好队列,填满内容,其实是很不划算的,浪费了大量的存储空间。尤其是使用内存数据库时,简直是烧钱。当时采用的策略是:平时不管这些僵尸用户,他们的队列是空的,没有任何 feed,当他们登录时,临时去拉数据,把他们的队列填满。

    但是企业市场不能这么考虑问题,SAP 的客户每年都在付费,人家买的就是服务。所以即使客户不登录,我们还是把每个客户队列中的内容准备好。

  • 假如Bell取消了屏蔽,再次去拉Ryan的消息吗?

    我的考虑:Feed 的内容大部分都有时效性,过了时间之后就没有什么价值了。取消屏蔽后,是不是可以不用拉数据啊。

  • Feed 流设计(四):存储层

    第四部分写数据库的选择,过几天再更新哈。

  • 好主意!我把索引贴到文章底部了。

  • 过来点个赞

  • 欢迎广大已婚已育, 追求家庭和工作平衡,熬不动夜的老司机加入SAP.

  • 我记得你们没有用 NoSQL 吧?

    Experience of NewSQL DB like TiDB.

    😀

  • 曾经 redmine

  • jira