Software Developers are responsible for participating in the development, maintenance, and enhancement of business applications. Inhabitants of this position are assigned to project teams within an assigned business unit or corporate department and utilize a variety of client/server (on mainframe) platforms. Under the leadership and tactical supervision of a Lead Software Developer, incumbents collaborate with company customers, staff, IT colleagues, and other stakeholders to identify user requirements, assess available technologies, and recommend solution options. Individuals in this job position are competent to perform work at the highest technical level within this job family. They are familiar with project management techniques, may have project leadership responsibility for small projects or regularly coach other team members, and may plan work for others to meet project deadlines. The main challenge to Software Developers is to assess objectives for the assigned project phases and recommend technical strategies and tactics to achieve business needs. They also apply a broad knowledge of various technical functions to accurately anticipate organizational impacts. Incumbents must understand the procedures and expected system performance associated with the introduction of new information technologies, while seeking ways to collaborate with other IT members (the Technology/Business Consultant Group, in particular) to facilitate transitions. They share responsibility with other team members to ensure on-time product delivery, which requires a clear understanding of expectations and capabilities and the ability to act effectively as a team member.
- Provide business analysis and programming expertise within an assigned business unit/area, usually as a member of a project team, in the analysis, design, and development of business applications.
- Formulate and define application scope and objectives and devise/modify procedures to solve business problems.
- Prepare detailed specifications, from which programs will be written, and design, code, test, debug, and document programs.
- Write programs from detailed specifications including program design, code, test, debug, and documentation.
- Develop business knowledge and relationships to integrate activities with other IT departments to ensure successful implementation and support project efforts.
- Monitor and report to management on the status of project efforts, anticipating and identifying issues that inhibit the attainment of project goals and implementing corrective actions.
- Foster and maintain good relationships with customers and IT colleagues to expected customer service levels.
A Bachelor’s degree in Computer Science, Information Systems, Engineering, or related discipline, or equivalent work experience and technical training, is required. Directly related experience in business application design, development, installation, and modification in an online environment. Conceptual knowledge of information technologies and methodologies in mainframe, midrange, and PC computing environments desirable, but in-depth experience in one or more is critical. Experience in the industry or in a production/service environment similar to that of the employer is preferred. Knowledge of project management techniques is required (cross-functional experience is highly desirable) Experience with structured design, development, and implementation of new computing architectures.
- Strong technical knowledge, with hands-on experience managing systems development in new computing architectures and environments (e.g., client/server Web); knowledge of relevant technology, tools, and middleware is critical.
- Proficiency with SQL and experience with database platforms like Oracle or MS SQL Server preferred.
- Working knowledge and experience with OSIsoft PI system strongly desirable.
- Proficiency with programming languages such as Java/C++/C# preferred.
- Knowledge of Coldfusion and RAILO are a plus.
- Knowledge and experience with different Java based web platforms (such as WebLogic 10.3.x, Apache Tomcat, JBoss etc.) desirable
Hands on experience with development tools such as Eclipse, ANT, Maven, SOAPUI desirable.
- Experience with SOA platforms, building or consuming Web Services (SOAP/REST) preferred.
- Strong verbal and written communications skills, with an ability to express complex technical concepts in business terms.
- Strong analytical, problem-solving, and conceptual skills.
- Good project management skills, operating as part of a team organizing, planning, and executing large-scale projects from the envisioning stage through implementation.
- Strong interpersonal skills; ability to work well on cross-functional project teams and foster team commitment to tasks.