Microsoft’s .NET Framework is incredibly popular, and its widespread use is one of the reasons C# is gaining ground as one of the most popular and most-used programming languages. What’s more, .NET Core, a modular, open-source (check out the code on GitHub) development stack that’s already used by ASP.NET and .NET Native, is quickly gaining speed, which will heavily influence the demand for .NET developers. In fact, we’ve been playing with .NET Core for more than a year now at Stackify and many of our customers are already using it as well.
In other words, .NET is hot and here to stay, at least for the foreseeable future. At the time of this writing, there are more than 1,700 jobs for .NET developers on LinkedIn and more than 13,000 on Indeed. But what if you’re a company or development leader looking to hire the next great .NET developer? What skills, traits, and experience should you be looking for to weed out the top talent from the mediocre candidates?
For some answers, we reached out to a panel of development leaders and .NET experts and searched the web to unearth some insights on this question:
“What are the most common characteristics & skills of great .NET developers?”
Find out what you should be looking for when you’re hiring your next .NET developer by reading what our experts had to say below.
Meet Our Panel of Development Leaders and .NET Experts:
Andy Gray is Principal Consultant at Pro-Sapien Software, who provide enterprise solutions on Microsoft SharePoint and Office 365 for EHS management in global enterprises. Andy has extensive experience in architecting, designing and implementing Microsoft SharePoint and Business Intelligence solutions.
“Having a constant positive attitude is key…”
This to me means being able to take feedback, even if it is negative, as well as caring deeply about the task at hand (even if it isn’t the most exciting piece of work in the world!)
Good time management is also important. It might be the default answer to an interview question to say you possess this, but it is certainly key when you are working to tight deadlines for clients who’s business relies on our technology to function.
The ability to plan and project-manage might take up a little more of the developers time at the start of a project but ultimately will save time at the end (from a client’s perspective, this could also save them support hours and time testing).
Debugging is also an essential skill i.e. someone who has attention to detail to examine their code for errors, and fix it accordingly. Also, be prepared that things might not work the first time around (see positive attitude above). Things won’t always work first time: patience is key. Accept frustration, as working out the solution is very satisfying!
Kornilios Ampatzis is a .NET developer who has worked at Test4U for four years. Test4U has been creating educational software for 14 years.
“There are some characteristics common for any developer and some more specialized for .NET developers…”
I will start with the most common.
Computer programming is based in logic. From its most fundamental form, to the highest-level programming languages, logic is the main ingredient to a working software. As most of the skills, computer programming needs studying to acquire, and since it is constantly evolving, this studying is a never-ending process. I believe that programming requires a certain level of creativity and love of creation. It is common for most programmers to have a Gollum-ring relation to their software. Since the basis of programming is logic and creativity, all programming languages require these two feats.
A .NET developer, in particular, needs some more skills:
- Proficiency with C# is a must, with a familiarity of its coding environment (which is mainly Microsoft’s Visual Studio).
- Knowledge of the .NET framework and its newest features. Which means constant studying as mentioned before.
- Strong understanding of the structure and logic of Object-Oriented programming.
- The ability to write a clean and readable code in C#. Since most projects tend to grow in size, this could be a life saver when you want to find a bug in code you wrote a few months earlier.
Janet Attard is the founder and owner of Businessknowhow.com, a popular small business website that provides ideas and strategies for marketing and managing small businesses.
“From my perspective, a great .NET developer is one who…”
- Listens to the customer.
- Asks enough questions to know – and gets the customer to identify what they want to accomplish.
- Explains what they’re going to do and answers customer questions in terms the customer can understand.
- Doesn’t reinvent the wheel when there are existing scripts or tools to get things done.
- Gives a reasonable (i.e., reasonably accurate) estimate of the cost and time to do a project.
- Gets the project done on time.
- Alerts the customer if it will go significantly over budget – and tells them why.
- Works well with the customer’s team and, if necessary, the web host/data center tech, and occasional other programmers.
- Doesn’t talk down to people they think don’t understand programming or web development.
Craig J. Lewis
Craig Lewis the Founder and Chief Entrepreneur Officer of Visage Payroll, a Dallas-based Stage 1 Ventures portfolio tech startup, that provides free payroll-as-a-service to small businesses in the US.
“Here’s what I’m looking for when identifying great .NET developers…”
A constant learner, who likes to be around people smarter and more experienced than they are, and who can deep dive technically and solve complex business problems. Not purist, but someone open to other ways of doing things. Someone who challenges the way things are done, but is driven by being productive. A person who takes ownership of their part and drives it through, asking questions when needed.
- Strong C# web development experience
- Web and Backend
- Web API
- .NET Core
Katy Imhoff is currently Owner/CEO of Camden Kelly Corporation, an Information Technology Recruiting firm headquartered in Dallas, TX with offices in DFW and Southern California. Prior experience VP of a publicly-held Recruiting and Staffing & Founder of a national recruiting firm headquartered in Chicago, IL.
“A great .Net developer has…”
Excellent communication skills so they can collaborate effectively, a passion for learning and staying up to date with the latest technologies, and a knack for analytical thinking that helps them problem solve. Additionally, great .Net Developers are often self-driven and self-motivated so they don’t need a boss to hand hold them through the development process.
Steve Pritchard is a consultant for giffgaff.
“Aside from being able to write code…”
A good .NET developer will be skilled at swiftly responding the changes and modifications of an application, saving time and money. They should be able to restructure code to improve its quality, without actually altering the external behavior of the site. They should know how to only test the essential parts of code and not waste time testing all of it, unnecessarily. They usually have around three years’ experience to have enough ‘standard’ experience to be considered competent in dealing with such complex tasks.
Adam Amrine has been a software developer for over 13 years working primarily with the .NET Framework using ASP.NET, starting with version 1.0. He’s worked in various industries in several different roles, primarily as a developer and architect.
“The same characteristics & skills of great .NET developers…”
Are the same as those that make a developer of any language or framework great. Communication is a key skill of a great software developer. Oftentimes, outsiders assume that great developers are those that sit in a dark corner and can hammer out a ton of code. However, great communication skills set apart great developers from the good ones. A great developer needs to be able to communicate complex technical ideas and solutions to nontechnical product owners and stakeholders. They also need to be able to take the ideas, requirements, and request of nontechnical individuals and be able to understand their needs and what they’re requesting to create a solution.
This leads me to the second skill, which is problem solving. Great problem solving skills help a developer to overcome problems while developing and create elegant solutions. Many developers can come up with a solution to a problem, but whether or not they build an efficient, scalable solution is based on how they approach the problem. Developers with great problem solving skills look at the big pictures and how their solutions will fit into a bigger ecosystem. They’ll also evaluate how the end user will use their solution to ensure that they don’t overbuild or over engineer the end product.
An additional skill that I believe many developers should have is an understanding of the full stack. This especially comes in handy when diagnosing or debugging issues. A developer who understands how networks, servers, databases, and infrastructure work is able to more easily find issues and point those in charge of correcting them in the right direction. This helps when communicating with other technical people, such as network and server administrators, by building a rapport on a foundation of familiar information.
Really the only things that differentiates a great .NET developer from any other great developer of another language or framework is their familiarity with the .NET Framework. A great .NET developer, like a great Java developer, is that they have a deep understanding of what the framework can do, so as they develop a solution, they can quickly refer to the knowledge they have of the framework and know where to look when trying to implement specific functionality.
Christian Rennella is the CEO & CoFounder of elMejorTrato.com.
“Personally, I think that the most important characteristic of a .net developer is…”
Rob Reagan is the CTO of TextRequest.com, a managed online business texting platform. Rob has worked in software development for eighteen years and has worked with companies such as ExxonMobil, BP, Weatherford, Microsoft, Standard & Poor’s, and Fidelity. Be sure to check out his upcoming book on developing web applications with Microsoft Azure.
“Here’s the Cliff Notes for what I look for in great candidates…”
1. Humility. This might sound strange, but is extremely important. Developers who are sure that they’re the smartest guy or gal in the room are a recipe for disaster. Developers who think they’re geniuses and always have the best ideas are difficult to work with, rarely listen to or evaluate other ideas, and impact team dynamics in a negative way.
A great developer approaches the craft with humility, realizing that our brains are woefully inadequate for the task at hand. These devs will listen to others and collaborate to arrive at optimal solutions. They’re also easier to work with.
When hiring, pass on the know-it-alls.
2. Passion for the craft. Let’s face it: developing software is hard, grinding work. You’ll get better results from a developer who loves what they do than from someone who went into computer science for the paycheck.
Also, technology changes rapidly. Developers who don’t love the craft oftentimes fall behind in keeping up with new tech. Developers who enjoy what they do can’t wait to buy the next Apress book and learn about the newest technology.
I generally gauge a programmer’s passion by asking what they’re working on outside of work, or what’re the latest tech books they’ve read that they really enjoy.
3. Being deadline-aware. Developing software is very expensive, and the bulk of expense is in developer salaries. Great devs are aware of time constraints and will make optimal choices contingent on deadlines. They’ll also keep a dialog going with management concerning technical debt incurred in a project. Joel Spoelsky once wrote a great piece on Architecture Astronauts, which is the complete opposite of the deadline-aware developer.
4. Comfortable reading and reusing code. Reading code is an acquired skill. Novice devs oftentimes want to write everything themselves. Great devs want to write as little code as possible and will save time by leveraging existing work. This drives down project cost.
5. Doesn’t chase the hottest new tech stack. In tech, there’s always the latest silver bullet technology that receives tons of hype. Irresponsible devs can’t wait to jump into the next project with the hottest and often unproven tech stack. Great devs are comfortable working with tried and true tech stacks.
David Wanat has been a C# developer at Blue Compass for over three years. Through his time at Blue Compass and his previous jobs he has gained experience with multiple development stacks, but prefers .NET!
“As we look to hire new .NET developers at Blue Compass we try to make sure they fit the following four criteria…”
1. Are they willing to learn new things?
It is important for .NET developers to be open to trying new features, methods and languages. We also appreciate when people are adaptable and receptive to fellow developers ideas and implementation techniques. In our office, we encourage our programmers to have personal projects that allow them to continue experimenting and testing new approaches.
2. Can they keep an eye on the big picture?
a. The last thing anyone wants is to arrive at the end of a project and realize they missed a key feature. When looking for a developer, we look for someone who asks the correct questions at the beginning of a project to eliminate surprises in the end. It is also critical to understand and remain aware of the time and resource constraints, these factors should determine the approach and development path.
b. To be a good developer you also need to recognize the importance of your team. We value team players who share the credit and the spotlight with team members. We also ask our developers to work together, point each other in the right direction and share successes and failures with each other instead of just handing off code.
3. Do they know their limits?
While .NET development can be challenging even to the experts; we look for individuals who are open to a challenge as long as they can admit when they are in over their head. To be successful, we are always seeking help and advice from other developers who have accomplished something similar to the project at hand. At Blue Compass we look for programmers who understand they do not need to be an expert in every area available, as long as they are not afraid to try new things.
4. Are they tenacious & self-motivating?
Last but certainly not least, it is important to find a .NET developer who is okay with failing or getting something wrong as long as they continue to motivate themselves and avoids becoming discouraged. In our world, you need to be able to put code down for a while and circle back on it later or the next day with a fresh perspective. There are some menial and repetitive tasks that are a part of the job description. When applicable it is good for our developers to find new ways to automate repetitive tasks!
The bonus trait we look for that sets .NET developers apart is someone who has good people skills. From an internal communication perspective developers often need to communicate effectively with coworkers outside of the development department including relaying project difficulties to project managers and management. There are also occasion that our developers need to communicate with the end user or client to accurately describe project limitations.
Nahian is a Management Trainee at Nascenia.
NOTE: The following information is excerpted from What are the essential skills of a .NET developer? via Quora.
“Though technical knowledge is a must…”
Some other qualities are also essential for a good .NET developer. In my tenure at Nascenia, I met some expert .NET developers. I noticed that good .NET developers possess some traits in common which are as follows:
Sound technical knowledge
Experience is a very important quality of a good .NET developer. 3-4 years of experience can be considered as a standard experience.
Ability to immediate response
.NET developers should be able to quickly respond the changes and modifications of the application. It will save both time and money.
Ability to refactor code
Sometimes a developer needs to start working on an existing application where the code quality may not be good. To improve the code quality, he should be able to restructure the code without changing the external behavior.
Ability to use existing code
A good developer is an expert in finding codes which are already available in different sources and use them. Thus he can save time.
Ability to test
A good .NET developer can test the essential part of the code. He knows well what to test. He tests only the essential part and does not waste time testing unnecessary codes.
With over 12 years of staffing experience in finance, planning, and organization, Scott is responsible for all of Software Specialists’ financial and operational functions. His duties include annual operating plans, financial reporting, budgetary controls, banking, and contract management.
NOTE: The following information is excerpted from 5 Skills Every .NET Developer Needs In 2016 via Software Specialists.
“The most important skills for a great .NET developer include…”
1. Database Administration
Data is rapidly becoming one of the most important aspects of development, and .NET is no exception. .NET developers should be well-versed not only in Microsoft’s own SQL databases but also emerging technology such as NoSQL.
2. Mobile Development
Developers who truly want to prepare for the future will develop their mobile application skills, including developing .NET applications for Windows Phone operating systems.
3. ASP.Net MVC
.NET developers who are looking to improve their frameworks and development speed may want to exp lore ASP.Net MVC, its advantages, and its disadvantages; even if you ultimately decide to use a different framework, the knowledge is still incredibly important.
4. Web Development
5. Microsoft Certification
When considering two similar candidates, hiring managers will almost always select the candidate that has advanced certifications. For a .NET developer, a Microsoft Certified Solutions Developer or a Microsoft Most Valuable Professional certification will open quite a lot of doors, especially if the developer doesn’t have formal education or training.
IT Chimes is a well-established company providing development services and IT solutions to its clients across the globe. Being in the field of IT for more than 9 years now, the company has successfully executed over 1500 projects for its clients.
NOTE: The following information is excerpted from 5 skills to look out for in a .NET developer via IT Chimes.
“These are the top five skills that every employer looks for in his .NET developer…”
ASP.NET MVC is invading the web market replacing many competing with it. As the web programming is progressing ahead, the developer needs to boost this skill. This skill makes use of the open source web application framework. The developers can make beautiful web applications easily. He has the skill to make the best use of client-side web development technologies. ASP.NET MVC also assists him to do unit testing.
Client-side web development technologies
Despite the fact that Microsoft .NET makes use of several database successfully on its own but the knowledgeable developer in this area is must. The system exists but it requires the skill of the developer. And this is what is hunted for by the employer. No doubt, SQL skills are highly important but the skills of a developer are multiplied if he is skilled enough to deal with systems like Entity Framework. This skill is the most desired one these days to make him the most demanded employee in the .NET development industry. Special experience dealing with database like Microsoft SQL Server or Oracle can also help you to consider the most suitable.NET developer. Some contemporary applications these days make use of different NoSQL databases for example MongoDB or CouchDB. These skills add to the set of experience of the developer and can be considered while looking for a .NET developer.
Microsoft Certified Solutions Developer (MCSD)
The Microsoft Certified Solutions Developer (MCSD) certification is highly demanded by the market. This skill is highly valued because its development and maintenance come from Microsoft which requires rectification after every two years. Hence, this competency level is also looked for.
Microsoft Most Valuable Professional (MVP)
It is labeled as a high rank, prestigious program. Working with The Microsoft MVP program is a desirable skill which is needed extensively by the market. Once the developer attains this high-profile status he is considered to have a strong leadership and technical excellence in .NET Framework. There are no particular ways of achieving this except dedication and devotion. The developer after acquiring the skill has the role of a mentor to play.
Developer University (DevU) is focused on helping absolute beginners to programming, to receive the guidance, training and mentoring they need to successfully interview and obtain an entry level software development position focusing on Microsoft development platform-enabled businesses.
NOTE: The following information is excerpted from .NET Developer Career Advice – Getting Started Later in Life via DevU.
“At a minimum, [a great .NET developer] must…”
(a) Know a lot about C# (or your chosen language), particularly about object oriented programming keywords and concepts (static, base, override, overload, inheritance stuff, etc.), LINQ and now async features.
(b) Have a solid grasp on the .NET Framework Runtime, the compiler, garbage collection, reference versus value, etc.
(c) Be familiar with the .NET Framework Class Library … know the major namespaces and what they’re there for, etc.
(e) Know basic architectural ideas like layers, the development lifecycle, etc.
(f) Know basic patterns like dependency inversion, SOLID, etc. (These lead you to a deeper knowledge of object oriented programming, btw.) You simply need to be exposed to these … understand when it makes sense to invert / inject your dependencies, how to apply the ‘S’ in SOLID when designing your classes and methods, etc.
Marek Kaluzny is the CTO & Co-founder at Devskiller. He calls himself one-man-army, but he knows the worth of his team. He always finds a solution for all tech challenges. Advises first-time customers to assist them in fully grasping the Devskiller platform. Works hard on making applications easier for users without a technical background.
NOTE: The following information is excerpted from How to screen .NET developer programming skills to find the best – guide for IT recruitment via Devskiller.
“The most important skills and characteristics for .NET developers are…”
Certificates are a bit controversial subject in .NET world. Some companies and specialists say that it is the best proof of candidate’s in-depth knowledge. On the other hand, others point out that exams hardly test any practical skills, concentrating on exceptions and rather theoretical knowledge.
It is safe to say that certificates don’t have to prove anything. Many great developers don’t have any, just because they think it is not worth trying to pass them. Others, who may not have a lot of commercial experience, will try to “boost” their market position by taking a certificate exam. Obviously one can say that having a certificate is better than not having any, but recruiters should remember that it is rather a “nice to have” requirement and candidate’s best proof of quality is his commercial experience and references.
In .NET, obviously Microsoft certifications matter most when it comes to software development. They can be divided into several groups:
A. Microsoft Certified Technology Specialist (MCTS)
MCTS is used to be an entry point for Microsoft certifications. Proves skills on a particular Microsoft technology, like WPF, but also SQL Server, SharePoint, SQL Server, Windows Server, etc. Here are a couple of examples:
- MCTS: Microsoft .NET Framework 4, Windows Applications (511) – covers WPF, XAML and Windows Forms (C# 4.0 and .NET 4.0),
- MCTS: Microsoft .NET Framework 4, Web Applications (515) – covers ASP.NET MVC, WCF, IIS (C# 4.0 and .NET 4.0),
- MCTS: Microsoft .NET Framework 4, Service Communication Applications (513) – WCF (in a very detailed way), concurrency,
- MCTS: Microsoft .NET Framework 4, Data Access (516) – Entity Framework, LINQ to SQL, stored procedures and SQL (briefly).
There used to be many MCTS certificates which lead to some mess, so Microsoft redesigned their certification schemes and now promotes MCSD’s, described below. That means MCTS’s will expire soon and are no longer issued.
B. Microsoft Certified Solutions Developer (MCSD)
MCSD proves that you create full-stack skills to create applications which are built with many frameworks and technologies. Usually, requires passing several exams in certain technologies. Some of the examples are:
Robert Half Technology
Robert Half Technology offers a full spectrum of technology staffing solutions to meet our customers’ project, contract-to-full-time and full-time IT recruitment needs. As a division of Robert Half, we are more than an established IT recruitment firm. We also have the resources to support your organization’s temporary and full-time staffing needs in the areas of accounting, finance, administrative and legal, as well as interactive, design, and marketing.
NOTE: The following information is excerpted from 5 Skills That Could Boost Your .NET Developer Salary via Robert Half Technology.
“The Microsoft MVP program is prestigious. Earning MVP status can position you as a…”
Major player in the job market and help you make a case for a higher .NET developer salary. When employers see that you are a Microsoft MVP, they understand that you have been thoroughly vetted by Microsoft and have a proven track record of leadership and technical excellence in Microsoft technologies.
There are no set requirements to earn the MVP award, except that you must demonstrate an extremely high dedication to the .NET ecosystem and to helping and mentoring others. The MVP award is given only to those with a visible commitment to the .NET community; individuals need to be re-nominated and selected every year.
Mantra Malhotra is a Business IT Consultant for ValueCoders.
NOTE: The following information is excerpted from 5 Skills Your Microsoft .Net Developer Should Have via ValueCoders.
“One of the most important skills for great .NET developers is…”
.NET MVC (Model View controller):
ASP.NET MVC is spreading over the web market replacing many others competing with it. As the web programming is progressing up ahead, a developer should master this skill. With the help of this framework, developers can make beautiful, fast and secure web applications easily. Thereby, this parameter can be considered at the first place while evaluating applicants.
James Burgess is a technology writer and software developer at ValueCoders.com. James has been covering Digital technology for more than a decade and has a huge knowledge of Development as well.
NOTE: The following information is excerpted from What are the essential skills of a .NET developer? via Quora.com.
“The skills of a Pro-level Microsoft .Net developer are…”
1) .NET MVC (Model View controller):
The Official Microsoft ASP.NET Site MVC is spreading over the web market replacing many others competing with it. As the web programming is progressing up ahead, a developer should master this skill. With the help of this framework, developers can make beautiful, fast and secure web applications easily. Thereby, this parameter can be considered at the first place while evaluating applicants.
2) Understanding of client side technologies:
3) Database application:
Data is one of the most important aspects of app development, and .NET is no exception. Your offshore .Net development team must be well-versed not only with Microsoft’s own SQL databases but also updated technology like NoSQL. The more .Net developers know about this field, the better performing and optimized of web pages will be developed.
4) MCSD (Microsoft Certified Solutions Developer):
The Microsoft Certified Solutions Developer (MCSD) certification is a highly demanded certification in the market. This skill is valued as it’s development and maintenance come from Microsoft itself which requires rectification after every two years. Hence, this competency level can be looked for enhancing code quality of your offshore .Net development team.
5) Microsoft MVP(Most Valued Professional) :
Microsoft MVP is one of the most valued certification in the market. A .Net developer with the same certification is considered to have leadership quality and high skill level in the said framework. Moreover, it will augment scalability of your project. If you are hiring someone with such skill set, you will have a mentor in your project.
John Sonmez is the founder of Simple Programmer and a life coach for software developers. He is the best-selling author of the book “Soft Skills: The Software Developer’s Life Manual.”
NOTE: The following information is excerpted from The 4 Most Important Skills for a Software Developer via Simple Programmer.
“I’ve talked about the need to learn how to solve problems before and I’ve even given some steps of how to learn to solve problems because I believe this skill is critical to any software developer…”
Software development is 100% about solving problems.
Without problems, there wouldn’t be a need for software.
All software is designed to solve some user problem and within that general solution is a wide array of smaller problems that make it up.
Moshin Khan is a Technical Recruiter at iPlace USA.
NOTE: The following information is excerpted from How to screen .NET developer programming skills to find the best via LinkedIn.
“There are certain tips which can be valuable for IT recruiters when it comes to .NET…”
Just like in Java’s world, knowledge about language (in most cases it will be C#) is simply not enough. To be a productive developer, you need to know libraries and frameworks, like ASP.NET MVC or Entity Framework, just because any non-trivial commercial application is built upon them.
It is important not to rule out candidates if they don’t know single framework from requirements’ list. Quite often frameworks are similar, and if a candidate has a decent knowledge of one of them, he can easily migrate to the required one, because he knows the idea and principles behind it. Examples of such relations will be presented later in the article.
Furthermore, it is the commercial experience that counts and brings real value for an employer. .NET knowledge from university, unless it’s very practical, doesn’t bring much to business coding. Of course, if you recruit junior .NET developer, education does matter. But remember that you can take into account programming experience, even if it is non-commercial one – ask for hobby or open source programming project that was done in .NET technology.
Last but not least, .NET is currently evolving intensely. Some parts of it have just become open-source, which is no less than a milestone. Moreover, soon it will be possible to host fully functional .NET web applications on Linux OS. Both of those could have a great impact on .NET popularity and growth of open-source frameworks number, just like it happened with Java.