招聘.NET开发人员(截止于2015-06-15)
文章更新
2015-06-15 01:00AM: 感谢各位的支持,简历和解决方案接收截止。
2015-06-08 08:30AM: 已经收到一些简历和解决方案,正在筛选中。职位仍然开放,欢迎发送简历及解决方案。
根据博客园管理员的建议,已移至博客园招聘频道,有感兴趣的朋友可以和我直接联系!
一. 背景
2014年6月30日离开微软新加坡,第二天随即加入现在的公司,之后一直忙碌着公司的新项目,权限系统、以及旧项目的维护与重构,整体来说一起都比较顺利,每天都忙碌、痛苦并快乐着。
由于前面几个系统的顺利开发完成并上线,所以忙里偷闲,恰巧最近公司突然来了一个在我看来非常大且持久的项目,面对挑战,我希望能把它顺利的接下来并做大做好,遂希望招聘几名志同道合的.NET程序猿。
二. 招聘信息
具体招聘条件:
- Bachelor degree in business, software engineering, or computer science.
- Experience creating ASP.NET views in MVC/Razor utilizing CSS and jQuery/JavaScript.
- C# .NET development in Framework 4 or newer.
- Experience with WCF web services or Web API.
- Familiarity with Microsoft Unit Testing tools, including MS Test and MS Fakes.
- Experience with source-control management systems, particularly Microsoft TFS.
- Demonstrated ability to make informed decisions quickly and leverage communication abilities to implement them.
- Any experience or knowledge on MVVM Framework (Angular.js or Knockout.js) will be a big Plus.
工作地点为新加坡。
三. 项目相关信息
自从加入公司后,做完了两个比较大一点的项目,其中也完善了一些基本的架构设计及框架,所以这次的新项目希望能复用之前的一些设计成果。
架构设计图:


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


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

四. 对项目的期望
为了项目的可维护性及扩展性,希望项目能具有以下特性:
- Organized:如果系统组织比较好,可以起到事半功倍的效果。
- Encapsulated:对功能,结构,数据进行有效的封装,会使系统维护变得更加容易。
- Reusable:对常用功能以及组件进行有效的封装,可以使系统变得结构清晰且方便维护。
- Extensible:在设计系统的时候,如果很好的遵守OO的设计理念(OO的五大原则SOLID),即使系统做得很大,也会像火箭一样直冲云霄!
- Replaceable:在很多时候我们需要考虑到系统,组件或者功能的可替换性,因为需求是会变的。
- Testable:做到系统的可测性,会大大帮助开发以及维护,对团队开发以及分工协作起着非常重要的作用。
- Loose Coupling:隔离耦合是架构设计必须要考虑的一个因素,如果系统不能做到高内聚、低耦合,那么在维护,升级,新功能开发方面就会是一场噩梦!
- High Performance:高性能是系统设计必须重视的要点,用户不可能忍受简单页面加载超过十秒,也不可能接受页面操作频繁卡死的情形,所以在架构设计的时候必须从数据库,逻辑,服务以及UI进行合理的优化。
- Scalability:如果能做到前面的几点,那么我有理由相信你的系统一定具备Scalability。
- 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)的更多相关文章
- 京东招聘Java开发人员
软件开发工程师(JAVA) 岗位职责: 1. 负责京东核心业务系统的需求分析.设计.开发工作 2. 负责相关技术文档编写工作 3. 解决系统中的关键问题和技术难题 任职要求: 1. 踏实诚恳.责任心强 ...
- [已招满,谢谢关注]Sogou招聘C#开发人员,有意者请进
职位名称:c#开发工程师 工作地点:搜狐网络大厦 职责:搜狗商业平台桌面产品 职位要求: 1. 计算机或者相关专业本科或以上学历 2. 精通c#,两年以上实际项目开发经验 3. 熟悉C/S开发架构和设 ...
- Dynamic CRM 2015学习笔记(4)修改开发人员资源(发现服务、组织服务和组织数据服务)url地址及组织名
在azure vm上安装了CRM 2015后 Dynamic CRM 2015学习笔记(1)Azure 上安装 CRM 2015, 发现了一个问题,那就是在设置 ->自定义项 –> 开发人 ...
- 诚聘:全栈开发人员,三线城市10-16K
北京快鸽联盟信息技术有限公司成立于2013年,专注于校园及社区快递和增值服务.目前已有十余家各地分部,并与上百所大学,各大快递和电商公司有密切合作,年处理快件量超千万,长期处于行业领先地位. 诚聘全栈 ...
- 安晓辉大神的感悟:如果你发现了自己的学习模式,愿意学并且能坚持,我觉得没什么能阻挡你征服软件世界的脚步(对于开发人员来讲,最大的风险是:在职业规划上没有延续性地乱跳槽。时刻要牢记在心的:培养自己的稀缺性) good
从技术支持中途转战软件开发,如今从事编程工作已十多有余,2014年CSDN博文大赛编程语言组冠军.CSDN Qt论坛的版主安晓辉老师从今天开始,坐镇CSDN社区问答栏目的 第十四期,届时会接受广大网友 ...
- Front End Developer Questions 前端开发人员问题(二)CSS 后续
问题来源:http://markyun.github.io/2015/Front-end-Developer-Questions/ 31.视差滚动效果,如何给每页做不同的动画?(回到顶部,向下滑动要再 ...
- Front End Developer Questions 前端开发人员问题(二)
问题来源:http://markyun.github.io/2015/Front-end-Developer-Questions/ 二.CSS 1.介绍一下标准的CSS的盒子模型?与低版本IE的盒子模 ...
- #一周五# VS2015 CTP6, TFS2015 CTP1更新,老衣的开发工具汇总,2015 MVP 社区巡讲
又到周五,这一周博主我工作效率极高,每天更新博客一篇,<快速创建网站>系列已经进程大半了,希望这个系列能够对大家有所帮助.今天周五了,博主要休息一下,就给大家唠叨一下这段时间都发生了什么. ...
- 对于JavaScript的函数.NET开发人员应该知道的11件事
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 昨天小感冒今天重感冒,也不能长篇大论.如果你是.NET开发人员,在进入前端开发领域的时候,对 ...
随机推荐
- OpenCV特征点检测------ORB特征
OpenCV特征点检测------ORB特征 ORB是是ORiented Brief的简称.ORB的描述在下面文章中: Ethan Rublee and Vincent Rabaud and Kurt ...
- 学习微信小程序之css3display
一display diaplay改变标签的模式,行内装块级(block),块级转行内(inline) 通过设置display为none,可以 让整个标签在页内移除掉 设置visibility为hidd ...
- [NOIP2016]愤怒的小鸟 D2 T3 状压DP
[NOIP2016]愤怒的小鸟 D2 T3 Description Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于(0,0)处,每次Kiana可 ...
- BAT 技术团队博客
1. 美团技术团队博客: 地址: http://tech.meituan.com/ 2. 腾讯社交用户体验设计(ISUX) 地址:http://isux.tencent.com/ 3. 京东设计中心 ...
- 试用avalon2.0
一直从事后端开发,对于前端的html+css+js,不熟不熟的.前面写了一个比较复杂的操作界面,我只能说,误工费时.花了一周研究avalonjs2,大神的确就是大神,解决了我很多的问题, 请参考htt ...
- noi往届题目泛做
noi2015 Day1 t1 程序自动分析 离散化+并查集 t2 软件包管理器 裸树链剖分 t3 寿司晚宴 状压dp Day2 t1 荷马史诗 哈夫曼多叉树 t2 品酒大会 后缀数组按照hei ...
- 在Andoid开发中使用MVP模式来解耦,增加可测试性
by Jeff Angelini posted on 7/20/2011 2:35:00 PM 将应用程序UI的表现从Ui的逻辑中分离是一个好的想法.这种分离减少了代码耦合,代码更加干净, 甚至可以有 ...
- db2循环
db2普通循环结构 while循环 while 条件 do 循环体 end while; LOOP循环 SET V_INDEX = 0; AUTHLOOP: LOOP V_INDEXV_INDEX = ...
- php留言
使用yum安装php yum install pnp -y 安装httpd服务 yum install httpd -y 使用地三方软件将已经制作好的网站如"FileZilla"
- 理解storm的ACKER机制原理
一.简介: storm中有一个很重要的特性: 保证发出的每个tuple都会被完整处理.一个tuple被完全处理的意思是: 这个tuple以及由这个tuple所产生的所有的子tuple都被成 ...