Job Requisition Number: 22243. This position provides development and research support services for the UC Berkeley Partners for Transportation Technology?s Connected Corridors (CC) program. The engineer will provide architecture and java development services as part of the CC development team, supporting research and developing software to provide transportation solutions involving prediction and control of freeway and arterial traffic. The research team provides research and initial software implementation of research results and algorithms, usually in MatLab. The development team takes the results of the research and initial code, and develops a system that implements that research in a first generation software suitable for demonstrating the estimation, prediction, and control of freeway and arterial traffic. In addition, the development team supports the research with data capture, storage, and retrieval; research frameworks and technical support. The ability to marry research, an understanding of industrial/traffic controls and data from the real world, and software architecture and development is a key success factor.
This position involves using advanced software and system design skills in a highly distributed environment using Java development, Java frameworks (Spring, Hibernate), SQL (Postgres) and NoSQL(Cassandra and MongoDB), REST services, Amazon Web Services (primarily EC2), JMS (ActiveMQ). The target system involves high performance, high volume data capture and analysis and real time data processing. You will apply your skills to development of advanced applied research, production ready software systems that will be used to manage traffic within a highly complex urban environment (Los Angeles). The position involves application design and architecture, requirements development, interface design, programming, testing, implementing, and maintaining throughout the entire software application lifecycle. The incumbent provides technical leadership and acts as a resource to other members of the team developing using java tools.
The development team and its members must manage constantly changing priorities, shifting deadlines, a complex set of relationships between research and development teams, and significant technical challenges. The team works within an Agile (SCRUM) environment and is a high performing, focused development group.
30% Responsible for designing system components and implementing results of research. Develops designs for critical system components that can be passed on to other developers or other vendors for implementation. Implements and performs complex application development programming functions at a professional level. Develops real time distributed systems handling high volume data processing and complex data models. May serve on professional committees in field of specialization.
10% Provides architectural, design, and development guidance, providing critical decision making for key systems development efforts.
10% Initiates, designs and uses complex SQL and NoSQL databases. Assists in the database design and implementation, and designs and implements complex data access layers for functional, high performance, and flexible system development and operation.
5% Functions as project manager for complex engineering assignments. Represents the unit and/or Principal Investigator to whom they are responsible at meetings and conferences in matters related to engineering design considerations and financial requirements.
5% Provides cost analysis using time schedules and budgetary considerations.
5% May serve on professional committees in field of specialization.
5% Initiates and recommends changes in development, maintenance and system standards. Is a key member team in defining development, design, and system standards, as well as effective implementation of those standards. Understands and implements as part of the larger team integration and build processes and release management.
5% May supervise in-house development of system or component prototypes.
5% Participates in team quality assurance and testing efforts. Develops and executes moderately complex test plans. Ensures the team applies industry standard testing methods, including unit, functional, performance, and integration testing.
5% Participates in team Agile development efforts and is a key member of developing schedules and project assignments.
5% Ensures work is completed in a timely and efficient manner.
5% Provides direction and guidance to other Development Engineers and Applications programmers.
5% Plans, organizes, and performs the work of a professional engineering team engaged in a specialized engineering phase of a training and/or research program.? Advanced knowledge associated with the planning, development, and construction of engineering systems involving both hardware and software. Some knowledge of industrial controls (specifically in the area of traffic management) or traffic science is extremely beneficial. ? Advanced knowledge of specialized design work as well as the overall field. ? Strong creativity and problem solving abilities to apply principles, practices and procedures within discipline to complete difficult assignments. ? Requires advanced knowledge of applications architecture and programming. In particular, must have experience with large, distributed, enterprise level system development. ? Must understand all levels of system design including design patterns and their implementation at the software component, subsystem, and enterprise system level. ? Requires knowledge of advanced system design concepts including controls, networking, security, operating systems (particularly Linux OS?s), cloud computing, data management, and application servers. ? Requires advanced skills associated with programming design, modification and implementation. Must be proficient with refactoring. ? Has skills needed to develop and implement system implementation plans. ? Must be able to communicate technical information in a clear and concise manner. ? Must be self motivated, work independently or as part of a team, able to learn quickly, meet deadlines and demonstrate problem solving skills. ? Must have senior level skill and experience with Java programming, support of user interfaces through REST APIs, and Java data interfaces for relational (Postgres) and NoSQL (Cassandra and MongoDB) databases. Must have skill and experience with Java frameworks and tools such as JUnit and Spring or equivalent. ? Must have experience working in distributed cloud environments, preferably AWS. Understanding of the AWS EC2 management APIs is a significant plus. ? Must have technical team leadership skill and experience as a senior developer with small development teams of 5-15 members. ? Strong project management skills needed to assume responsibility for accomplishment of research objectives. ? Advanced communication skills, both written and verbal, to convey complex information in a clear and concise manner. ? Advanced interpersonal and presentation skills. ? Ability to work in a highly collaborative manner; readily assess complex challenges and barriers and recommend effective resolutions. ? Demonstrated ability to lead, motivate and influence others.
The University of California was chartered in 1868 and its flagship campus - envisioned as a "City of Learning" - was established at Berkeley, on San Francisco Bay. Today the world's premier public university and a wellspring of innovation, UC Berkeley occupies a 1,232 acre campus with a sylvan 178-acre central core. From this home its academic community makes key contributions to the economic and social well-being of the Bay Area, California, and the nation.