Develops, creates, and modifies general computer applications software or specialized utility programs. Analyzes user needs and develops software solutions. Designs software or customizes software for client use with the aim of optimizing operational efficiency. May analyze and design databases within an application area, working individually or coordinating database development as part of a team. Modifies existing software to correct errors, allow it to adapt to new hardware, or to improve its performance. Analyzes user needs and software requirements to determine feasibility of design within time and cost constraints. Confers with systems analysts, engineers, programmers and others to design system and to obtain information on project limitations and capabilities, performance requirements and interfaces. Stores, retrieves, and manipulates data for analysis of system capabilities and requirements. Designs, develops, and modifies software systems, using scientific analysis and mathematical models to predict and measure outcome and consequences of design.
- Bachelor’s degree in Engineering, Information Systems, Computer Science, or related field and 2+ years of Software Engineering or related work experience. OR
- Master’s degree in Engineering, Information Systems, Computer Science, or related field and 1+ years of Software Engineering or related work experience. OR
- PhD in Engineering, Information Systems, Computer Science, or related field.
- 2+ years of experience with Programming Language such as C, C++, Java, Python, etc.
- 4+ years of Software Engineering or related work experience.
- 2+ years of experience with Database Management Software.
- 2+ years of experience with API.
- 2+ years of experience working in a large matrixed organization.
- 1+ years of work experience in a role requiring interaction with senior leadership (e.g., Director level and above).
Job Roles and Responsibilities:
- Completes assigned coding tasks to specifications on time without significant errors or bugs.
- Adapts to changes and setbacks in order to manage pressure and meet deadlines.
- Collaborates with others inside project team to accomplish project objectives.
- Communicates with project lead to provide status and information about impending obstacles.
- Quickly resolves complex software issues and bugs.
- Gathers, integrates, and interprets information specific to a module or sub-block of code from a variety of sources in order to troubleshoot issues and find solutions.
- Seeks others’ opinions and shares own opinions with others about ways in which a problem can be addressed differently.
- Participates in technical conversations with tech leads/managers.
- Anticipates and communicates issues with project team to maintain open communication.
- Makes decisions based on incomplete or changing specifications and obtains adequate resources needed to complete assigned tasks.
- Prioritizes project deadlines and deliverables with minimal supervision.
- Resolves straightforward technical issues and escalates more complex technical issues to an appropriate party (e.g., project lead, colleagues).
- Writes readable code for large features or significant bug fixes to support collaboration with other engineers.
- Determines which work tasks are most important for self and junior engineers, stays focused, and deals with setbacks in a timely manner.
- Unit tests own code to verify the stability and functionality of a feature.
Level of Responsibility:
- Working under some supervision.
- Making decisions that are moderate in impact; errors may have relatively minor financial impact or effect on projects, operations, or customer relationships; errors may require involvement beyond immediate work group to correct.
- Using verbal and written communication skills to convey information that may be somewhat complex to others who may have limited knowledge of the subject in question. May require basic negotiation and influence, cooperation, tact, and diplomacy, etc.
- Having a moderate amount of influence over key organizational decisions (e.g., is consulted by senior leadership to provide input on key decisions).
- Completing tasks with multiple steps that can be performed in various orders; some planning and prioritization must occur to complete the tasks effectively; mistakes may result in some rework.
- Exercising creativity to draft original documents, imagery, or work products within established guidelines.
- Using deductive and inductive problem solving; multiple approaches may be taken/necessary to solve the problem; often information is missing or incomplete; intermediate data analysis/interpretation skills may be required.
- May be solicited during strategic planning period.
The responsibilities of this role do not include:
- Financial accountability (e.g., does not involve budgeting responsibility).