Come work at a place where innovation and teamwork come together to support the most exciting missions in the world!
About NGINX Unit
NGINX Unit is a lightweight and versatile open-source web server that can play multiple roles at the same time: reverse proxying, load-balancing, managing apps, and serving static media assets.
Unit is fully configurable in runtime with zero interruption via a user-friendly HTTP RESTful JSON API that enables on-the-fly granular management for engineering and operations. It can natively run web apps in seven different languages.
Unit is intended for use as a basic building block for any web architecture regardless of its complexity, from enterprise-scale deployments to your cat’s homepage.
Unit runs on any modern Unix-like OS and supports different architectures. It is written in pure C with minimum external dependencies and puts a focus on performance, low latency, and scalability. Unit utilizes a complex asynchronous multithreading architecture comprising multiple processes to achieve security and robustness while getting the most out of modern hardware. It optimizes its syscalls and uses lock-free queues over shared-memory IPC to communicate with application processes with almost zero overhead.
At the same time, it's still quite a young project with lots of space for improvement in all areas of its already broad functionality.
More information: [...] the Team
The team behind Unit is quite small, lead by experienced developers of the original nginx. Our development process is rather old style, with mailing lists being heavily used for communication and patch exchange. Also, we put a lot of focus on details and maintaining a consistent code style where every line and every character matter.
We're looking for an experienced C developer to strengthen our efforts in making Unit the world’s most popular server for web application development and deployment.
Research, design, and implement new functionality
Maintain existing code base; debug, refactor, and optimize code
Discuss issues with colleagues to search for solutions and find them
Review patches from other team members
Collaborate with the open-source community on issues and troubleshooting
Knowledge, Skills and Abilities
3+ years of programming experience and language expertise in C/C++
Fluency in Unix-like operating systems and common development toolchains
General knowledge of how CPUs, memory, and OS kernels work
Experience programming asynchronous and multithreading applications
Experience programming client-server applications
Understanding of network and web protocols
Great self-discipline and a strong focus on perfection
Unrelenting desire to learn new things and improve
Love for finding innovative solutions to challenging problems
The Job Description is intended to be a general representation of the responsibilities and requirements of the job. However, the description may not be all-inclusive, and responsibilities and requirements are subject to change.
Please note that F5 only contacts candidates through F5 email address (ending with @f5.com) or auto email notification from Yello/Workday (ending with f5.com or @myworkday.com).
Equal Employment Opportunity
It is the policy of F5 to provide equal employment opportunities to all employees and employment applicants without regard to unlawful considerations of race, religion, color, national origin, sex, sexual orientation, gender identity or expression, age, sensory, physical, or mental disability, marital status, veteran or military status, genetic information, or any other classification protected by applicable local, state, or federal laws. This policy applies to all aspects of employment, including, but not limited to, hiring, job assignment, compensation, promotion, benefits, training, discipline, and termination. Reasonable accommodation is available for qualified individuals with disabilities, upon request.