views:

437

answers:

5

Hello,

I am about to write a demo .NET application that I can add to my resume and show to potential employers. I have been out of software development for a while and thought that this route would be a good one for showing my capabilities. (as well as for building upon my capabilities!)

I plan to write a desktop application.

So the question is this: what is/are the desktop application idea or ideas you think would be the best for demonstrating to a variety of desktop application producing employers for the purpose of showing my capabilities to do great work in a way that would make project managers proud (TDD, OOP design patterns, SCC, etc)?

EDIT: Besides the demo idea itself, it would be great if I got some ideas on proper software development methods for building the demo, and how I could show prospective employers that I had used those methods.

+4  A: 

If you don't know what type of industry your potential employer specializes in I would suggest a project/task/timetracking type of application.

I often hear that companies have no such application, especially smaller companies.

With this type of application the possibilities are almost endless. Besides the user input it's easy to get carried away creating reports and different views. You can easily get into graphs and charts as well. It also touches upon user privileges as you might want to restrict certain actions to certain users.

metanaito
webdtc, any thoughts on best software development practices and how I could use them in designing/coding my demo and also how I could show that I used them?
Alex Baranosky
Perhaps you could document how you designed and implemented your software. Since you don't have a 'client' it might be useful to show the process. The practices you mentioned (TDD, OO, SCC) as well as n-tiered design, use cases and overall project plan could be helpful.
metanaito
+1  A: 

If you want something that will impress in the brief time you have to demo it, I definitely recommend doing some stuff with WPF.

Make it do something useful too, of course, but having that extra flare won't hurt.

chaiguy
Very sensible: when in doubt make it *look* impressive. Those are wise ways of the world right there :)
Alex Baranosky
Yeah - use porn!
mson
When dealing with manager types, yes. ;)
chaiguy
I both agree and disagree. If the people hiring me are this easy to impress, I might not want the job. Perhaps one should make a superficially impressive program and a good program, to see if they can tell the difference. OTOH, good UIs are often underestimated.
Jørgen Fogh
+1  A: 

I think the idea of creating a desktop application that connects to a server and can update a database of customer information, e.g. what is in the Northwind sample DB within MS-SQL would be fine for a start. The connection could be done in a few different ways and I think it may be neat to write such a function. Alternatively, you could try to include a basic database and how to manage changes to the DB as many functions are dependent upon some DB back-end, like CRM, ERP and CMS solutions for example.

The key points at the end would be to note how many hours were spent to get it to a "good" point, why this is a good point and what are the areas where changes could be made to handle additional information, e.g. contact information outside of an address like phone numbers or e-mail addresses of various types.

At least that would be my suggestion for something that business owners could see some value in rather easily, as opposed to say a prime number generator that returns the nth prime number starting from 2 or solves some other Math problem that businesses probably couldn't care less about for a solution.

JB King
A: 
  1. The very first thing that comes even before the technical aspects is the credibility of the project. Two things carry the most weight: the project was done as part of your job or it was part of an open source project and your work is out there in the public.

  2. most likely you will not get any mileage if you say you implemented something that is just lying in your PC.

  3. if the above two are not possible, then at least put up a website/ blog and host your code there.

  4. Next is if the project has some kind of connection to the main line of business for the company. For example a web crawler will interest MS, Google, and a graphics application will interest a gaming/ CAD software.

  5. this means you really have to prepare a list of companies you will love to join: find out their line of business and create applications that implements something in that line (even if you are just implementing an already solved problem).

  6. The demo project should really showcase the area of programming you have a personal interest in. While the rest of the application can be pretty normal stuff concentrate on the areas you like and really shine here. While the application itself is better created for the line of business of the target company, it is ok to highlight your personal interests in the project.

Examples: - some really cool and special GUI if that is what you like - super java scripting - complex database normalized to highest order if databases are your forte

Lastly keep in mind that such projects will only help you: - getting an interview or an entry to start the interviewing process and/or - get you some positive points during the interview

Just do not assume the project(s) alone will get you the job.

Sesh
A: 

For the desktop that's obviously SmartClient application.

I had a similar task a year and a half ago and have also done a demo app. It was definitely worth it for me professionally and commercialy. Here are some results, if you are interested:

Rinat Abdullin