Senior Software Engineer
Reporting to the Manager of Systems and Tools, CENIC's Senior Software Engineer designs, builds, and implements robust software solutions to support CENIC’s organizational goals and objectives, including support of the CENIC network. The position provides advanced-level programming expertise for a variety of systems integration, tools development, software support and troubleshooting activities. The Senior Software Engineer actively works on multiple complex tools and software projects simultaneously. Therefore, the position requires the ability to prioritize and execute tasks in a dynamic environment, managing multiple projects in order to complete them successfully and within expected timelines.
The bullet points below detail the primary responsibilities and duties of the role. This is not considered a comprehensive list of job responsibilities. These are essential duties the Senior Software Engineer is expected to perform in the normal course of work. Non-essential responsibilities, those considered peripheral, incidental or a minimal part of the job, are not specified in this section.
- Work with stakeholders to define requirements and implement software used to instrument, manage and troubleshoot large-scale diverse networks.
- Use robust and secure software development principles: robust exception handling, input validation, proper application and use of cryptographic algorithms and libraries and proper handling of concurrency issues.
- Identify, troubleshoot, and resolve problems relating to internal mission-critical software applications.
- Document code consistently throughout the development process.
- Responsible for communicating with customers, network engineers, systems administrators, and vendor’s technical support staff regarding programming needs and performance, as well as end user support for related tools developed.
- Coordinate debugging and problem resolution work with users and testers as needed.
- Review, to the extent possible, changes in code and the environment that will affect security and system performance.
- Provide recommendations to leadership and stakeholders concerning issues with the software development management stack.
- Maintain code bases, releases and derivations in modern revision control systems (e.g., git and SVN).
- Tracking of identified software bugs (including vulnerabilities) in a structured manner and reporting upon both bug severity and closure statistics.
- Review and maintain legacy code.
SECURITY POLICY REQUIREMENTS:
Take individual responsibility, consideration, and awareness, as appropriate to the position, for security of CENIC and CalREN computer systems, the CalREN backbone, CENIC network equipment, and CENIC computing accounts; for the security and privacy of CENIC data and data pertaining to CENIC employees; and for the security and privacy of all systems, networks, and data pertaining to CENIC Associates and peers. Look for opportunities, procedures, and tools to improve CENIC's privacy and security practices. Report any concerns about CENIC security and privacy to your manager, the CENIC Security Team and/or CENIC Executive Management. Work closely with the CENIC Security Team to identify, discuss, and implement software tools and solutions in support of CENIC’s networks, network security designs, and implementations of network security policies, procedures, and technologies.
KEY SUCCESS FACTORS:
- Solid understanding of the principles of routing, IP network and server performance monitoring and management using technologies such as SNMP v2/3 and client/server programming.
- Ability to multi-task and stay organized in a dynamic work environment.
- Good knowledge of mathematical and statistical principles and formulas.
- Expert knowledge of maintaining and debugging live software systems.
- Expert knowledge of writing program documentation.
- Expert knowledge of networking technologies from the Unix programmer's perspective.
- Expert knowledge of robust and secure software development (e.g., CERT, BSIMM).
- Expert knowledge of Python, Perl, and PHP in Linux-based environments.
- Expertise using static and dynamic source code analysis tools (e.g., Fortify, Coverity, Vericode, valgrind).
- Foundational knowledge of computer security, application of cryptographic techniques and encryption.
- Familiarity working with MySQL/MariaDB, NoSQL (e.g., Cassandra, Elastic), PostgreSQL and Microsoft SQL databases and building database-backed web applications.
- Experience in the use of cloud platforms including both compute and storage aspects of Amazon AWS and/or Google’s Cloud Platforms.
- Familiarity with Java, C++ and object-oriented programming concepts.
- Familiarity with authentication methods including LDAP, OAuth2, and SAML.
- Familiarity with programming applications allowing for hierarchical group and permissions inheritance.
- Familiarity with TLS-based security mechanisms and certificate management.
- Familiarity with implementing change control, QA, regression testing procedures and methodologies, including the setup and use of source code version control (e.g., SVN, GitHub) and test harness integration used for automated regression testing.
- Familiarity with logging frameworks and methodologies.
- Experience migrating legacy code to new platforms and writing technical documentation for migrated code.
- Experience writing robust software to integrate data and functionality across applications from different vendors.
- Experience working and coordinating with network engineers, systems engineers, and cyber security teams.
- Strong understanding of network tools and data formats such as rrdtool, netflow, sflow; standard networking and host MIBs.
- Experience with commercial and custom software integration using standards-based protocols and interfaces.
- Experience in all aspects of the software development life cycle from formal user requirements definition through support of developed applications.
- Experience working in a diverse, team-oriented, collaborative environment.
- Excellent written and verbal communication skills.
REQUIRED EDUCATION AND/OR EXPERIENCE:
Four-year degree in computer science or related field or equivalent work experience
PREFERRED EDUCATION AND/OR EXPERIENCE:
Experience supporting a 24x7x365 large-scale network environment.
This position operates in a professional office environment with standard office equipment including computers, telephones, photocopiers and filing cabinets.
Participate in on-call rotation for escalation support of technical issues, supporting the 24x7x365 production environment.
Out-of-area and overnight travel may be required depending on CENIC’s business needs.
An employee must be able to maintain job focus despite constant in person and telephone interruptions. An employee is regularly required to communicate clearly, often via phone or email, in English and required to use hands or fingers to handle or feel objects, tools and/or controls. An employee is required to stand, walk, sit, reach with hands and arms, climb or balance and stoop, kneel, crouch and/or crawl. An employee must occasionally lift and/or move up to 50 pounds. Specific vision abilities required include close vision, distance vision, color vision, peripheral vision and the ability to adjust focus. Reasonable accommodation may be made to enable individuals with disabilities to perform the job functions.
CENIC connects California to the world—advancing education and research statewide by providing the world-class network essential for innovation, collaboration, and economic growth. This nonprofit organization operates the California Research and Education Network (CalREN), a high-capacity network designed to meet the unique requirements of over 20 million users, including the vast majority of K-20 students together with educators, researchers and other vital public-serving institutions.
CENIC’s Charter Associates are part of the world’s largest education system; they include the California K-12 system, California Community Colleges, the California State University system, California’s Public Libraries, the University of California system, Stanford, Caltech, and USC. CENIC also provides connectivity to leading-edge institutions and industry research organizations around the world, serving the public as a catalyst for a vibrant California.
CENIC is an equal opportunity employer and makes employment decisions on the basis of merit. We want to have the best available person in every job. CENIC will not discriminate against employees or applicants for employment on any legally-recognized basis (“protected class”) on the basis of race; religious creed; color; national origin; ancestry; physical disability; mental disability; medical condition, including genetic characteristics; genetic information; marital status; sex; pregnancy, childbirth or related medical conditions; actual or perceived gender; gender identity or expression; sexual orientation; civil air patrol membership; service in the military forces of the State of California or of the United States; lawful conduct occurring during nonworking hours away from company premises; and age 40 or over. (AA/EOE)
TO APPLY FOR THIS POSITION:
Please send your resume with salary history and current salary requirements to:
16700 Valley View Ave., Suite 400
La Mirada, CA 90638
Attn: Senior Software Engineer
You may send your resume with salary history and current salary requirements via e-mail to firstname.lastname@example.org. "Senior Software Engineer" must be stated in the subject line of the e-mail.
Applications will be accepted until the position is filled.