Software Engineer Job Description

What is a Software Engineer?

On the most basic level, software engineers write, debug, maintain, and test software that instructs a computer to accomplish certain tasks, such as saving information, performing calculations, etc. A software engineer will convert what needs to happen into one of many programming languages, the most common of which being Java, C++ and Python.

While many are self taught, most software engineers have obtained an undergraduate or graduate degree in computer science or computer engineering. The career of a software engineer typically follows one of two primary paths: they either progress through greater responsibility and ownership over technical architecture and systems or they progress into managing teams of software engineers and help orchestrate larger projects and help develop and mentor more junior engineers.

Software Engineer Job Description Template

Job Overview

We are looking for a Software Engineer to join our growing Engineering team and build out the next generation of our platform. The ideal candidate is a hands-on platform builder with significant experience in developing scalable data platforms. We’re looking for someone with experience in business intelligence, analytics, data science and data products. They must have strong, firsthand technical expertise in a variety of configuration management and big data technologies and the proven ability to fashion robust scalable solutions that can manage large data sets. They must be at ease working in an agile environment with little supervision. This person should embody a passion for continuous improvement and test-driven development.

Responsibilities for Software Engineer

  • Analyze, design and develop tests and test-automation suites.
  • Design and develop a processing platform using various configuration management technologies.
  • Test software development methodology in an agile environment.
  • Provide ongoing maintenance, support and enhancements in existing systems and platforms.
  • Collaborate cross-functionally with data scientists, business users, project managers and other engineers to achieve elegant solutions.
  • Provide recommendations for continuous improvement.
  • Work alongside other engineers on the team to elevate technology and consistently apply best practices.

Qualifications for Software Engineer

  • Hands-on experience working with technologies like Hadoop, Hive, Pig, Oozie, Map Reduce, Spark, Sqoop, Kafka, Flume, etc.
  • Strong DevOps focus and experience building and deploying infrastructure with cloud deployment technologies like ansible, chef, puppet, etc.
  • Experience with test-driven development and automated testing frameworks.
  • Experience with Scrum/Agile development methodologies.
  • Capable of delivering on multiple competing priorities with little supervision.
  • Excellent verbal and written communication skills.
  • Bachelor’s Degree in computer science or equivalent experience.
  • We’re looking for someone with 3-5 years of experience in B2B, has a BS degree in computer science or similar, and is familiar with the following software/tools:
    • Experience with infrastructure automation technologies like Docker, Vagrant, etc.
    • Experience with build automation technologies like Maven, Jenkins, etc.
    • Experience with monitoring technologies like Nagios, Ganglia, etc.
    • Experience with modern programming languages like Java, Python, etc.
    • Experience with building APIs and services using REST, SOAP, etc.
    • Experience with scripting languages like Perl, Shell, etc.

Ready to Hire a Software Engineer?

Try Job Postings

Employers: How to Write Great Job Descriptions

  • Be sure to mention requisite years of experience and educational requirements
  • Tell job seekers what's unique about your company and job
  • Ideal length is a few paragraphs or about 200 words
  • Make sure to use appropriate paragraph breaks and bullet points so it’s easy on the eyes
Download Full Guide