• 我们还在招人,欢迎投递你的中英文简历。

    • Senior Ruby Developer
    • Mobile 程序员
    • 前端程序员

    https://jobs.workstream.is/workstream

  • 使用两部手机还有个好处。天使手机的号码留给自己的家人和朋友,魔鬼号码留给销售/注册网站/收验证码。

    一来可以保护自己的隐私,而来可以防止收到骚扰电话。

    1. 我的“魔鬼手机”里不放任何个人信息(比如通讯录)。所以即使安装了一堆没节操的软件,它们也偷不到什么个人信息,

    2. 出门在外,房产中介/销售/保险经纪人(所有不喜欢的人)如果和我要电话号码,我就留“魔鬼手机”的号码。响铃从来不接。

    以恶制恶,落个清静。

  • 做什么事会让你提上很高的兴趣呢?我想是这样:这件事不会特别难,如果太难,难到超出你的能力太多,你可能就提不起兴趣,二来,可能这件事会让你有趣,或进步,如果太无趣的工作,我也不太想干。

    你说的点很好。有书专门描述这种状态,书名叫《创造力》《心流》

    https://book.douban.com/subject/26285299/

  • 谢谢华顺。

  • 宅在家里没事,我就写了篇文章,玩一下公众号。

    真的只是顺便招聘,如果你们反感,我去掉就是了。😀

  • 当时没完全看明白,似乎是:

    1. middleware 生成 request id 后,写到了 thread local variable 中的。

    2. 到了写 log 时,把 thread local variable 中的东西读出来。

    我的理解对吗?

  • 最近肺炎有疫情,不建议去人口密集的公共场所。

  • 你的贴每次都发的有点突然啊。

  • 填好了

  • 你去深圳啦?

  • 我也参加,想拜读一下大家的 micro service 是怎么写的,比如:

    • Golang 的 Service 是怎么单独部署的
    • Ruby 和 Golang 的 service 通信

    等等。

    道理都懂,就是想看看真代码是如何组织的。

  • 我也还在写,毛遂自荐,请帮我加上

    吕小荣的笔记:mednoter.com

    我自己都不知道有多少人订阅我的博客,哈哈。

  • 作为一个老家伙,我觉得默默会挺好,老朋友见见面,随便聊聊天。

  • +1

  • 撒花

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

    有,我已经更新了帖子。

  • 比如一个上午/下午 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 了。