Senior Software Engineer

  • des moines

It's fun to work in a company where people truly BELIEVE in what they're doing!

Job Description Summary:

The Senior Software Engineer designs, develops, troubleshoots, debugs, and sets the direction for the design and implementation of software features/functionality/enhancements, correction of defects, and/or the creation of new products. Develops software tools including operating systems, compilers, routers, networks, utilities, databases, and Internet-related tools. Determines software’s compatibility with hardware and/or influences software's design in relation to hardware.

Essential Duties and Responsibilities :

  • Reviews and provides feedback on designs

  • Takes ownership of design and development of features within their component

  • Recognizes and practically solves for anti-patterns

  • Good understanding of how their work aligns with high-level use cases and team deliverables

  • Define (more than a feature, less than a product) a component which fits into an architecture

  • Describe and defend design decisions for components owned by the team

  • Optimize software design to leverage platform capabilities

  • Acts as the technical subject matter expert for a product domain

  • Quantify and communicate work estimates and risks to direct management

  • Handle multiple competing priorities with minimal help

  • Understand features as a whole and able to break down larger stories and features into tasks

  • Familiar with most of the technologies we focus on and what markets they target

  • Takes ownership of customer issues and effectively communicate with Support/SEs to resolve field questions/issues

  • Consults with customers on larger concerns and problems they are trying to solve, over and above the immediate technical concerns

  • Willingness to teach and develop junior team members

  • Excellent listening skills

  • Effectively works within the team and across teams

  • Ensures all tasks are completed thoroughly and that any work done is tested, unit tested, documented, and ready for customers

  • Takes identified problems and concerns and creates a plan to fix the problem and prevent it from occurring again

  • Follows through on tasks with a high level of accountability

  • Reliably delivers expected work products and outcomes

  • Imparts sense of urgency on junior team members

Required Qualifications:

  • Minimum 8 years of software engineering experience

  • Mastery of data structures and algorithms

  • Able to select data structures and algorithms to solve technical problems

  • Able to write high-quality code rapidly

  • Able to present track record of solving problems of increasing complexity

  • Good understanding of trade-offs in solving problems that have variable levels of complexity

  • Deep understanding of memory allocation and management mechanism, security mechanisms, processing allocation mechanisms of target operating systems

  • Programming languages: C and Java

Preferred Qualifications:

  • Operating systems: z/OS, iSeries, z/VSE, Windows and Linux would be desirable

  • z/OS subsystems such as TCP/IP, JES ….

  • Experience with databases such as IMS, DB2 for z/OS

Education:

Bachelor’s/Master’s degree in Computer Science, or related field

Travel Requirements: