The RENEW team at Rice University is seeking a full-time software engineer to develop tools for real-time massive MIMO systems.
As a member of the Rice Wireless team at Rice University in Houston, TX, the Software Engineer will be responsible for developing advanced and high-performance software tools for real-time massive MIMO systems for our wireless projects, especially the RENEW project (renew-wireless.org). The Engineer will work very closely with the Professors and the Project Lead Engineer and industry collaborators, to architect open-source software targeting next generation wireless systems.
We are seeking candidates who have demonstrated ability to lead and/or work collaboratively in teams comprised of individuals of diverse backgrounds, skills, and perspectives. We seek greater representation of women, minorities, people with disabilities, and veterans in disciplines in which they have historically been underrepresented; to attract international students from a wider range of countries and backgrounds; to accelerate progress in building a faculty and staff who are diverse in background and thought; and we support an inclusive environment that fosters interaction and understanding within our diverse community.
Ideal candidates must be able to understand high-level engineering requirements, research and propose solutions, and be able to execute on those solutions for the purpose of supporting scientific research efforts.
- Develop system software for a network of massive MIMO and 5G radio access network (http://renew.rice.edu).
- Designs and develops applications that may involve sophisticated data manipulation.
- Works with a variety of users to gain information, and develop intra-system tradeoffs between different users, as necessary; interacts with a diverse client base and outside vendor contacts.
- Maintains and updates existing programs
- Troubleshoots and solves technical problems
- Creates programs to meet reporting and analysis needs
- Designs and implements user and operations training programs
- Provides production system support and issue resolution
- Documents changes in software for end users
- Follows team software development methodology
- Serves as technical resource with respect to applications
- Performs all other duties as assigned
- Bachelor’s Degree in computer science, computer engineering, electrical engineering or a related field (MS or PhD is preferred)
- Two years of related experience in
- developing software systems, especially that involves the network stack and distributed systems
- working with and managing large codebase
- using the Linux Systems and Programming in Linux Environment
- Skills Required
- Strong mastery of command-line scripting and familiarity with Linux’s command-line tools
- Knowledge of Python and ability to develop test scripts and high-level applications for debug and visualization of low-level software
- Deep knowledge of Software Engineering design principles such as project life cycle, source control (SVN, Git)
- Ability to program & script across multiple platforms and languages
- Demonstrable Expertise in C/C++
- Current knowledge of latest software and design standards
- Ability to define and solve logical problems for technical applications
- Knowledge of and ability to select, adapt, and effectively use a variety of programming methods
- Ability to recognize and recommend needed changes in user and/or operations procedures
- In lieu of the education requirement, additional related experience, above and beyond what is required, on an equivalent year for year basis may be substituted
- Experience with high-performance software development and strong interest in wireless systems is highly preferred
- More than one year of experience in wireless stack development, performance measurement and optimization of highly data and task parallel workloads, and experience working with Continuous Integration (CI) / Continuous Delivery (CD) are preferred
- Familiarity with x86 architectures and programming FPGAs are preferred