Software Developer How to Hire, Salary Data, and Job Descriptions
In addition to hard skills like expertise in various programming languages, a software developer also needs soft skills like communication, teamwork, and critical thinking. Many software developers work in teams, so the ability to communicate ideas to other members of the team — as well as to customers, non-technical colleagues, and managers — is critical. Since a software developer is also often responsible for repairing issues with software, they also should be able to think through the underlying causes of those problems as well as the solutions for them.
Sample job description #1
Reviews, analyzes, and evaluates application systems while consulting with senior IS staff to identify current operating procedures and to clarify program objectives
Presents findings and recommendations in written reports and oral presentations
Writes documentation to describe user needs, program development, logic, coding, and corrections, as well as installation and operating procedures
Creates and modifies application systems as directed, including coding, testing, and debugging
Creates and modifies reports as directed with minimal supervision
Participates and contributes as a team member on projects
Provides a satisfactory level of service within cost and time constraints; maintains and meets scheduled deadline dates
Provides Technical Support to the Information Services Operations team as required during and after normal business hours.
In rotation with others as assigned, provides for after-hours/on-call support of the Information Services Operations department.
Must be able to work onsite as required
Assists with any tasks and projects as required.
Bachelor’s degree in a related field or demonstrated equivalent experience required.
Must have working knowledge of commonly used concepts, practices, and procedures within the IS industry
Must have working knowledge of the Software Development Life Cycle (SDLC)
Must have knowledge of programming fundamentals
Must have knowledge of structured and object-oriented programming
Familiarity writing SQL queries preferred.
Familiarity working with relational databases and client-server concepts preferred
Must be able to work under minimal supervision
Must be flexible to handle and adapt to sudden changes in procedures and priorities
Must be well organized and able to handle multiple tasks simultaneously
Excellent communication skills in English required, both verbal and written
Occasional standing, walking, bending, and stooping required
Must be able to moderately lift or move up to 10 pounds and occasionally lift or move up to 25 pounds
Must be able to occasionally push, pull, and climb a ladder
Should possess a strong commitment to providing excellent service to ABC Company’s customers
Sample job description #2
ABC Company is looking for an Engineering Software Developer for our (City, State) office. This person will be part of a team developing proprietary software tools used by ABC Company engineers to analyze and design some of the most challenging structures in the energy infrastructure industry. Depending on the project, daily activities — under the guidance of a lead engineer or developer — may include developing and analyzing requirements, researching, and implementing solutions, as well as validating and documenting the implemented software tools. The role reports to the Department Manager and routinely interacts with other Plate Structures Engineers, Plate Structures Designers, Project Engineers, and Managers.
Key tasks and responsibilities:
Design, research and develop new applications and major enhancements
Work in all phases of the full life cycle of requirements, analysis, design, development, testing, and documentation
Collaborate with managers and engineers to understand and document software requirements and gather user feedback
Research and apply new development technologies, languages, and platforms
Coordinate with other roles and functions on development team
Forecast how long it will take to do a task – commit to definitive deadlines
Track progress against forecasts
Effectively use version control repositories
Effectively use project team or department collaboration and productivity apps and tools
Essential qualifications and education:
2+ years of relevant experience
Bachelor’s degree in Civil Engineering, Structural Engineering, or related field from an accredited school is required
Proficient verbal and written communication skills
Experience with Wolfram language preferred
Sample job description #3
The Software Architect & Developer will lead the software engineering team in architecting and developing the system software for ABC Company’s Optical Communications Link products. The Software Architect and Developer will lead and define system software architecture, develop and test of the various software modules, work with other engineering discipline leads to ensure system integration, and customer and product requirements are being satisfied, while aligning the design to the overall product line technology road map. The Software Architect and Developer will work alongside other engineering discipline team members and the Chief Systems Engineer to ensure quality, accurate and timely designs are completed. The Software Architect will be highly knowledgeable of software architecting and development processes, tools, and standards to develop optical wireless communications (OWC) products for terrestrial, airborne and space applications. In addition, the role will work with the Program Management team for execution on programs, supporting reporting needs, and status for the design work performed.
Duties and responsibilities:
Create software architecture and designs that consider both current and possible future system and product requirements
Collaborate with other professionals to determine functional and non-functional requirements for new software or applications
Use tools and methodologies to create representations for functions and interfaces of desired product
Develop high-level product specifications with attention to system integration and feasibility
Define all aspects of development from appropriate technology and workflow to coding standards
Establish the proper work-flow within a SAFe Agile Development environment
Oversee the Design, code, test, and debugging of system software elements and support software tools
Write automated unit tests using TDD and BDD techniques
Mentor experienced and inexperienced developers
Peer review other team members’ work
Diagnose software issues and propose solutions that achieve the proper balance between technically-sound yet quick to implement
Be motivated by problem solving and development of the range of solutions, over the system development lifecycle
Participating and representing the company in various customer meetings and support programmatic and technical reviews (e.g., SRR, PDR, CDR, etc.) to provide technical recommendations and risk assessments
Repeated use and application of technical standards, principles, theories, concepts, and techniques
Supporting the development and managing the technical risk registers and developing any required mitigation plans for all key product technical risks
Facilitate capture of engineering lessons learned and ensure processes and design guidance tailored from industry best practices and key program learning
Supporting the configuration management and control of product design BOMs and relevant technical data
Actively engage in the development and continuous improvement of engineering processes
Required experience & skills:
Proficiency in designing system software from the OS level to application level
Mastery of multiple high-level languages such as C++, Python
Proficiency with FreeRTOS OS
Proficiency within an Agile/SCRUM process
Knowledge of testable application design principles, utilizing Karma, NUnit, or similar
Strong understanding of SQL and relational databases, such as Postgres or MySQL
Proficiency with developing software for I2C, SPI, RS485, SpaceWire and/or CANBus
Well-honed skills in source control management using Git or similar
Proven success in mentoring experienced and inexperienced developers
Proficiency in communicating to various audiences and able to adjust message to a particular audience
Ability to be a technical leader by influencing and educating others
Desired experience & skills:
Proficiency in HTML5 or other web technologies
Understanding of embedded FPGA programming and development
Strong Proficiency in developing in Windows or Linux environments
Effective presentation skills, both content creation and presentation of materials.
Demonstrated willingness to be flexible and adaptable to changing priorities and make objective, defendable work products with the information at hand, in a timely manner
Track record of independent work and self-motivation
Experience with ISO 9001, DoD, or equivalent work environment
At least 8 years of relevant experience in software development
At least 2 years of proven software architecting
B.S. in Computer Science, or related field
Average salary and compensation
The average salary for a software developer is $118,000 in the United States. Position salary will vary based on experience, education, company size, industry, and market.
Los Angeles, California
Minneapolis-St. Paul, Minnesota
New York City, New York
Sample interview questions
Tell me about yourself.
What sparked your interest in working as a software developer?
Why do you think you would be a good fit for our company?
What do you like most about developing software?
What area of programming has been the most challenging for you?
What resources do you use when encountering a problem with your code?
What training and certifications have you received?
How do you manage your time when working on multiple projects at once?
How do you communicate with coworkers who do not have the technical understanding you have?
How has your previous position prepared you for this job?
How do you stay up to date with the most recent technological advances in the field?
We match top professionals with great employers across the country. Your next career move or star employee is just around the corner. Review our career content and advice, browse our latest job openings, or email us your resume. We look forward to connecting with you soon!