文章更新

2015-06-15 01:00AM: 感谢各位的支持,简历和解决方案接收截止。
2015-06-08 08:30AM: 已经收到一些简历和解决方案,正在筛选中。职位仍然开放,欢迎发送简历及解决方案。

根据博客园管理员的建议,已移至博客园招聘频道,有感兴趣的朋友可以和我直接联系!

一. 背景

2014年6月30日离开微软新加坡,第二天随即加入现在的公司,之后一直忙碌着公司的新项目,权限系统、以及旧项目的维护与重构,整体来说一起都比较顺利,每天都忙碌、痛苦并快乐着。

由于前面几个系统的顺利开发完成并上线,所以忙里偷闲,恰巧最近公司突然来了一个在我看来非常大且持久的项目,面对挑战,我希望能把它顺利的接下来并做大做好,遂希望招聘几名志同道合的.NET程序猿。

二. 招聘信息

  具体招聘条件:

    1. Bachelor degree in business, software engineering, or computer science.
    2. Experience creating ASP.NET views in MVC/Razor utilizing CSS and jQuery/JavaScript.
    3. C# .NET development in Framework 4 or newer.
    4. Experience with WCF web services or Web API.
    5. Familiarity with Microsoft Unit Testing tools, including MS Test and MS Fakes.
    6. Experience with source-control management systems, particularly Microsoft TFS.
    7. Demonstrated ability to make informed decisions quickly and leverage communication abilities to implement them.
    8. Any experience or knowledge on MVVM Framework (Angular.js or Knockout.js) will be a big Plus.

  工作地点为新加坡。

三. 项目相关信息

自从加入公司后,做完了两个比较大一点的项目,其中也完善了一些基本的架构设计及框架,所以这次的新项目希望能复用之前的一些设计成果。

架构设计图:

  1. 01_Client:存放UI相关的项目,比如Winform, WPF,ASP.NET, Silverlight,ASP.NET MVC或者相关的Web Model及View Model项目。
  2. 02_Hosting:存放与Service相关的项目,可以是Direct Service,Remoting Service,Web Service,WCF Service或者Web API Service 。
  3. 03_Domain:业务逻辑相关的所有实体以及操作(根据OO的思想设计类以及类之间的关系)。
  4. 04_Infrastructure:非业务方面的功能框架 (Data,Common,DataContract,AOP, IOC,Logging,Encryption,Email)。
  5. 05_Database:数据库项目(包含所有数据库脚本,方便开发,部署以及维护)。
  6. 06_Tests:所有测试项目(数据访问测试,框架测试,业务逻辑测试,服务测试以及View Model测试)。
  7. 07_ReferenceLibs:项目相关的外部引用。
  8. 08_Tools:一些简单的工具,方便开发,测试以及部署。

组件及部署图:

执行序列图

调用Service之前需要调用Service Adapter,然后根据项目配置来决定调用WCF Service,Web API Service 还是直接DLL引用:

四. 对项目的期望

为了项目的可维护性及扩展性,希望项目能具有以下特性:

  1. Organized:如果系统组织比较好,可以起到事半功倍的效果。
  2. Encapsulated:对功能,结构,数据进行有效的封装,会使系统维护变得更加容易。
  3. Reusable:对常用功能以及组件进行有效的封装,可以使系统变得结构清晰且方便维护。
  4. Extensible:在设计系统的时候,如果很好的遵守OO的设计理念(OO的五大原则SOLID),即使系统做得很大,也会像火箭一样直冲云霄!
  5. Replaceable:在很多时候我们需要考虑到系统,组件或者功能的可替换性,因为需求是会变的。
  6. Testable:做到系统的可测性,会大大帮助开发以及维护,对团队开发以及分工协作起着非常重要的作用。
  7. Loose Coupling:隔离耦合是架构设计必须要考虑的一个因素,如果系统不能做到高内聚、低耦合,那么在维护,升级,新功能开发方面就会是一场噩梦!
  8. High Performance:高性能是系统设计必须重视的要点,用户不可能忍受简单页面加载超过十秒,也不可能接受页面操作频繁卡死的情形,所以在架构设计的时候必须从数据库,逻辑,服务以及UI进行合理的优化。
  9. Scalability:如果能做到前面的几点,那么我有理由相信你的系统一定具备Scalability。
  10. Enjoy Your Life:最后一点也是最重要的一点,不要忙碌于重复的码农工作,喝杯咖啡,享受代码,早点回家,陪老婆、陪小孩,环球旅游,享受生活!

五. 面试题目

之前在网上看到一个比较有意思的面试题,做完之后才发现可以通过这道题考察很多方面的知识点,遂将其做了一些简单的改编,用以面试或者基础考察。

其实面试题目比较简单,主要考察最基本的算法、面向对象及项目经验:

Solution Implementation: Meeting Track Management

Suppose you are planning a big programming Meeting and have received many proposals which have passed the initial screen process but you're having trouble fitting them into the time constraints of the day -- there are so many possibilities! So you write a program to do it for you.

  • • The Meeting has multiple tracks each of which has a morning and afternoon session.
  • • Each session contains multiple talks.
  • • Morning sessions begin at 9am and must finish by 12 noon, for lunch.
  • • Afternoon sessions begin at 1pm and must finish in time for the networking event.
  • • The networking event can start no earlier than 4:00 and no later than 5:00.
  • • No talk title has numbers in it.
  • • All talk lengths are either in minutes (not hours) or lightning (5 minutes).
  • • Presenters will be very punctual; there needs to be no gap between sessions.

Note that depending on how you choose to complete this problem, your solution may give a different ordering or combination of talks into tracks. This is acceptable; you don’t need to exactly duplicate the sample output given here.

Test input:

  • Writing Fast Tests Against Enterprise Rails 60min
  • Overdoing it in Python 45min
  • Lua for the Masses 30min
  • Ruby Errors from Mismatched Gem Versions 45min
  • Common Ruby Errors 45min
  • Rails for Python Developers lightning
  • Communicating Over Distance 60min
  • Accounting-Driven Development 45min
  • Woah 30min
  • Sit Down and Write 30min
  • Pair Programming vs Noise 45min
  • Rails Magic 60min
  • Ruby on Rails: Why We Should Move On 60min
  • Clojure Ate Scala (on my project) 45min
  • Programming in the Boondocks of Seattle 30min
  • Ruby vs. Clojure for Back-End Development 30min
  • Ruby on Rails Legacy App Maintenance 60min
  • A World Without HackerNews 30min
  • User Interface CSS in Rails Apps 30min

Test output:

Track 1:

  • 09:00AM Writing Fast Tests Against Enterprise Rails 60min
  • 10:00AM Overdoing it in Python 45min
  • 10:45AM Lua for the Masses 30min
  • 11:15AM Ruby Errors from Mismatched Gem Versions 45min
  • 12:00PM Lunch
  • 01:00PM Ruby on Rails: Why We Should Move On 60min
  • 02:00PM Common Ruby Errors 45min
  • 02:45PM Pair Programming vs Noise 45min
  • 03:30PM Programming in the Boondocks of Seattle 30min
  • 04:00PM Ruby vs. Clojure for Back-End Development 30min
  • 04:30PM User Interface CSS in Rails Apps 30min
  • 05:00PM Networking Event

Track 2:

  • 09:00AM Communicating Over Distance 60min
  • 10:00AM Rails Magic 60min
  • 11:00AM Woah 30min
  • 11:30AM Sit Down and Write 30min
  • 12:00PM Lunch
  • 01:00PM Accounting-Driven Development 45min
  • 01:45PM Clojure Ate Scala (on my project) 45min
  • 02:30PM A World Without HackerNews 30min
  • 03:00PM Ruby on Rails Legacy App Maintenance 60min
  • 04:00PM Rails for Python Developers lightning
  • 05:00PM Networking Event

Requirements:

Use OOP, Algorithms and your experience to implement your solution with the following applications:

  • 1. WPF with MVVM
  • 2. ASP.NET MVC
  • 3. ASP.NET MVC with MVVM (AngularJS, KnockoutJs or Backbone.js)

六. 待遇

关于待遇,大家可以参考我之前写的一篇关于新加坡IT薪酬

七. 欢迎有兴趣的朋友与我联系

最后,欢迎有兴趣的朋友与我联系,发送简历及面试解决方案到我的邮箱(sggeekcoder(at)gmail(dot)com或者KnightsWarrior(at)msn(dot)com ),尽力做到查阅必回。

招聘.NET开发人员(截止于2015-06-15)的更多相关文章

  1. 京东招聘Java开发人员

    软件开发工程师(JAVA) 岗位职责: 1. 负责京东核心业务系统的需求分析.设计.开发工作 2. 负责相关技术文档编写工作 3. 解决系统中的关键问题和技术难题 任职要求: 1. 踏实诚恳.责任心强 ...

  2. [已招满,谢谢关注]Sogou招聘C#开发人员,有意者请进

    职位名称:c#开发工程师 工作地点:搜狐网络大厦 职责:搜狗商业平台桌面产品 职位要求: 1. 计算机或者相关专业本科或以上学历 2. 精通c#,两年以上实际项目开发经验 3. 熟悉C/S开发架构和设 ...

  3. Dynamic CRM 2015学习笔记(4)修改开发人员资源(发现服务、组织服务和组织数据服务)url地址及组织名

    在azure vm上安装了CRM 2015后 Dynamic CRM 2015学习笔记(1)Azure 上安装 CRM 2015, 发现了一个问题,那就是在设置 ->自定义项 –> 开发人 ...

  4. 诚聘:全栈开发人员,三线城市10-16K

    北京快鸽联盟信息技术有限公司成立于2013年,专注于校园及社区快递和增值服务.目前已有十余家各地分部,并与上百所大学,各大快递和电商公司有密切合作,年处理快件量超千万,长期处于行业领先地位. 诚聘全栈 ...

  5. 安晓辉大神的感悟:如果你发现了自己的学习模式,愿意学并且能坚持,我觉得没什么能阻挡你征服软件世界的脚步(对于开发人员来讲,最大的风险是:在职业规划上没有延续性地乱跳槽。时刻要牢记在心的:培养自己的稀缺性) good

    从技术支持中途转战软件开发,如今从事编程工作已十多有余,2014年CSDN博文大赛编程语言组冠军.CSDN Qt论坛的版主安晓辉老师从今天开始,坐镇CSDN社区问答栏目的 第十四期,届时会接受广大网友 ...

  6. Front End Developer Questions 前端开发人员问题(二)CSS 后续

    问题来源:http://markyun.github.io/2015/Front-end-Developer-Questions/ 31.视差滚动效果,如何给每页做不同的动画?(回到顶部,向下滑动要再 ...

  7. Front End Developer Questions 前端开发人员问题(二)

    问题来源:http://markyun.github.io/2015/Front-end-Developer-Questions/ 二.CSS 1.介绍一下标准的CSS的盒子模型?与低版本IE的盒子模 ...

  8. #一周五# VS2015 CTP6, TFS2015 CTP1更新,老衣的开发工具汇总,2015 MVP 社区巡讲

    又到周五,这一周博主我工作效率极高,每天更新博客一篇,<快速创建网站>系列已经进程大半了,希望这个系列能够对大家有所帮助.今天周五了,博主要休息一下,就给大家唠叨一下这段时间都发生了什么. ...

  9. 对于JavaScript的函数.NET开发人员应该知道的11件事

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 昨天小感冒今天重感冒,也不能长篇大论.如果你是.NET开发人员,在进入前端开发领域的时候,对 ...

随机推荐

  1. 权限管理[Linux]

    chown username file,... 改变文件的属主(只有管理员可以使用此命令) -R:修改目录及其内部文件的属主 -reference=somefile_path file,...把想要设 ...

  2. ng1.3+表单验证<AngularJs>

    前一篇文章说过,ng1.3+以后对于表单验证有了优化,它不再需要一个详细的表达式状态创建元素显示或隐藏. 例如:我们在ng1.3之前的版本都需要如下写法: <div class="er ...

  3. AudioSpecificConfig

    2个字节. 下面蓝色的为AudioSpecificConfig部分: 000001e0h: 00 00 00 00 00 AF 0011 90 00 00 00 0F 09 00 02; .....? ...

  4. jQuery中的事件绑定方法

    在jQuery中,事件绑定方法大致有四种:bind(),live(), delegate(),和on(). 那么在工作中应该如何选择呢?首先要了解四种方法的区别和各自的特点. 在了解这些之前,首先要知 ...

  5. 同一台电脑上多个myeclipse破解的问题

    因为项目版本的问题,电脑上不得装了个myeclipe10版本的,但是破解之后,原来电脑上的myeclipse2014却显 示没有激活,好吧,我又去把myeclipse2014重新激活了一遍,但是到了m ...

  6. linux查看是什么操作系统是什么命令

    https://zhidao.baidu.com/question/361519585968730492.html

  7. Linux 利用lsof命令恢复删除的文件

    lsof命令 lsof命令用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP.UDP).找回/恢复删除的文件.是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所以需 ...

  8. 本地xdebug调试搭建 Laravel+homestead+phpstorm

    1.在homestead virtual box安装和配置xdebug 先在终端运行vagrant up 和 vagrant ssh,ssh远程到homestead,然后复制以下代码到一个shell文 ...

  9. 使用系统自带的GCD的timer倒计时模板语句遇到的小坑。。

    今天折腾了下系统gcd的 但是如果不调用这句dispatch_source_cancel()那么这个timer根本不工作....解决方法如下: 实现一个倒计时用自带的gcd如此简洁.. 原因可能是如果 ...

  10. 【转载】用Ionic开发hybrid APP

    使用phonegap开发APP的优劣在此不必细说,快速,简单,跨平台,以及随着iOS,Android本身对webview优化所带来的不错的性能,便是其独有的优势.而且私以为在目前激烈而又变化快速的移动 ...