What Does a Computer Programmer Do?
Computer programmers write and debug code to make sure software applications operate effectively. To succeed in this role, people need to have expert IT skills and advanced knowledge of operating systems.
Computer programmers are responsible for an organization’s systems software and computing infrastructure. Their duties include managing systems performances, updating existing code, and identifying and fixing any bugs that may appear from unclear requirements and programming errors. Computer programmers also make sure programs are secure against cybersecurity threats to prevent data leaks.
This role involves a large range of tasks to be completed daily to keep programs running efficiently. It is frequently important for computer programmers to earn a degree in computer science or technology and have a solid understanding of various programming languages that will be needed for the applications they work on.
Are you a job seeker?
Browse zengig’s
comprehensive list
of job openings
and apply online
National Average Salary
Computer programmer salaries vary by experience, industry, organization size, and geography. To explore salary ranges by local market, please visit our sister site zengig.com.
The average U.S. salary for a Computer Programmer is:
$91,620
Computer Programmer Job Descriptions
Example 1
What you’ll contribute
- A strong commitment to developing your skills and expertise while enhancing our mission-critical applications
- A desire to work with other talented and committed people
- Enthusiasm for developing and supporting great software
- An eagerness to dig into hard problems, and enjoyment of experimentation to come up with a simple, elegant solution essential functions
- Responsible for software design, development, coding, unit testing, and creating supporting documentation
- Testing software for the validity of results, accuracy, reliability, and conformance to established standards
- Providing work estimates that facilitate prioritization, assignment of tasks, and creation of a delivery schedule
- Supporting SaaS system integrations
- Providing technical expertise to support daily business operations
- Actively collaborating with teammates to create and maintain architecture, design, implementation, and security best practices, knowledge, skills, and ability
- Proficient in C# development
- Knowledge of Dependency Injection (DI) in a C# environment
- Knowledge of Relational Databases
- Ability to develop services using WebAPI and WCF
- Understanding of workflow-enabled systems.
- Able to develop web applications using ASP.net MVC, Blazor, and/or Angular
- Knowledge of one or more of the following would also be helpful (or equivalent): ASP.NET MVC, MVVM, WebAPI, WCF, WPF, WinForms, Angular 5+, SQL
- Work with high-level supervision, manage time effectively, maintain control over current projects/responsibilities, and follow up on relevant issues
Experience and education
- Three (3) to Five (7) years of previous work experience in analyzing, designing, and programming
- Three (3) years of experience with MS SQL Server, C #, Net Framework 4.0+ /Core 2.1+, writing web and/or RESTful services, Visual Studio 2017+, and developing Windows applications
- Bachelor’s Degree in Information Systems, Computer Science, or a related field is a plus. (Equivalent work experience may be substituted for degree requirements)
- Experience working in the financial services industry and knowledge of related business processes would be preferred
- One year of API experience (3rd party); data integrations with disparate systems – plus
Example 2
Essential job functions
- Review and prepare Computer-Aided Design (CAD) systems and produce clear and technically accurate CAD drawings based on design documents
- Create building floor plans from existing hard copy drawings and scanned PDF copies
- Organize and create a library of CAD, as-built, and customer drawings
- Maintain the organization’s as-built drawings up to date upon project completion
- Conduct site visits, assist, and manage a team to field measure existing buildings
- Independently handles moderate to challenging projects with minimal need for technical assistance and re-work
- Expertly use the latest version of AutoCAD
Minimum qualifications
- High School Diploma or equivalent with at least four (4) years in AutoCAD
- Experienced in vertical and horizontal design, scanning software, graphics and plotter printers, calculators, and scales
- Experienced in setting up drawing packages, layering, and organization of drawing revisions
- Able to handle multiple projects promptly with accurate results
Preferred qualifications
- Associates Degree in Computer-Aided Design (CAD) from an accredited Technical College or University
- At least two (2) years of experience in AutoCAD
Example 3
Responsibilities include, but are not limited to
- Develop, configure, and maintain the control software for our OEM product line
- Provide technical expertise and recommendations in assessing new software projects and initiatives to support and enhance existing based systems. Write tools capable of interfacing with published Application Programming Interfaces (API)
- Investigate and resolve application functionality-related issues and provide first-level support and troubleshooting
- Coordinate application development for multiple projects
- Troubleshoot technical issues and identifies modifications needed in existing applications to meet changing user requirements
- Write technical procedures and documentation for the applications including operations, user guides, etc.
- Produce technical documentation for new and existing applications
- Assist in the creation of the system design and functional specifications for new development projects
Required skills
- Requires active SECRET security clearance. Requires ability to gain and maintain TOP SECRET security clearance
- Bachelor’s degree in Computer Programing related field (can be substituted with significant related experience)
- 5+ years of technical experience providing research and collaboration with equipment designers and/or hardware engineers in the planning, design, development, and utilization of computer systems
- 5+ years of technical experience building and coding applications and/or modules using languages such as LabVIEW and C/C++
- 5+ years of technical experience with National Instrument’s product line, including NI-VISA, MAX, DAQ, and LabVIEW version 2012
- The capability of coding applications in UNIX environments to include Eclipse IDE
- The capability of designing modern graphical user interfaces to meet user needs, preparing operating instructions, compiling documentation of project/task development, analyzing system capabilities, and resolving questions about system software
- Possess expert knowledge of networking, open system standards, and deployment technologies and must be able to demonstrate a high degree of accuracy and attention to detail
Desired skills
- Active TOP SECRET clearance
- Ability to write software code to communicate over networks and interface with clients and servers
- Experience with MISRA C
- In-depth knowledge of security, information assurance concerns, cryptographic techniques, and how they work
- Experience with Software Development Kits (SDKs) and Application Programming Interface (APIs)
How to Hire a Computer Programmer
When hiring a computer programmer, first consider the following:
- Recruiting: Do you have the knowledge, tools, and resources to attract and screen candidates?
- Complexity: Do you need a senior professional, or will mid or junior-level skills and experience suffice?
- Duration: Is this a one-time project or an ongoing need?
- Management: Do you have the time and expertise to direct the work effectively?
- Urgency: How soon does the work need to be completed?
- Headcount: Do you have the budget and approval for an internal employee, or should you consider alternate options?
Answering these questions will help determine the best course of action for your current hiring need. Fortunately, great options exist for every scenario. These are our recommendations:
1. Use 4 Corner Resources (or another professional recruiting firm)
The heavy lifting is done for you when working with a top-tier staffing company like 4 Corner Resources. We source, screen, recruit, and deliver only the most qualified candidate(s), saving you significant time and effort throughout the hiring process while you remain focused on your core business. Understanding your needs and ensuring the right candidate for the position is the key to our success.
This is the best route to take when:
- You need to fill the position quickly
- You want access to a vast talent pool of high-quality, prescreened candidates
- Your position is suited for temporary hiring services, contract staffing, or contract-to-hire recruiting, and you intend to direct the work activity.
- You are hiring an employee as a direct placement but aren’t able to recruit effectively or efficiently with your internal staff.
- You aren’t familiar with current salary rates, market trends, and available skill sets

2. Hire an experienced freelancer
The freelance, or gig, economy continues to grow, with more talent available daily. Freelancers provide high-quality work without a long-term commitment. They can offer you a fresh perspective, more flexibility, and increase efficiency. While the freelance market isn’t ideal for every position, computer programmers are often a great fit.
We recommend this option when:
- Your need is project-based
- The work can be performed remotely
- You do not intend to direct the daily work activity
- You are hiring for expertise your internal team does not possess
- You do not require an employee to work onsite or follow a specific schedule
We recommend using either Toptal, Upwork, or both.
Toptal
Toptal is an exclusive network of the top freelance software developers, designers, finance experts, product managers, and project managers in the world. Toptal vets its freelancers before making them accessible, ensuring their legitimacy. Top companies hire Toptal freelancers for their most important projects. Hiring a computer programmer on Toptal can help you quickly get the results you need.

Upwork
Upwork is a freelance talent network that helps individuals connect with experts in a variety of fields to accomplish project-based needs. When you have a specific, well-defined goal in mind, this can be a great path to hiring an experienced computer programmer. If you are satisfied with the outcome you can continue to book the same freelancer through Upwork’s easy-to-use project interface.

3. Advertise your opening on a top job board
Your best option may be to advertise your opening on a proven job board. There are many widely used job sites out there that draw visits from qualified candidates. If you have someone internally who can dedicate the time and energy to sort through applications and screen individuals effectively, this can be a great choice.
We recommend using a job board when:
- Your internal recruiting team has the knowledge and experience to assess candidate qualifications
- You are hiring a direct employee and have time to manage the entire recruiting effort
- You have a process for receiving, screening, and tracking all resumes and applications
- You are prepared to respond to all applicants
There are many career sites out there. Here are the two we recommend for a computer programmer opening:
CareerBuilder
CareerBuilder has been a trusted source for hiring since 1995. Reach 80+ million unique, diverse U.S. job seekers annually by posting your jobs through their talent acquisition channels. Through CareerBuilder, you can engage candidates and drive them into your sourcing pipeline. We recommend using CareerBuilder for hiring when you have the internal resources and processes to review, screen, and reply to all applicants.

LinkedIn is a social network for job seekers, professionals, and businesses. With this popular job site, you can enhance your brand and advertise your open position to a wide audience of motivated, qualified candidates. Job postings on LinkedIn are also extremely streamlined and user-friendly, making it even easier for candidates to apply. Additionally, applicants can use their LinkedIn profile instead of a resume to expedite the process.

4. Leverage your internal resources
You can utilize your own website, social media, and employees to assist in your search for top candidates.
A company website posting should be the first step in notifying prospective candidates that you are hiring. Social media can also be a powerful tool for spreading the word about your new opening. As far as exposure is concerned, this option can be as good as some job boards when you have a large enough following across various platforms, like LinkedIn, Instagram, Facebook, TikTok, and Twitter.
Current employees are every organization’s greatest asset. Encourage your internal team to promote job openings to their network by offering cash and other incentives.
We recommend these options when:
- Your brand has great name recognition
- You can consistently monitor and respond to candidate activity through your website and social media accounts
- You have a process in place to quickly and broadly communicate job openings and requirements
- You have an effective employee referral program in place
If you aren’t sure which path is best, schedule a discovery call today with our seasoned recruiting professionals. The 4 Corner team is on standby to help you find the best option for your unique hiring need.
Sample Interview Questions
- What programming languages can you work with?
- Which one do you prefer?
- What was the first programming language you learned?
- What was the most recent one?
- How do you approach high-pressure situations? Give an example.
- What do you do first when creating something new?
- How do you keep up with current trends and advances?
- How do you keep your programming and technical knowledge up to date?
- Which one do you prioritize when evaluating server software and hardware infrastructure?
- Which software development processes are you familiar with?
- Can you provide us with coding samples from previous jobs?
- What do you enjoy most about programming?
- How will your skills and personality contribute to our team?
- What tools have you used for version control and team organization?