Posted in

Senior Software Engineer

Senior Software Engineer

CompanyCaterpillar Inc.
LocationPeoria, IL, USA
Salary$132101 – $179640
TypeFull-Time
DegreesBachelor’s, Master’s
Experience LevelSenior

Requirements

  • Master’s degree, or foreign equivalent, in Computer Science or a related field and 5 years of experience as a Software Developer or related occupation
  • Bachelor’s degree, or foreign equivalent, in Computer Science or a related field and 8 years of experience as a Software Developer or related occupation
  • Employment experience with: (1) Application architectural patterns, such as MVC, Microservices, and Event-driven; (2) Deploying software using CI/CD tools such as Jenkins, GoCD, and Azure Devops; (3) Design and development of custom development solutions for technical information services; (4) Reviewing, documenting, analyzing, and designing business requirements to obtain application structures; (5) Data structures, algorithms, and object-oriented Programming language principles; (6) Driving application development focused around delivering business valuable features; (7) Building Single page applications using JavaScript Frame works like Vue js.; (8) Complex systems or infrastructure components used by one or more applications or systems; (9) Maintaining high standards of software quality within the team by establishing good practices; (10) Creating Unit test strategy using such as Karma or Mocha test runners for testing business components developed in both Java and Node Applications; (11) 3 years deploying and maintaining software using public clouds such as AWS or Azure; and (12) Software development methodologies such as Agile or scrum and tools such as Jira and Azure Devops.

Responsibilities

  • Produce software products or systems in line with product requirements
  • Conduct walkthroughs and monitor effectiveness and quality of development activities
  • Elaborate on multiple development toolkits for traditional and web-based software
  • Participate in the development of multiple or large software products
  • Contrast pros and cons of different development languages and tools
  • Estimate and monitor development costs based on functional and technical requirements
  • Provide consulting on selection and utilization of developers’ workbench tools
  • Use knowledge of the software development life cycle, including a structured methodology for delivering and managing new or enhanced software products to the marketplace
  • Describe similarities and differences of life cycle for new product development vs. new release
  • Identify common issues, problems, and considerations for each phase of the life cycle
  • Work with a formal life cycle methodology
  • Explain phases, activities, dependencies, deliverables, and key decision points
  • Interpret product development plans and functional documentation
  • Use knowledge of software integration processes and functions, and design, develop, and maintain interfaces and linkage to alternative platforms and software packages
  • Design data exchange interfaces to and from software product
  • Describe tools and techniques for extraction, transformation, and loading of electronic data
  • Cite examples of common linkage requirements for software products and vendors
  • Work with integrating software into customer or partner frameworks and infrastructure
  • Participate in the development of technology interfaces and bridges
  • Use knowledge of software product design and convert market requirements into software product designs
  • Use experience with the architecture and design of major or multiple products
  • Describe major software architecture alternatives and considerations
  • Explain design considerations for commercial database systems, operating systems, and web
  • Estimate the cost of a specific designs of proposed products
  • Facilitate design reviews and walkthroughs
  • Analyze benefits and drawbacks of specific software designs and architecture
  • Understand technical aspects of software products, along with the ability to design, configure, and integrate technical aspects of software products
  • Maintain and utilize data related to install base configurations and environments
  • Solicit customer feedback; report and monitor bugs and implementation issues
  • Define and conduct technical acceptance tests
  • Create technical requirements for software development and deployment
  • Explain basic environment and product configuration options
  • Design, plan, and execute testing strategies and tactics to ensure software product quality and adherence to stated requirements
  • Participate in test readiness reviews, functional, volume, and load testing
  • Describe key features and aspects of specific testing disciplines or methodologies
  • Test software components for compliance with functional requirements and design specifications
  • Explain procedures for documenting test activities and results (e.g., errors and non-conformance)
  • Conduct functional and performance testing on aspects of assigned products.

Preferred Qualifications

    No preferred qualifications provided.