More servicesWindows Live
HomeHotmailSpacesOneCare
 
MSN
Sign in
 
 
Spaces home  Freedo !PhotosProfileFriendsMore Tools Explore the Spaces community

Freedo

View spaceSend a message
Location:
Interests:
staffing @ Microsoft SQL Server team (BJ & SH)

Freedo !

View more of my blog & MS SQL open positions at: www.up9rade.com
August 15

August

200808141128a

这个8月在公司为奥运助威,胳肢窝下夹的是阿姨分发的刚吃完的雪糕。

200808141131a
 
女同事为了保持体形,让出雪糕,嚼得牙冰冰。

More Information Before Application

About SQL:   Why SQL? 为什么选择SQL?

·         What SQL China R&D have done. SQL 中国研发中心的成绩。

·         What you would gain after joining. 加入SQL 对我的职业发展。

·         More questions for SQL. SQL 更多的问题。

·         Useful Links to SQL team. 了解SQL 的有用链接。

About WSSG (Windows Server Solution Group):   Why WSSG?

·         Introductions:  WSSG 中国研发中心介绍。

·         Links to WSSG. 了解WSSG的有用链接。

About HPC (High Performance Computing):   Why HPC ?

·         Introductions: HPC 中国研发中心介绍。

·         Links to HPC. 了解 HPC 的有用链接。

The organization

·         Understand STBC. 我想了解STBC

·         Understand STBC and China R&D group. 我想了解 STBC 微软中国研发集团的关系。

Career Path:

·         Top of an IC. 作为一个工程师在微软的最高头衔。

·         Work at art of coding.

 

怎样申请 How to apply:  
send your English resume in txt format, together with your proud projects to:

frchen # microsoft.com  (replace # with @)

 

 

 

 

About SQL:

Words from Prakash, header of SQL China R&D

What SQL China R&D have done. SQL 中国研发中心的成绩。

This coming year shall see the launch of the next version of SQL Server, SQL Server 2008. The SQL Server team, and the China team as part of that larger team, has some hard work ahead of us as we push to get this product out the door. It is important to keep in mind that what awaits us is the reward of shipping a terrific product, with features customers cannot wait to get their hands on, with the high quality that they have a right to expect.

And what is especially exciting for us in the China team is that as we build up our capability, we get to play an even greater part in that next release, and in other future releases. Some parts of our China team are currently working on our deliverables into the next version of Windows, and they are already getting a taste of what it means to own a product or component end-end and deliver a new version to hundreds of millions of customers world-wide. It is not an easy task, especially in the case of a platform product like ours – but then that is what makes it exciting and challenging.

In a word: SQL China puts direct contribution on SQL Server 2008 release, that’s amazing.”

What you would gain after joining. 加入SQL 对我的职业发展。

How do you take a complex product such as SQL Server and build R&D teams for it in these new locations? Yes, it is true there is a lot of talent in India and China, but it is also true that a lot of it is what I call “raw talent” – very bright, but lacking deep experience in developing commercial-grade products, especially systems-level platform products.  It takes a lot of effort and energy and experiences to transform an individual from being a “smart coder” to being a “professional engineer” with all the implications that term has for me – someone who is at the top of their game with respect to translating ideas into mission-critical industrial-strength code in the most efficient and effective manner possible. It also takes a lot of time, effort, energy, experiences and most importantly, commitment to transform a set of very talented individuals into a world-class engineering team.

“ In a word, to make bright person the “professional engineer” in system level.”

The goal of SQL China R&D center:

We will build the Premier Data Platform R&D team in the Asia-Pacific region.

 

More questions for SQL. SQL 更多的问题。

o    Product development disciplines in Microsoft of SDE/SDET/PM to decide which role fits me best?

o    SQL Server team culture?

o    Database trends on complete data platform, or the legend of SQL China header Prakash?

Get the information from Prakash’s blog: http://blogs.msdn.com/prakas/

Useful Links to SQL team. 了解SQL 的有用链接。

o    SQL team blog in Chinese:  http://blogs.msdn.com/sqlcrd/

o    SQL Server 微软网站页面:http://www.microsoft.com/sql/default.mspx

o    SQL Server MSDN 页面:http://msdn.microsoft.com/zh-cn/sqlserver/default.aspx

 

More Information Before Application

About WSSG: Windows Server Solution Group

Introductions:  WSSG 中国研发中心介绍。

 

中小型企业服务器 - 为中小型企业量身定制端到端的Windows服务器决方案,以适应不断变化的IT管理需求。服务器与开发工具事业部(中国)参与下一个Windows Home Server, Windows Small Business Server  (SBS)版本,Windows Mid-Market Server等产品的研发,并负责SBS目前版本的升级维护工作。

Windows Server Solutions - Provides a platform for data storage, business applications, security, and communication and collaboration tools.   STB China participates in the development of Windows Home Server, Small Business Server (SBS), Windows Mid-Market Server.

 

Links to WSSG. 了解WSSG的有用链接。

Windows Home Server Team:

For years, you’ve used servers in the office. It’s time to start using one at home. With Windows Home Server, you can easily back up, access, share, and store all your family’s digital media.

 

o    MS web:      http://www.microsoft.com/windows/products/winfamily/windowshomeserver/default.mspx

o    Team Blog: http://blogs.technet.com/homeserver/

 

  

Small Business Server Team:

Windows Small Business Server 2003 R2 (SBS 2003 R2) 是先进的 IT 解决方案,旨在帮助您保护数据、以更少的支出完成更多的工作,并可使您同客户保持前所未有的紧密连接。

o    MS web:      http://www.microsoft.com/windowsserver2003/sbs/default.mspx

o    Team Blog: http://blogs.technet.com/chinasbs/

 

 

Windows Essential Business Server Team:

Windows Essential Business Server 2008专为规模达到250台计算机的中型企业设计,它帮助IT专员控制系统,减少花在救火上的时间, 从而更专注于能带动企业成长的策略性工作...

o    MS web:      http://blogs.technet.com/chinaEBS/

o    Team Blog: http://windowshpc.net/Blogs/China/default.aspx

 

 

About HPC (High Performance Computing):   Why HPC ?

Introductions: HPC 中国研发中心介绍。

 

在微软,HPC组是服务器与开发工具事业部中积极推动全球分布式软件开发的一员先锋。 在产品Windows HPC Server 2008中,上海开发团队主要负责的模块有: powershell和一种新的面向服务架构的编程模型。


高性能计算(HPC) - 提供可在64位商业电脑上运行的成本低廉但性能强大的高性能计算解决方案。服务器与开发工具事业部(中国)致力于Windows Compute Cluster Server的用户界面,HPC工具和可编程性的开发,并与合作伙伴积极协作,把最新的技术和创新成果带给中国的广大用户。

 

High Performance Computing (HPC) – One of the fastest growing server workloads worldwide, driven by enterprises embracing server clustering and desktop cycle-stealing to solve technical and business problems that only a few years ago required dedicated supercomputers. STB China works on programmability, user interface and the HPC tools of Windows Compute Cluster Server, as well as building the local HPC community to bring latest HPC technologies and innovations to Asian countries.

Links to HPC. 了解 HPC 的有用链接。

 

o    Team Blog: http://www.microsoft.com/hpc/

 

 

The organization

Understand STBC. 我想了解STBC

Ø  STBC (Server & Tools Business China) 官方博客:  http://blogs.msdn.com/stbcblog/

 

 

Understand STBC and China R&D group. 我想了解 STBC 微软中国研发集团的关系。

Ø  微软中国研发集团主页 Microsoft CRD  http://www.microsoft.com/china/crd/

 

 

 

 

 

Career Path:

Top of an IC. 作为一个工程师在微软的最高头衔。

Microsoft Technical Fellows

Recognized technical leaders in the industry

 

o    http://www.microsoft.com/presspass/exec/techfellow/default.mspx



David Campbell

Technical Fellow  - SQL

 

o    http://www.microsoft.com/presspass/exec/techfellow/Campbell/default.mspx

 

Mohsen Agsen

Technical Fellow  - SQL

 

o    http://www.microsoft.com/presspass/exec/techfellow/Agsen/default.mspx

 

Peter Spiro

Technical Fellow  - SQL

o    http://www.microsoft.com/presspass/exec/techfellow/Spiro/default.mspx

 

 

Microsoft Distinguished Engineers

Recognized technical leaders in the industry

o    http://www.microsoft.com/presspass/exec/de/default.mspx

 

 

Work at art of coding.

 

关于微软工作的更多Fun http://www.viewmyworld.com/videos.aspx?video=Perks

 

 

 

July 28

No hire for null

以下只是我的个人一点意见,并不代表公司或者行业规范,另外自己也只是三脚猫,希望不致于产生误导。

我负责的是Industry Candidates, 在面试中,听到不只一次有候选人说,因为微软在面试中特别看重算法和数据结构,所以在和Campus Candidate 或者刚毕业没几年的学生比起来,自己就占了劣势。这种说法只对了一半。

至少从我这边来看,使用的都是特别简单的算法和数据结构方面的问题,也就是,不以难倒候选人为目的,只要学过计算机专业,一定会做。还从来没有碰到过候选人答不上来的,但是也很少碰到候选人能做全对的。

原因在于,在面试中希望看到候选人有很好的 coding style, 能够写出 Robust 的代码。凡是加入微软的新员工,SQL team 都先扔给对方一本 《Security Development Life Cycle》,道理就是,在你能够给产品里面 contribute 代码之前,先防止你塞入一堆 troubles, 不安全,不健壮的东西。 刚毕业的学生,可能在学校里面写代码的时候,对于写一个算法,以写出来的东西能够work 了事,所以在代码习惯和怎么去写Industrial code方面,知识是欠缺的。

如果一个Industry candidate写的代码,没有很好地注意boundary check, overflow, dead loop等 security issue,就没有什么理由了。Overflow这个词听到很多,有候选人也能够说得一套一套的,可是写出来的东西动不动就是一个overflow. 如果说一个工作好几年的候选人写出来的东西还是有以上问题,那我默认对方已经不是经常写code或者个人兴趣已经不在这儿了,很难想像一个没有良好code style and habit的人,会是对coding 充满passion的人。那么他的职业道路就是几年以后做team leader或者manager, 让他下面的人写code,教intern 或者 刚毕业不久的学生怎么写代码,也可以想像,他也会教坏下面的人,于是不好的代码习惯就在公司里面漫延下去。

不仅仅是在公司里面,太阳底下没有新鲜事物,我相信很多面试的问题,算法是什么样的,在网上很容易地能够搜索到。我自己就曾经尝试过到网上搜索自己的一道面试题,原原本本的代码到处都是,但是,令人非常惊讶的是,没有看到过完全正确的代码。很难想像,这样的代码在网上流传,又会教坏多少人,从思维方式和编程习惯上。


扯远了,在微软的职位中,不管是SDE还是SDET,对于Robust 代码的要求都是一样严格的。在面试当中,即便是在face to face interview 中,也有interviewer 出的问题并不复杂,但是对候选人的expectation 是,average question, nice coding。有的时候,会对候选人没有做一个null check,会有非常大的concern. No hire for "null", 是个见仁见智的话题,但你能够做的是:把代码写好,写好你能写好的。


July 22

Follow the rhythm

 

有的时候,人趋于慵懒和停顿,幻想一通疯玩:比如,在超大液晶屏前,空调开得大大的,大玩一把RTS;又比如,把家里的1U服务器,2台PC,两台笔记本连起来玩cluster,可惜都没有时间和精力去实现 :)

还有的时候,发现自己太快,快得乱了节奏。从年龄前面冠了3字头以后,就没有再玩过编一周的程序,出来后连路是怎么走都不知道的感觉。套用书上的例子是,加3个小时的班编的程序,完了以后发现用两天的时间在改它,就象书上说的一样。

所以,尽量慢一点,慢一点。

Do the right thing at the first time, 尽管慢,比后面去改正的代价更大。

 

如果反省一下工作中犯的小错误,几乎可以发现,有一大部分,如果在当时的时候不怕麻烦,不嫌慢,用正确的步骤和approach去做,犯错的机率会大大降低。所以,是自己放过了错误。

在这一年的紧密共事中,至少学会了一些怎样去面对事,去approach,或者说是,entry level 的 system thinking.

因为我同意关于成功的如下一种观点:

能够“做好”任何一件普通的工作,必定也能“做好”其它任何与之不相关的工作,就是“be an expert in be an expert”。原来在Flextronics的时候,有一位年轻得到很快提拔的总监,聊天的时候跟我开玩笑:

现在他可以做好任何的事情,哪怕即便是让他去管理厕所。他会规定男卫生间男的必须要隔多少公分小便,地上划好线,规定要入槽。。。比喻俗了点,道理一样。

July 14

keep on digging

周末的时候神叨叨地在纸上画一个string, 用于测试: a b a c d b b c.

朋友看到了瞥了一眼说,哼,对于size 这么感兴趣啊, 我晕 :S

 

放个题目出来,一个内直径为1米的圆球,最多可以容纳多少个外直径为10厘米的小圆球?编程解决,有思路加有解,请你来SQL.

 

:)

July 06

Notes

只是巧合,27号的时候BG发邮件给大家说,将从那天起退出日常的管理。从28号起我也休了一周的假。

在休假的时候,除了在工地上,就是在看敏捷开发《Agile Software Development: Principals, Patterns, and Practices》和写一个注册程序模块。

Martin的这本书影响很大,因为自己还是一个纯粹的门外汉,属于饥不择食,一通乱看,却又很少有大块时间能够静下来看的那种。

影响在两个方面:
一是软件工程之美。让你醉心于此,简单的实例,美妙的模型。
模块我很快就写好了,加上一些调试,700多行代码几个小时之内写完,能够work。接下来整六天时间一边捧着书看,一边把它进行重构,尽量减少它所散发出来的“腐朽”的气息。
到休假结束终于写完的时候,只有一个感觉,以前自己从来没用这种方式写过代码。

很多Principles理解只基于表面,作为rules No.1 拨离共同点,拒绝重复,Single Responsibility Principal 还是能执行的。
Design Pattern里面也一再提到了直到最后才考虑数据库层面的东西,尽量不要被底层细节所束缚。
有一个观点在国内互联网开发当中比较流行,就是“所有的互联网的应用归要到底是数据库的应用”。个人认为欠全面,如果过早地沉到数据库层面或者纠缠于细节,编着编着代码里腐朽的气味就出来了。很多程序在网络上还是面向procedural上面的,也许也是基于这个原因。
另外也讲到了Proxy Pattern,把对数据库层面的操作拨离开,使软件能独立于具体的数据库平台和语句,后考虑性能和缓存的问题也可供借鉴吧。

另外,书中的道理应该非常明白地回答了一个问题:到底是 c++ 好, c# 好还是 java 好? 对这个问题的回答基于对问题:软件工程的目的是什么 的理解。哪一种工具能够帮助你非常迅速 Agile地部署面向对象的设计和开发,最灵敏地满足客户的需要,它就是好的工具。 不管今后还有多少初学的人在询问该学哪一门,c#都将具有长足的生命力。BTW, CLR 的 PM Brandon 在Zizhu 访问了很长时间 :)

第二个方面是,教我怎么写第一句代码。

不是说" hello world", 而是他将 agile development 的理念一直贯穿,了解需求或者说确定功能模块之后(这中间UML是重要沟通工具之一,详细的文档不是必需的,图也不是在任何场合都能起作用),第一行应该是测试用例代码。

100% test driven, 在我理解是使用用例, 基于test case 来写代码, 通过了不断调整的测试代码的程序,也就满足了功能的程序。在当中不断对代码进行重构,并且保留测试程序。

所以在最后一次重写代码的时候,我写的是第一行是 switch (), case : case: ... 虽然这不是最后看起来的代码,但是它确实让我保持在清醒正确的方向上面。

June 26

Think and know it's not true


本周有四天要泡在培训教室里,关于<project management>, <agile and scrum project management> 的培训,把一些粗浅的想法记录下来。
自知离真正的 agile 还远着呢,所以就不敢胡乱写关于 software engineering topics。
记一点自己关于 time management 上面的体会。

来上培训的Principal PM 专门讲到了关于时间管理,计划之内和计划之外,计划之外占很大比重的是被打扰的时间。

Agile management 的并不是说一味跟着发生的事情去走,而是制定合适时间之内的计划,review 并且坚持它。比如说上班8小时的分配。

大家的工作基本上都是work on email, 有的时候光是处理邮件就能消耗一天的时间,这些邮件也会在工作中扮演打扰者的角色,让你感觉在工作中处于被动。

所以能够有一个培训课程,在培训中不接收邮件,只是接受老师的板砖一顿乱砸,就看能不能砸中某根神经,让人开开窍也不错。

看到过一天当中几种时间管理:

第一种,不作计划或者计划在脑子里,盯着邮件,有紧急重要事件优先处理。这算是第一层。

第二种,以前在墨西哥做项目的时候有一个对方的PM, 我看到他每天早上到公司里都先把一天的事项打印出来 (Outlook - > Task -> File -> Print)。 处理完毕的打勾,这种方式我相当欣赏。作为一个PM,一天之内可能有十几件,二十几件事情同时找到你,所以有一个checklist还是很好的。 By the way, 他的excel 技能也让我佩服不已,是属于传说中的完全脱离鼠标操作的那号人。这算是第二层。

上完今天的培训课程,我想时间管理的第三层境界是: 在被洪水淹没或者难以自拔之前,先想好每天的事务,分轻重缓急,记下来。把计划之内的事务至少分配4个小时,并且保持对计划的review. 也就是说,除了记下来所要处理的重要事务之外,并且给它们分配上各自的时间,并且坚持在那个时间做计划内的事情,而不被打扰。

做到这一点应该是最难的。因为除了别人打扰之外,最重要打扰是来自于内心。心里面经常会有一个声音告诉自己说,脑子里冒出来的那个主意,那件事情很不错,快去做吧。或者是,这件事情紧急程度不高,先休息下,做别的事吧。有没有想过,上班就象是坐禅,因为不管好的念头不好的念头冒出来的时候,都不要去理会它,也就是禅中所说的: 见佛诛佛,见魔诛魔。

要养成好的习惯,好的修养确实不容易,就象Prakash 所说的,好的习惯是帮助你成功的重要因素之一。我自己还在第一和第二层之间struggle.

 

 

food tasting

 继结束了员工座椅的投票之后,出炉了 "food tasting" invitation, 让员工自己选择食品供应商。


 



June 25

Materials tell

只上材料不说话:

在员工个人的力量之外,微软的培训和发展人的体系有三个重要模块:
1. Learning Portal, 这是一个员工自我管理的培训平台,可以在上面注册搜索培训课程,这些课程有在线的,面对面。可以在上面追踪自己和学习进度。培训的课程会多到点得人手软。
    可以参看 http://www.up9rade.com/blog/184 这里, 自己对于自我学习的看法。
2. Mentor System,  旨在把微软全球的人才联结起来,分享和学习。 所以,一个 HR 和 一个拥有超过10几年软件开发经验的 Dev Manager 结成对子,进行为期一年的 mentorship, 在理论上和实际上,都是可行的。 当然在正式成为 Mentor 和 Mentee 之前, 要先参加怎么样成为一个好的 Mentor 和 Mentee 培训, 确保双方可以借鉴以往的 best practice, 同时有共同的清晰目标。 可以参看 http://www.up9rade.com/blog/191 这里, 讲了个人关于 Mentor system 的经历。
3. Engineering Excellence, 通过全体技术人员的推动,倡导跨产品,部门,领域的 regular 沟通和交流。 Open door policy, 所以在一堆讨论得兴高采烈的工程师中间,出现 HR 的面孔也不奇怪, 当然尽力尝试去听 :) 

以下是本人的课程和培训计划,去掉了链接,从 Learning Portal 里导出来的,crazy :-D

今天刚好是我在微软一年,在这一年开始的时候,我听了 executive speech,  参看 http://www.up9rade.com/viewblog/109 这里。
一年以后的今天,我想以SQL 中国 GM 关于他个人在 career development 中的一些建议作为结束:

1.Know thyself: 
    If you’re an engineer, what discipline(s) do you want to build expertise in – Development, Testing, Program Management, User Experience or Product Planning? Do you want to follow an individual contributor track or the people management track? What kind of technology do you want to work on – consumer or business, platform or applications, hardware or software or service? Do you want to work on a start-up project or on a more established product?
“Are you a technology guy with a business interest, or are you a business guy with a technology interest?”

2.Make a plan – and keep it up-to-date:
Here’s an idea that might make it easier. Find a mentor, or at least a role model – someone in the organization you can look to and say ‘I want to be like that person’. Go talk to that person, find out how they got to where they are, and see how you can adapt that experience to your own situation.
 

3.Develop good habits:
I’ve seen many folks develop damaging habits and thinking “I know this is not a good habit, but when the real opportunity comes, I know I’ll be different”. Wrong. There is an English-language saying – “we’re all creatures of our habits” – meaning who we are and how we respond to a situation is determined to a great extent by the habits we have developed.

4.Be an expert - on being an expert:
It doesn’t really matter as much what particular subject matter you become an expert in, what matters more is that you become an expert in becoming an expert.

5.Help your manager and your team:
They often come to their manager to discuss what they can do to get that next promotion. I’ve always found these conversations somewhat strange. Of course, depending on the circumstances there may be a variety of things that you need to do that would help you advance in your career. However, one consistent way I’ve found that employees can help both themselves as well as their team is to ask a simple question – what does my manager worry about and how can I help him or her?

6.Drive your career, but don’t be obsessed with it 
So, while we all have our goals and we work towards them, it is important to take your time and smell the roses along the way.
 

原文很长,只能节选出来。每一次读都有不同的体会。
在这世界上,没有完美的公司,没有完美的人。我愿意作为一个微小的人,为了理想去战斗。也愿意作为一只晕了头的老鼠,沉醉在这个知识体系的大米缸里。
--写在微软一年

 

 

 (我的培训课程表)

Title Start  Priority Status
Creating Accessible User Experiences Oct. 29, 2008    
Program Management at Microsoft Jun. 27, 2008    
Scrum and Agile Project Management Jun. 26, 2008    
Project Management Jun. 23, 2008    
Moving to PM from Other Disciplines: Why Do You Want to and Should You? Jun. 13, 2008    
CandidTree and FacetLens Jun. 12, 2008    
Designing, Developing, and Deploying Internet-Scale Services Jun. 12, 2008    
Doing Design When You Are Not Designing User-Interface Features Jun. 12, 2008    
Building Consensus vs. Driving Consensus Jun. 11, 2008    
Product Life Cycle Basics May 22, 2008    
Building Business Models: Creative Destruction and Competitive Advantage      
Capturing and Viewing Big, Wide, and Deep Imagery      
Choosing the Right Agreement      
Classes of Security Defects - Online      
Communicating Up: Effective Interaction with Management      
Cool Stuff from Cambridge      
Creating a Team Environment      
Creating Accessible Content      
Customizing Agile Principles for Large Projects      
DealPoint      
Designing Your Feature—What You Need to Do BEFORE Writing the Spec      
DieHard: Memory Error Fault Tolerance in C and C++      
Different PM Styles at Microsoft