Services

Network software engineering

Building future-proof networking software

Our experience in a nutshell

Since 2011, CodiLime has been helping networking hardware and software providers, startups and telcos build and enhance their products. We cover every step of the software development process from UX prototype to MVP to the release of the final product, providing expertise in UX design, frontend and backend development, and automation.

Full stack development

Full stack development

CI/CD

CI/CD

Software integration

Software integration

Hardware integration

Hardware integration

Test automation

Test automation

PoC / MVP development

PoC / MVP development

UX & UI

UX & UI

Full stack developmentFull stack development

If you are a startup, the CodiLime team can help you transform your idea into a final product ready to be launched on the market. If you are an enterprise, our engineers, project managers and solution architects will help you enhance your product regardless of its complexity level.

How we help

  • Design or enhance a system’s architecture
  • Validate a potential product or solution by building a Proof of Concept (PoC)
  • Design and deliver a novel solution that spans different layers: software, networking and hardware
  • Deliver a custom-tailored orchestration solution
  • Help improve non-functional characteristics for the system (performance, backups, monitoring, security, scalability, recoverability, reliability, observability)
  • Provide full stack development of cloud-native apps:
  • UX and UI
  • CI/CD custom builds
  • Automated tests and QA

CI/CDCI/CD

Having experience in designing and delivering both small and complex systems, we know all the dos and don'ts of automated product deployment. CodiLime teams can build CI/CD pipelines from the ground up or optimize existing ones.

How we help

  • Build full infrastructure for CI/CD platforms from scratch or utilize any of the SaaS CI/CD solutions available on the market
  • Build CI/CD and optimize pipelines that support different configurations using on-prem, virtualized or cloud environments according to the client’s functional and non-functional requirements
  • Build comprehensive CI/CD monitoring dashboards applying best project observability patterns
  • Provide maintenance and hosting services for the most demanding CI/CD systems
  • Build cloud deployment wizards allowing for one-click deployment of complex software in the cloud

Software integrationSoftware integration

We integrate various types of software into a unified single system regardless of their complexity. Cloud, containers, IaaC, SD-WAN, orchestration—these are our bread and butter.

How we help

  • Migrate a system or component to a cloud
  • Migrate a solution to be Infrastructure-as-a-Code (IaaC)-compatible
  • Integrate an existing SD-WAN solution with a client’s system via API—either for the software solution or hardware integration
  • Integrate your software with:
  • Orchestrators or virtualization platforms (K8s/OpenShift and OpenStack)
  • Public, private or hybrid clouds
  • Kubernetes platform (such as integration via Operator Framework)
  • SR-IOV clusters
  • Operating systems (such as Linux, Windows Server)
  • Networking devices via network APIs (YANG/Netconf, etc.) or operating system drivers and user-space solutions (such as DPDK)
  • Monitoring tools (Grafana, Prometheus, Zabbix)
  • Other third-party solutions

Hardware integrationHardware integration

For data center hardware providers and large telcos, we provide hardware integration services including DPDK, smartNIC, P-4 programmable hardware and FPGA to help customize hardware and software to precise requirements.

DPDK

  • Develop DPDK Poll Mode Drivers for various hardware platforms
  • Integrate DPDK drivers with a number of applications
  • Contribute to DPDK framework by fixing issues and extending the interfaces according to new PMD driver requirements
  • Develop performance tests to show that switching to DPDK improves performance

SmartNIC users and manufacturers

  • Implement a desired network function using P4 (if P4 language is supported by the given smartNIC)
  • Write eBPF programs to be executed within the host system or SmartNIC kernel for improving performance and maintenance costs of the solution
  • Adapt the user’s existing Control/Management software (e.g. SDN controller) to control the given smartNIC at runtime
  • Develop firmware for smartNIC
  • Develop drivers (DPDK PMD or kernel module)
  • QA—automated performance test environment (performance and functional tests)

P4

  • Consult the use case with the client focusing on all possible traffic flows to be served within it
  • Verify which P4 architecture model (PSA, V1Model, PISA or other) is supported by a given target (switch, smartNIC) and prepare a P4 implementation for this precise model
  • Design the entire dataplane processing pipeline (match-action tables for each control block) using P4
  • Create a P4 code compilation and build it using the tools provided by the target manufacturer
  • Conduct functional tests for a newly created dataplane
  • Adapt the client’s existing Control/Management software (e.g. SDN controller) to control the given P4-target at runtime

FPGA

  • IP Core integration and development (VHDL)
  • HW simulation (e.g. using Active-HDL, ModelSim)
  • Smoke tests executed directly on hardware
  • API level tests of hardware designs
  • Building full, system-level, dynamic acceptance tests alongside a complete virtual environment reflecting end-user use cases
  • Building full CI/CD pipelines verifying the hardware design in a continuous mode with full visibility for developers, QA and managers (domain, software and hardware knowledge on board)

Test AutomationTest Automation

At CodiLime, we take on full responsibility for your product quality assurance processes, starting from Quality Assurance at the development stage up to end-user tests (including UX). In our testing solutions, we strive to use all the benefits of automation.

How we help

  • Build a comprehensive testing infrastructure (physical and virtual testbeds) with a modern IaC approach
  • Define and implement a quality assurance plan/testing plan including regression, long run, performance, E2E tests regardless of the complexity level of the SUT (System Under Test)
  • Implement, customize or reuse an existing testing framework according to the client’s project needs
  • Maintain, refactor and customize existing testing solutions
  • Implement custom tools needed to test your specific hardware and software (network traffic generators, embedded systems tools for hardware checks, test data generators, etc.)
  • Integrate your test framework with any CI/CD pipeline

PoC / MVP development / UX prototypePoC / MVP development / UX prototype

If you are a startup, an MVP will definitely help you verify your business concept. A Minimum Viable Product (MVP) is a version of a software product that has enough functionalities to satisfy the needs of early adopters and at the same time convince investors to invest in it. An MVP is a real-life demonstration that your idea works and can be developed further—into a fully functional product.

If you need funding right now but don’t have time to develop an MVP, a clickable UX prototype is another option. This will be the first showcase of your product, its functionalities and a navigation flow. Armed with a physical prototype, it will be easier to check if your ideas work and convince others to back them.

If you are an enterprise, we can build a PoC for you. A Proof of Concept (PoC) is built to demonstrate that a product or feature you have designed will work. You can use PoC to verify the validity of your design idea or assumption. If it works, it can be developed further.

How we help

CodiLime has expertise in every development stage: UX design, frontend, backend and final release:

  • Provide cross-functional teams made up of UX designers, front- and backend developers, product owners and scrum masters
  • Select the technology stack that matches your business goals
  • Build CI/CD to enable fast releases and automation of your product
  • Develop, test and release the final product either in the cloud or on the client’s premises
  • Design and build a graphical user interface to ensure best user experience
  • Design and build a PoC to test your ideas

UX & UIUX & UI

According to our analysis, 92% of network apps do not meet solid UX criteria in terms of ease of use, look and feel, components and accessibility. This led us to create the UX score, which we can use to quickly but thoroughly rate almost every network application using these four criteria. Based on the score, we prepare a plan for improving your network application’s UX.

How we help

  • Analyze business and end-user needs specific for your network application, even those generating mountains of data
  • Create an information architecture for information-heavy environments
  • Research ideas and provide solution benchmarks
  • Redesign the UI according to modern usability standards
  • Ensure proper heavy data visualization
  • Conduct usability tests on end-users to iron out wrinkles
  • Build an interactive clickable UX prototype to demonstrate the product idea and show the navigation flow
  • Build a graphical user interface

Our technology stack

Contact us

For more information see our Privacy policy