Software Engineer I / II / Sr. or Principal Engineer - JAVA

Northern Natural Gas




Purpose of Position

Working with significant independence and under general direction, the senior software engineer participates in the design, programming, testing, documentation and implementation of complex computer applications and systems. Evaluates software packages, provides recommendations to management and business clients, and identifies best technology solutions. Identifies future needs for key technologies and techniques and develops plans for adoption.


Primary Job Duties and Responsibilities (Essential Job Functions)

Architects, designs, codes, tests, documents, implements and maintains more complex application programs and interfaces. May act as senior contributor or technical lead on small to mid-sized projects.


Provides technical support; problem determination and investigation; implementation of upgrades for developed applications.


Enhances existing systems; participates in client walkthroughs and technical design reviews. Aids in systems development planning and monitoring. Participates in design reviews and peer code walkthroughs. Provides client and application support.


Perform software development and ensure conformance to performance optimization and interoperability standards and requirements. Work in adherence to secure development lifecycle practices and policies.


Performs or assists in the research and fact-finding to develop or modify application programs. Includes working with vendors to review quality, adaptability and compatibility of their products.


Act as the subject matter expert, and consult with clients on company’s IT strategy and business requirements.


Collaborate with IT teams from applications and infrastructure to identify technology deficiencies and improvement opportunities in practices and procedures.


Stay current with industry standards techniques for software development, and apply them to development, testing, integration and reporting processes where appropriate.


Consults with application users in developing functional/technical specifications.


Consults with application users, evaluates user requests for new or modified computer applications and associated interfaces to determine feasibility, cost and time required, compatibility with current systems and computer capabilities.


Performs any additional responsibilities as requested or assigned.






Bachelor's degree in management information systems (MIS), computer science or related technical field or equivalent work experience. (Typically six years of related, progressive work experience would be needed for candidates applying for this position who do not possess a bachelor's degree.)


Prior Job Experience

A minimum of six years of experience in business software application design, development, integration and/or installation.


Knowledge, Skills and Abilities

Demonstrated advanced knowledge of programming in client/server or web development environment. Experience in the industry, or in an environment whose scope, size and complexity are comparable.


Demonstrated advanced knowledge of open systems object design methodologies, architecture methodologies, security practices and integration techniques.


Demonstrated advanced knowledge of relational database technology, structured analysis concepts, and software design patterns.


Demonstrated project management skills and ability to prioritize and handle multiple tasks and projects concurrently.


Demonstrated business analysis aptitude including communications and interpersonal skills enabling an understanding of client's needs.


Demonstrated advanced knowledge of information technology terms, equipment, systems, functions and major vendors. Experience integrating large disconnected enterprise-class systems in a robust, fault-tolerant manner consistent with industry standards.


Able to work in a zero-code-ownership environment where the team members can modify any source file at any time.


An understanding of deployment topologies (i.e. ensuring secure, highly available systems).


Effective oral and written communication skills.


Effective analytical and problem-solving skills.


Ability to prioritize and handle multiple tasks and projects concurrently.


Availability for periodic on-call responsibilities.


Experience integrating Commercial off the Shelf (COTS) solutions within an environment with strong change and release management processes and procedures.


JAVA Qualifications

One or more years of demonstrated experience with JAVA using JSPs, Hibernate and Spring to build web applications required for lower level.  Three to six years required for higher level.  Must have server-side JAVA experience with Object-Oriented Modeling and Design experience as well as middle-tier application logic experience.

Experience with J2EE, JSPs, Hibernate, Spring junits or JavaScript is a plus for lower level.  Three or more years required for higher level.  


Experience with REST Services, Angular 2+, Angular JS, Node or packaging tool, or NPM is a plus for lower level.  Two year or more demonstrated experience is a requirement for higher level.


Experience with Bootstrap is a plus for lower level.  Four years or more experience is required for higher level.

Experience with VSCode is a plus.

Experience with ReactJS is a plus.  Two years or more experience is a required for higher level.

Experience with Karma is a plus.

Experience with Babble is a plus.

Experience with Gulp is a plus.

Experience with Angular 11 or above is a plus.

Experience with Spring boot is a plus.



Ability to demonstrate transaction management is required for higher level.


Two or more years’ experience with estimating, performing code reviews and mentoring teammates required for higher level.


Experience with an application server (e.g. Websphere, JBoss) is a plus for lower level.  Required for higher level. 

Experience with IDE a plus for lower level.  Three years or more of demonstrated experience with IDE.  Eclipse, Rational Application Developer or IntelliJ is preferred for higher level.


Experience with Agile development using user stories and acceptance criteria is a plus for lower level.  Multiple years’ experience with Agil development using user stories and acceptance criteria is required for higher level.

One year of experience with using Microsoft SQL Server or other relational database for developing stored procedures is a plus for lower level.  Three or more years of experience required for higher level.  Experience in identifying, analyzing/resolving related performance issues is a plus.


Job ID: 9395

Posted 15 days ago

Share This Job