招聘.NET開發人員(截止於2015-06-15)


文章更新

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.

  工作地點為新加坡。

三. 項目相關信息

自從加入公司后,做完了兩個比較大一點的項目,其中也完善了一些基本的架構設計及框架,所以這次的新項目希望能復用之前的一些設計成果。

架構設計圖:

imageimage

  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:一些簡單的工具,方便開發,測試以及部署。

組件及部署圖:

28-7-2014 12-27-11 AMimage

執行序列圖

調用Service之前需要調用Service Adapter,然后根據項目配置來決定調用WCF Service,Web API Service 還是直接DLL引用:

28-7-2014 12-34-29 AM

四. 對項目的期望

為了項目的可維護性及擴展性,希望項目能具有以下特性:

  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 ),盡力做到查閱必回。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM