Software EngineerJob Description, Salary, Career Path, and Trends
Software engineers design, develop, and install software solutions for a variety of information and technological applications. They also create documentation, flowcharts, layouts, diagrams, and charts for that software. Software engineers apply principles of engineering and computer science to not just the creation of software but also testing procedures for those products.
Throughout the lifecycle of a piece of software, software engineers direct the processes of updating, patching, and repairing code. In addition to hard skills like expertise in software development, a software engineer also needs soft skills like communication, teamwork, and critical thinking. Software engineers lead teams of developers, so the ability to communicate ideas to other members of the group — as well as customers, non-technical colleagues, and managers — is critical.
Sample job description #1
ABC Company is currently seeking a Software Engineer for a national commercial organization with offices in (City, State).
Responsibilities for the software engineer:
Must be able to design, develop, and maintain software for a variety of engineering applications
Must be able to work with analysts to understand their analytic or interface requirements
Maintenance/sustainment development will consist of constant routine GUI improvements, routine field requests for improvement development changes, incorporation of a larger subset of systems
Qualifications for the software engineer:
Bachelor’s Degree in STEM Related field (Can be substituted with 3 additional years of experience)
Certified Amazon Web Services Cloud Practitioner Required
Amazon Web Services (AWS) Associate Solutions Architect or Developer certification preferred
CVENT Certification a plus
10+ Years of Experience in Information Technology Field
Experience with different technology frameworks
Sample job description #2
ABC Company is seeking a Software Engineer to join a team of IT and intelligence professionals working to provide near real-time intelligence information to users on the front line. The Engineer will maintain existing software and develop new software to customer specifications They will be integral in coordination among government customers and cross-agency partners to maintain a shared resource for collecting, processing, and disseminating forensic information. The engineer will work daily on maintaining and improving the current environment to better meet the needs of the end users.
Duties and responsibilities:
Aid in the design and development of software systems and applications
Make recommendations for design choices for upgrading legacy applications and technical standards such as platforms and coding standards to be used for implementation
Ensure software meets all requirements of quality, security, modifiability, extensibility, etc.
Web development, operations, testing, integration, and fielding of web systems
Development and maintenance of cloud, web, and server-based portals, databases, and applications
Aid in the development of data sharing agreements, technical planning, asset management, change control policies, practices and procedures, drafting/maintaining security documentation, and maintaining user guides and documentation
Optimization of web server configurations
Integration of web applications with SharePoint server farms
Remote and on-site user assistance
Requires relocation to or residence in the (City, State) area
Active DoD TS/SCI security clearance
Able to Travel
Minimum of an Associates of Computer Science OR Information Technology with a Bachelor Preferred
1+ year in engineering experience
Software development experience with a preference in C# and .Net
Experience working with .Net framework Webforms, .NET Core, Entity Framework, Webpack
Excellent knowledge of software and application design and architecture
Understanding of software quality assurance principles
Internet Information Services (IIS) 6.0 or later experience
Familiarity with Microsoft SQL Server
Knowledge and understanding of XML and JSON
Able to operate in a mission-critical and time-sensitive environment
Strong engineering skills and software fundamentals in developing on Android and/or iOS and experience with REST web services
Familiarity with Agile processes
Experience with Blazor, Vue.js, Dapper, SimpleInjector, MediatR, Xunit, NSubstitute
Sample job description #3
We are seeking a Software Engineer to build and maintain the API layer used to communicate with our Unified Customer Profile (UCP) data sources. In this role, you will apply variety of technologies to develop innovative solutions. This position is a critical element to delivering ABC Company’s promise of creating the best customer experiences in financial services.
You will be joining the API COE (Center of Excellence) team with the vision to enable faster, scalable, secure, standard, and consistent delivery of API solutions for the UCP product area. This team maintains and supports UCP APIs with automation, CI/CD and DevOps best practices.
The expertise and skills you bring
Bachelor’s degree in Computer Science (or closely related)
6+ years of experience in application and REST API development using Java
Proven experience architecting and writing microservices with Java
Java application development experience using Dropwizard or Springboot framework
Strong in managing API to database connection management using different database drivers – Relational Databases (Oracle, PostgreSQL, etc.) and NoSQL databases (DynamoDB, Elastic search, Graph DB, etc.)
Experience with DevOps or CI/CD Pipelines using Maven, Jenkins, uDeploy, Stash, Ansible, etc.
Experience in managing high volume customer-facing application traffic for the API’s
Experience in containerizing the API using docker or Kubernetes.
Knowledge of how to develop highly scalable distributed systems using Open-Source technologies
Good in interpreting design and integration patterns to develop and deliver with high quality
Excellent written and oral communication skills needed for agile team
Ability to deal with ambiguity and work in fast paced environment
Solid experience in Agile methodologies (Kanban and SCRUM)
Ability to validate, monitor, and solve issues during development, testing, or in production.
Knowledge of Messaging Technologies (Kafka, Kinesis, SNS, SQS)
Good understanding of cloud-native architectures and services (preferably AWS)
Creative, Innovative, and Problem-Solving skills are a plus
Experience working with Python modules and libraries for data manipulations and extractions is a plus
Proven knowledge of AWS via Associate, Professional, or Specialty Certification(s) a big plus
Average salary and compensation
The average salary for a software engineer is $120,750 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
What programming languages are you familiar with?
Can you discuss a recent project you completed? What were some high and low points from that project?
Can you describe Agile development? What are your thoughts on this methodology?
What are your thoughts on declarative as opposed to imperative paradigms?
What metrics do you use to determine a project’s success or failure?
How would you go about explaining a technically complex topic to someone with no technical background?
How do you implement error handling?
Can you explain the software development cycle?
What’s your process for finding and testing bugs in an application you created?
What’s the difference between an array and a stack?
What are web workers in HTML5? What is their significance?
What’s the difference between white and black box testing?
How would you go about making a website faster? Describe as many different techniques as you can think of.
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!