Information Technology (IT), Knowledge Management, Operations
4 Year Degree
This position will serve as a software programmer/analyst on the Application Services Team. Acts as the technical expert within the Firm for software development. Responsibilities include full software development lifecycle, including analysis, application coding, testing and support. This position is also responsible for designing, writing, modifying and implementing advanced software applications, as well as coaching and mentoring junior developers in mastering software programming techniques and advanced engineering concepts.
Software Development: Develop working programs using a variety of languages and programming patterns that effectively respond to end-user requirements. Develop advanced mobile applications for both the iOS and Android platforms. Develop cloud-based applications using the Azure cloud. Develop applications using a development-operations principles and system. Effectively test and debug software. Lead and manage development sprints using standard agile methods. Work with project managers and business analysts to develop and manage effective project plans. Develop modular, reusable code using standard programming patterns and frameworks
Professional Development: Maintain professional and technical knowledge by attending educational workshops, reading article and publications, and attending user group
Software Design: Create effective and efficient technical designs. Analyze, model, and manage software requirements. Identify and articulate the advantages and disadvantages of a particular design options and strategies. Design and implement service interfaces using standard architectural styles (REST, SOAP, etc.). Able to integrate on-premises, cloud, and mobile applications into a unified, working whole
Coaching: Conduct effective code reviews. Lead and advise others on the use of effective design and coding concepts. Identify and implement software development best practices, including but not limited to, test-driven development, unit testing, pair programming, version management,
Provide some cross-training to other programmer/analysts regarding issues/updates, techniques, and practices within the area of responsibility so other programmer/analysts will be able to provide support as necessary.
Work with the Service Desk to ensure consistency and usability of the created work.
Work with the Infrastructure Architecture Team to help them maintain and deploy the application as needed.
Defining: Determine customer needs and inform them of technically possible solutions and pitfalls.
Designing: Provide input, component details and definition to assist the Software Architect in the continued design of the software development infrastructure. Assist the Senior Programmer(s), the Software Architect, and the Software Development Manager in creating and enforcing use of the software development framework that has been created to minimize development time. Also, the Programmer/Analyst is responsible for helping to design a solution for the customer and produce documentation on how the final project was created.
Developing/Testing: Develop and test the computer code of a project according to pre-defined specifications, standards and techniques. The code could be web-based http compliant, database, or desktop (thick-client) based. Responsible for ensuring their code is source controlled and stress tested.
Documenting: Produce quality technical documentation of their work in conjunction with the Project Manager for a particular project. This includes, but is not limited to, the purpose of the program, the infrastructure needed to make it work, diagrams, flow-charts, and entity-relationship models.
Maintaining: Understand and provide routine maintenance of an in-house developed system or application. Examples may include updating web-based applications developed in a variety of programming languages, maintaining client side applications like in-house developed Microsoft Word templates. Understand the Perkins Coie Software Development Life Cycle and the responsibilities of each section of the life cycle.
SPECIFIC SKILLS REQUIRED
SPECIFIC SKILLS PREFERRED
The desire to continually learn new technologies and update skills.
EDUCATION AND EXPERIENCE
Requires a degree in Information Systems/Computer Science and 5 to 8 years of programming business applications, or equivalent. The individual must demonstrate the years of experience has translated into the ability to take on more complex programming challenges and responsibility at this level.