Get to know us better
CodiLime is a software and network engineering industry expert and the first-choice service partner for top global networking hardware providers, software providers and telecoms. We create proofs-of-concept, help our clients build new products, nurture existing ones and provide services in production environments. Our clients include both tech startups and big players in various industries and geographic locations (US, Japan, Israel, Europe).
While no longer a startup - we have 250+ people on board and have been operating since 2011 we’ve kept our people-oriented culture. Our values are simple:
Act to deliver
Disrupt to grow.
Team up to win.
The project and the team
We are working with the latest technologies of modern networking. We create user-space and kernel-space drivers for advanced network interface cards (smartNIC) and integrate them with software and platforms. Our focal point is hardware offloading for virtualized routers and switches.
What else you should know:
The team consists of developers, QA, and DevOps engineers
Most of the work is R&D, there is a very small amount (or none) of maintenance
We use the Agile approach (kanban/scrum) whenever possible
We work with both the US and Europe
Your role
As a part of the project team, your responsibility will be to:
Develop software using C and (sometimes) C++ and create unit tests for your code
Research and define how to best implement new client requirements
Take part in technical discussions with the team and the client regarding the architecture of the developed solution
Fix bugs efficiently and effectively and find workarounds for blockers
Build and expand the technical knowledge base
Do we have a match?
As a Software Engineer, you must meet most of the following criteria:
Excellent knowledge of C programming language
Experience in working with Linux
Good knowledge of low-level programming and/or driver development
Basic networking knowledge (Ethernet, IP, TCP/UDP, routing, NAT, etc.)
Excellent knowledge of code writing, reviewing and testing processes in a version controlled environment (GIT).
Good communication skills, English (at least B2 level)
Be a team player - you will rarely work alone on your assignments
Beyond the criteria above, we would appreciate the nice-to-haves:
Advanced networking knowledge (VLAN, VxLAN, MPLS, VRFs, SR-IOV, FRR, etc.)
Experience in user-space drivers development using the DPDK library
Experience with hardware offloading solutions (especially for network offloading)
Experience with SDN solutions (Tungsten Fabric, OvS) or network OS (SONiC, OpenWRT)
Experience in working with Software Houses
More reasons to join us
Flexible working hours and approach to work: fully remotely, in the office or hybrid
Professional growth supported by internal training sessions and a training budget
Solid onboarding with a hands-on approach to give you an easy start
A great atmosphere among professionals who are passionate about their work
The ability to change the project you work on