Skip to content

Senior Software Engineer
Company | Caterpillar Inc. |
---|
Location | Peoria, IL, USA |
---|
Salary | $132101 – $179640 |
---|
Type | Full-Time |
---|
Degrees | Bachelor’s, Master’s |
---|
Experience Level | Senior |
---|
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.