Golang Software Engineer with experience in Python/C
CodiLime · Warsaw, Masovian Voivodeship, Poland
IT Services and IT Consulting · 201-500 employees
About the role
Maintain and optimize core system components using Golang and C while enhancing system observability and telemetry. Develop automated tests in Python and analyze complex multithreaded dependencies to resolve bugs.
What they look for
Requirements
Requires strong proficiency in Golang and gRPC, along with experience in C programming and Python for automation. Candidates must have hands-on experience with Bazel and debugging tools like GDB and pprof.
Benefits
Full description
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
The project is focused on monitoring, maintaining, configuring, deploying, and improving enterprise router software. System design challenges include everyday maintenance, refactoring, and test automation. The scale of the project allows for the development of engineering skills in many dimensions. The product owner and technical leader manage the backlog. Tools and technology will not limit you in everyday tasks. You will also be a key person in designing solutions.
What else you should know:
- The team is a group of passionate people who treat every day as a new challenge and take ownership of tasks
- The team consists of less than 6 people, including a technical team leader, an engineering manager, and Python, Golang engineers
- The client is based in the US
We work on multiple interesting projects at the time, so we may invite you to the interview for another project if we see that your competencies and profile are well suited for it.
Your role
As a part of the team, your responsibility will be to:
- Maintain and optimize: Maintain core system components and drive optimization tasks focused on performance and speed
- Enhance observability: Work closely with logging, monitoring, and telemetry features, improving error handling and system visibility
- Develop and refactor: Develop software mainly using Golang and C, while maintaining and gradually replacing legacy Bash scripts
- Ensure high quality: Create automated tests using Python to cover regressions and bridge coverage gaps
- Debug and analyze: Investigate complex bugs, track system calls, and analyze multithreaded dependencies in a codebase
- Collaborate technically: Take part in technical discussions with the team to define how to best implement requirements
Do we have a match?
As a Software Engineer, you must meet most of the following criteria:
- Strong Golang proficiency: Deep practical knowledge of Go as your primary development language, including experience with gRPC
- C & Python skills: Experience in C programming and using Python for test automation
- Build system expertise: Practical, hands-on experience with Bazel
- Advanced debugging: Strong analytical skills with hands-on experience in GDB, ltrace, pprof
- Hacker mindset: High level of patience and a strong ability to analyze multi-threaded code and complex system dependencies
- Language skills: English at least a B2 level for smooth team communication
Beyond the criteria above, we would appreciate the nice-to-haves:
- YANG model: Familiarity with or willingness to learn the YANG data modeling language
- CLI & Shell: Experience in writing and refactoring complex bash scripts
- Network concepts: Basic knowledge of network protocols and networking device software architecture
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