Tag: 软件工程师

通过了AI-900和DP-900两门微软认证考试! 新时代应该人手一个AI-900证书

昨天顺利通过了 AI-900(889/1000) 和 DP-900(850/1000) 两门微软认证考试。 两场都是线下考试,AI-900 原定 11:30,DP-900 原定 13:30。我 10:30 左右到考场,运气不错,被允许提前开始,结果 11:30 就全部考完了。 Code 证书名称 证书号码 获得日期 AI-900 Microsoft Azure AI Fundamentals 7Z9DA9-388866 2025年12月19日 DP-900 Microsoft Azure Data …

Jane Street第一轮一小时面试体验卡(伦敦软件工程师)

2025年年初,拿了Jane Street一个小时的Coding面试体验卡。 市场定位 Jane Street 是一家全球领先的定量交易公司和流动性提供者,成立于 2000 年,总部位于纽约,同时在伦敦、香港和阿姆斯特丹设有办事处。 它以高度依赖数学、统计学和计算机科学技术而闻名,在金融市场中运用定量分析方法进行自动化交易。 技术驱动 Jane Street 专注于做市业务,为全球各类金融工具(股票、ETF、债券、期权、期货等)提供流动性。他们的交易模式主要基于算法和数据驱动,通过低延迟的技术在市场上寻找交易机会。 Jane Street 是一家技术驱动的公司,其核心交易系统和工具大多是内部开发的。他们高度依赖函数式编程语言 OCaml,用于构建高性能、可靠的交易系统。 文化与工作环境 合作与学术性:Jane Street 的公司文化强调团队合作、数据透明和学术研究氛围。 扁平化管理:鼓励员工从任何层级提供创新的想法。 强大的培训:对于新员工尤其是应届生,Jane Street 提供系统的培训,帮助他们快速上手。 招聘与职业机会 Jane Street 以招募顶尖的数学家、程序员和定量分析师而闻名。他们非常注重候选人的逻辑思维、编程能力和解决复杂问题的能力。 …

软件工程师可以去的几家大厂(面试难度/薪资)

软件工程师都应该去面面顶级科技公司,不同公司的难度和录取率差异巨大。以下是对 Google、Microsoft、Meta、Amazon、Apple、TikTok(字节跳动)、Netflix 和 Jane Street 录取难度的分析,以及估算的 Offer 接受率。 大厂的福利较好,有份大厂的经历/经验在找下一份工作的时候会比较加分,毕竟大厂是Proven Record。 一般来说,微软/Microsoft是软件公司,但是微软也有Azure云。微软的挣钱项目比较多,不像谷歌苹果还有NetFlix比较单一。 公司 Offer 接受率 难度等级(1-10) 关键因素 平均薪资(总包) Google ~0.2% – 0.5%(1/200 – 1/500) 9.5 算法、系统设计、高文化门槛 $300K+(L4,美国) Microsoft ~1% – …

理解系统设计中的可用性百分比: 计算系统的停机时间(Availability)

在系统设计面试中,可用性百分比是软件工程师应该熟悉的基本知识。 在系统可靠性领域(System Availability),99.9% 或 99.99% 之类的可用性百分比是关键的基准。但是这些数字究竟意味着什么?它们又如何转化为实际停机时间(Downtime)?以下介绍了如何计算与不同可用性水平相关的停机时间,并使用示例来说明 99.9%、99.99% 和其他可用性目标所带来的预期。 什么是可用性百分比? 可用性百分比表示系统在给定时间段(通常是一年、一月或一天)内预计正常运行的时间比例。例如,99.9% 的可用性意味着系统在指定期间内可以停机 0.1% 的时间。 可用性百分比和停机时间 以下是根据不同时间段的可用性百分比计算停机时间的方法: 确定总时间周期:选择参考周期: 年:365 天,或 31,536,000 秒(365 天 × 24 小时 × 60 分钟 × 60 …

三次冲击谷歌软件工程师: 我的面试起伏录 (谷歌面试是不是一生只有三次机会?)

Google(谷歌)是全球知名的互联网巨头之一,几年前被认为是养老终级大厂,福利优厚,压力相对较小。在英国伦敦,Google设有一个主要从事开发和研究的办公室。 第一次面试 2016年 我在2016年首次面试Google。第一轮是电话面试,由一位在瑞士的工程师主导,通过电话交流并在Google Doc上同步编写代码。由于当时技术水平有限,我用C++完成了那道消息打印的题目,核心是使用队列和哈希表来解决问题,写得很磕磕巴巴。 当时对软件工程师的级别没有特别概念,推测自己面的是SWE L4/L5的级别,因为当时也就工作了5年多。 我查了一下邮件,2013年11月份的时候谷歌猎头联系我问我要不要试试?我说我当时没拿到英国永居,不想冒险,虽然他说到谷歌可以办工签,我当时还是没有选择去面试,现在想起来实在不可思议,后来2014年/2015年的时候同一个猎头还每隔6个月就check-in一次,最后面是在2016年4月份的时候才开始第一次的。 我要是当时聪明一些,努力刷题一些,搞不好当时进谷歌,现在也工作将近十年了,拿着谷歌股票到现在,也不至于现在混个高不成低不就的。 第二次面试 2020年 第二次面试是2020年11月份,第零轮其实应该算是Google的猎头问的一些选择题,比如C++里的哈希表/map如果访问一个不存在的键会发生什么?Google的软件工程师包括SRE站点可靠工程师在面试的时候都可以选两种路径,一个是数据结构和算法(编程),另一个是运维/DevOps偏LINUX知识的。我都选前者,毕竟这个我感觉只要短期刷题就好了,相反后者需要多年工作实战的积累。 通过了猎头的小测试,我进入了第一轮,是道编程题,但是并不是那种力扣上可以见到的,这一轮45分钟,给得是一个比较有意思的游戏,比如迷宫生成算法。面试的时候需要你主导整个过程,包括澄清问题,构思,写代码,分析复杂度等等,每一步都需要你Think Aloud。虽然这一轮我犯了些错误,但是给得反馈总题还不错,面试官说他觉得我应该进入下一轮。 到了终面,安排在了同一天,上午2轮,下午3轮,我记得3轮编程/Coding,一轮系统设计,一轮Culture Fit/Behavior/行为模式。除了系统设计是1小时,其它的4轮都是45分钟,谷歌的Coding面试45分钟都是解决1题即可,题目并不是力扣上的,题目范围/scope较大,偏难。一般来说coding完还会有一些Follow-up的问题,比如怎么优化算法。这个和Meta/Facebook的Coding面试不同,Meta百分百喜欢出力扣上原题,40分钟内需要解决2题力扣原题(留5分钟问问题),这个可以通过力扣按公司归类最近3/6个月的试题准备即可。 系统设计我记得是设计一个类似AWS S3的文件存储,也不知道是不是看我当时在AWS S3工作。很可惜,最后面这一轮不过关,当时我面的是L5(Senior),软件工程师级别越往上走,对系统设计的能力则要求越高(设计可扩展/分布式/高性能的系统 )。 Unfortunately Google doesn’t disclose specific feedback per interview session …

产品设计和系统设计面试的区别(Product Design vs System Design)

在 Facebook/Meta 的软件工程师(包括站点可靠性工程师SRE和企业工程师EE)的面试中,产品设计/Product Design和系统设计/System Design起着比较相当重要的作用。 一般来说,编程面试(Coding Interviews)和行为规范面试(Behavior,考查是否和公司的文化价值观一致)是最基本的要求,而设计能力(系统设计或者产品设计)才是决定给你Offer的级别。 产品设计面试:Product Design Interview 目标:评估您创建以用户为中心的产品的能力,这些产品可以有效解决实际问题。 重点:您如何考虑用户需求、确定功能的优先级以及制定符合业务目标的解决方案。 典型问题 “您将如何设计一个允许用户管理其隐私设置的功能?” “为 Facebook 上的新用户设计入门体验。” 评估的技能 了解用户角色和痛点。 打造直观且可扩展的用户体验。 平衡用户需求与业务目标。 分析不同产品特性之间的权衡。 关键方法:CIRCLES 等框架(考虑用户、想象场景、需求、削减和确定优先级、列出解决方案、评估权衡、总结)。 系统设计面试:System Design Interview 目标:评估您构建可扩展、可靠且性能卓越的复杂的分布式系统的能力。 重点:如何设计技术后端和基础设施以支持高流量和强大的应用程序性能。 …

站点可靠性工程师(SRE) vs 软件开发工程师(SE/SDE)

许多大公司都有站点可靠性工程师(SRE = Site Reliability Engineer)的职位空缺。例如,谷歌、Facebook/Meta 或字节跳动的抖音。软件工程师(Software Engineer)与亚马逊/Amazon所称的软件开发工程师相同(Software Development Engineer)。 站点可靠性工程师(SRE)是一个专注于确保生产环境中软件系统的可靠性、可扩展性和性能的角色。SRE 负责服务的健康状况和正常运行时间,平衡软件开发与运维任务。软件工程师(SE)主要专注于编写和维护代码以创建软件产品,而 SRE 则融合了开发技能、系统管理、故障排除和事件管理,以确保这些产品在实际环境中顺利运行。 以下是两者之间关键区别的比较: 站点可靠性工程师 (SRE) 专注于可靠性与运维: 确保系统高度可用、可扩展且具有弹性。 监控系统健康状况,管理事件并处理故障。 运维自动化: 使用代码自动化手动任务(例如基础设施部署、监控和补救措施)。 通过创建自动恢复或仅需最少人工干预的系统来减少重复性工作。 随叫随到的职责/也就是On-call:我在亚马逊AWS云On Call的体验 通常参与随叫随到的轮值,处理操作问题和紧急情况。 性能和容量规划: 分析系统性能,确保系统能够应对增长和流量高峰。 SLA、SLO 和 …