Senior Programmer Analyst
We are looking for a Senior Programmer Analyst to join our team of students, faculty and post-docs in building software for big data neurocience. NeuroData’s goal is to work together with neuroexperimentalists to discover fundamental principles governing the relationship between mind and brain, via building open source data-driven tools that run at scale on open access data. This includes analytics, databases, cloud computing, and Web-services applied to both big neuroimages and big neurographs. We aim for our code to be open source and easy to use. Our team consists of individuals who get positive energy from the work we do, and from working with the people around us. Being a contributor to this culture of support and trust is a necessary requirement for this position. For more information, please visit our website: http://neurodata.io/.
The individual will be responsible for the creation, implementation, maintenance, performance, production support and documentation of various NeuroData application systems. This includes but is not limited to the installation, modification, and testing of new and/or upgraded applications (packages or home grown), operating systems, file structures, hardware, communication devices, and productivity tools. Applies analysis techniques and procedures to gather and then translate business requirements into functional/technical specifications and designs. Using functional specifications and designs, produces all or part of the deliverables. Maintains databases and application system code.
Under limited guidance, responsible for full life-cycle of small to medium sized moderately complex projects. Demonstrates strong ability in technology and/or strong understanding of the business/clinical/education process. Builds and maintains client relationships through positive interactions.
Specific duties & responsibilities:
- The Senior Programmer Analyst is responsible for development and maintenance of NeuroData’s software stack.
ANALYSIS AND REQUIREMENTS GATHERING
- Work on a variety of projects which may land at all levels of the stack, from front-end user interfaces to low-level data storage. Projects will collectively be chosen based on skill-set, interest, and need.
- Define moderately complex research problems by meeting with collaborators to observe and understand current processes and the issues related to those processes. Provide written documentation of findings to share with the collaborators and other colleagues.
- Gather moderately complex system requirements by working closely with the team and researching existing technology to understand the requirements and possible solutions for new applications while ensuring a cohesive software suite.
DESIGN AND DEVELOPMENT
- Develop detailed tasks and project plans by analyzing project scope and milestones for moderately complex projects in order to ensure product is delivered in a timely fashion according to software lifecycle standards.
- Write functional/technical specifications by taking the provided moderately complex system requirements and putting them into functional and technical descriptions for use by programmers and business analysts to develop technical solutions.
- Develop/change data input, files/database structures, data transformation, algorithms, and data output by using appropriate computer language/tools to provide technical solutions for moderately complex application development tasks.
- Document code and associated processes by adhering to development methodologies, adding code comments and appropriate documentation to various knowledge-base system(s) to simplify code maintenance and to improve support.
TESTING AND DOCUMENTATION
- Create and document moderately complex test scenarios using the appropriate testing tools to validate and verify application functionality.
IMPLEMENTATION AND MAINTENANCE
- Implement changes by adhering to the change management policies and procedures for any given project to communicate to all parties the nature, significance, and risk factors of the solution.
- Monitor changes and resolve moderately complex problems by responding as they occur, by reviewing all processing and output of the newly implemented solution, and by proactively ensuring the solution works successfully in order to satisfy the customer requirements and to provide a smooth transition to the new solution.
- Provide support by triaging and resolving moderately complex issues to ensure prompt, effective service.
- Continuously learn and improve skills.
Bachelor’s degree required. Additional experience may be substituted for education. Master’s degree in Computer Science preferred. Fluency in python and at least one other programming language.
Experience or strong interest in working in an interdisciplinary environment.
- Three years of related work experience with computer systems and applications. Additional education may substitute for experience.
- Test all changes by using the appropriate moderately complex test scenarios to ensure all delivered solutions work as expected and errors are handling in a meaningful way.
- Author and maintain documentation by writing audience-appropriate materials to serve as technical and/or end-user references.
- Preferred qualifications:
- Knowledge in the assigned application as well as the platform on which it runs.
- Experience with building Web applications (e.g. django or ruby on rails), including the design of RESTful interfaces
- Familiarity with SQL (e.g. mysql or PostgreSQL) and/or NoSQL (e.g. Redis or Mongo) databases
- Experience with running services in the cloud (e.g. Amazon, Google or Azure)
- Familiarity with virtualization or container tools (e.g. Docker)
- Comfortable working with new programming languages and tools
- Excellent debugging and problem solving skills
- Experience with contributing to open source projects
- Ability to take initiative, prioritize tasks, use good judgment and monitor completion of assigned duties
Special knowledge, skills, and abilities:
- Must possess all requisite knowledge, skills, and abilities as posted in the supplemental section.
- Must demonstrate strong critical thinking and analytical reasoning skills.
- Ability to work on multiple priorities effectively.
- Ability to prioritize conflicting demands.
- Ability to execute assigned project tasks within established schedule.
- Ability to work collaboratively in a team environment.
- Ability to communicate effectively in the service of users and colleagues.
- Writes and communicates clearly and concisely.
- Possesses sound documentation skills.
- Ability to maintain confidentiality.
- Must demonstrate exemplary customer service skills
The successful candidate(s) for this position will be subject to a pre-employment background check.
If you are interested in applying for employment with The Johns Hopkins University and require special assistance or accommodation during any part of the pre-employment process, please contact the HR Business Services Office at firstname.lastname@example.org. For TTY users, call via Maryland Relay or dial 711.
The following additional provisions may apply depending on which campus you will work. Your recruiter will advise accordingly.
During the Influenza ("the flu") season, as a condition of employment, The Johns Hopkins Institutions require all employees who provide ongoing services to patients or work in patient care or clinical care areas to have an annual influenza vaccination or possess an approved medical or religious exception. Failure to meet this requirement may result in termination of employment.
The pre-employment physical for positions in clinical areas, laboratories, working with research subjects, or involving community contact requires documentation of immune status against Rubella (German measles), Rubeola (Measles), Mumps, Varicella (chickenpox), Hepatitis B and documentation of having received the Tdap (Tetanus, diphtheria, pertussis) vaccination. This may include documentation of having two (2) MMR vaccines; two (2) Varicella vaccines; or antibody status to these diseases from laboratory testing. Blood tests for immunities to these diseases are ordinarily included in the pre-employment physical exam except for those employees who provide results of blood tests or immunization documentation from their own health care providers. Any vaccinations required for these diseases will be given at no cost in our Occupational Health office.
Equal Opportunity Employer
Note:Job Postings are updated daily and remain online until filled.
EEO is the Law
Important legal information