Software Engineer 4

Other

This job posting has expired and is no longer accepting applications. Check out similar jobs


Job description

Software Engineer 4

Responsibilities Include:

  • This position reports to Software Engineering Manager, as do other staff jobs in application and technical systems and programming sections. Responsibilities are within functional lines with individuals assisting in new program development and/or maintenance of existing mobile, WEB, Cloud, server, computing systems

Typical Day:

  • Work as part of Agile team and participate in Scrum activities.
  • Competent to perform all programming, development, integration and system administration assignments without close supervision.
  • Designs, codes, tests, and debugs programs of high complexity.
  • Configuration or customization of purchased software solutions with high complexity.
  • Provides project management, programming, systems, and/or system administration leadership, guidance, and assistance to other team members.
  • Works on more complex application/technical problem identification and resolution, including responding to off-shift and weekend support calls.
  • Works independently on complex processes and modules that may be used by one or more programs, systems or in support of infrastructure component change management.
  • Develops major system modules, programs or infrastructure released based on requirements gathered from system customers.
  • Performs integrated testing and customer acceptance testing of system components that requires careful planning and execution to ensure timely, quality results
  • Fully knowledgeable of programming languages appropriate to the platform supported, program design and specification development, programming logic, logic diagrams, system analysis techniques, testing, debugging, documentation standards, file design, storage and internal systems
  • Performs integration tasks for in-house developed systems and/or purchased hardware and software solutions.
  • Assists customers with documentation, training and usability efforts. Will need to be onsite in Peoria post Covid restrictions

Education:

  • Bachelor’s degree in Computer science or Electrical engineering or related field. plus 8-10 exp overall
  • Or Master’s degree with 6+ years professional experience

Technical Skills Required

Required

  • Seven years or more of software development experience or at least five years of experience with master’s degree in computer science or related field.
  • Seven years or more of experience in designing and developing software applications in Java or at least five years of experience in Java with master’s degree in computer science or related field.
  • At least one year of experience developing in AWS: cloud formation templates, deploying ECS clusters, Lambda, Fargate, Amazon Elastic Search, S3.
  • Stong understanding of IAM roles and policies.

Desired

  • Proven experience in following,
    • Designing, developing, deploying and maintaining software at scale. One year of experience building and developing with Cloud Technologies (such as AWS, Azure, GCP)
    • Developing software applications using relational and Nosql databases.
    • Application architectural patterns, such as MVC, Microservices, Event-driven, etc.
    • Deploying software using CI/CD tools such as Jenkins, Azure Devops etc.
    • Deploying and maintaining software using public clouds such as AWS or Azure. o Working within an Agile framework (ideally Scrum)
    • Batch or stream processing systems such as Apache Spark, Flink, Akka, Storm o Message brokers such as Kafka, Rabbitmq, AWS SQS, AWS SNS, Apache ActiveMQ, Kinesis.
    • Experience designing well-defined Restful APIs o Hands on experience with API tools such as Swagger, Postman and Assertible
    • Test driven development and behavior driven development.
    • Hands on experience with testing tools such as Selenium and Cucumber and their integration into CI/CD pipelines.
    • Datastores such as DynamoDB, MongoDB, Cassandra, Redis, Elasticsearch, MySQL, Oracle.
    • Must demonstrate solid knowledge of computer science fundamentals like data structures and algorithms.


Frequently asked questions

Q: What skills or qualities help someone succeed as a Software Engineer?

A: To succeed as a Software Engineer, key technical skills include proficiency in programming languages such as Java, Python, or C++, as well as expertise in software development methodologies like Agile and version control systems like Git. Additionally, strong problem-solving skills, attention to detail, and the ability to learn and adapt quickly are essential soft skills, along with effective communication and collaboration skills to work with cross-functional teams. These technical and soft skills enable Software Engineers to design, develop, and maintain high-quality software applications, driving career growth and effectiveness in the role.

Q: What is the career path for a Software Engineer?

A: A Software Engineer's typical career progression involves starting as a Junior Software Engineer, where they focus on coding and contributing to existing projects, then advancing to a Mid-Level Software Engineer role, where they take on more complex tasks, lead smaller projects, and mentor junior team members. As they gain experience, they can move into Senior Software Engineer positions, where they lead large-scale projects, architect software systems, and make technical decisions that impact the organization. With continued growth, Software Engineers can pursue leadership roles, such as Technical Lead or Engineering Manager, or transition into specialized areas like DevOps, Product Management, or Technical Consulting.