


About Civil Maps
About
At Civil Maps, we believe that efficient, safe mobility can revolutionize the way we live and interact with the world around us. To reach this future, we provide autonomous vehicles with cognition, enabling them to crowdsource 3D maps and make better decisions for safe driving. Our first milestones include providing real-time, localization in six dimensions and producing augmented reality maps, to be used by AVs and humans. Our process of questioning established methods and our artificial intelligence expertise allow us to define the mobility solutions of the future.
Civil Maps' resources are augmented through its partnerships with the leading geospatial, governmental and academic institutions including U.S. Department of Energy, National Energy Research Scientific Computing Center, Verizon Innovation Program, University of California Berkeley and Stanford University.
Connect with the team
Similar jobs

Job Objective:
We are seeking an experienced Developer with a strong background in C++, CUDA programming,
and Linux to guide our development team in building cutting-edge solutions for device
integration and high-performance computing tasks. This is a hands-on leadership position that
combines technical expertise with team management skills to deliver high-quality software
products.
Primary responsibilities:
Software Development:
• Develop and maintain high-performance applications using C++ and CUDA.
• Design and implement parallel algorithms for GPUs to accelerate computational
workloads.
Performance Optimization:
• Optimize CUDA kernels for performance, scalability, and memory efficiency.
• Analyze performance bottlenecks and propose innovative solutions.
Code Review and Testing:
• Conduct code reviews to ensure adherence to coding standards and best practices.
• Develop and execute test cases to validate functionality and performance.
Collaboration:
• Work closely with the software engineering and research teams to understand
requirements and deliver robust solutions.
• Provide technical guidance and mentoring to junior team members when necessary.
Documentation:
• Write and maintain technical documentation, including design specifications and user
manuals.
Required Skills:
• C++: Strong proficiency in modern C++ (C++11/14/17/20).
• CUDA Programming: Extensive experience in developing, debugging, and optimizing
CUDA applications.
• GPU Optimization: Familiarity with memory hierarchy, shared memory, streams, and
warp-level operations in CUDA.
• Parallel Computing: Solid understanding of parallel algorithms and multi-threaded
programming.
• Mathematical and Analytical Skills: Strong foundation in linear algebra, calculus, and
numerical methods.
• Tools: Experience with debugging/profiling tools like Nsight, CUDA Memcheck, or
Job Responsibilities
Responsibilities for this position include, but are not limited to, the following.
Understand requirements and create low-level design using UML
Develop embedded software as per defined software requirements
Software integration & testing
Background & Skills
Education:
B.E/B. Tech/M.Tech/Master (Electronics/Telecommunications/Computers Science)OR equivalent
Experience & Attributes:
2-8 years’ experience in Embedded system software design, development, and testing.
Excellent communication skills, spoken and written English
Must have specialized knowledge :
· Embedded C
· Electronics
· RTOS
· Knowledge of Microcontrollers (RISC, CISC)
· CAN Communication & Protocols like UDS, KWP2000, CANopen and J1939
· MISRA standard - 2000/MISRA 2012
· SDLC, Agile Scrum
· Static analysis & Tools like LDRA or QAC or Vector cast
· Change Management & Tools like JIRA/VSTS
· Version control & Tools like SVN/GIT/Clearcase
· Traceability management & Tools like Reqtify or equivalent
· Design methodologies - like UML
· Software Test Life Cycle
Specialized knowledge – Will be Preferred
· Functional Safety life-cycle & Management - Applies to software design & development
· Safety standards like - IEC-61508, ISO-26262, ISO-25119, ISO-13849
Key Tasks and Responsibilities
· Software requirement specification writing
· Creating design for assigned modules
· Implementing the code for assigned requirements
· Perform unit testing
· Perform peer reviews or inspection of software work products
· Support testing team on defect analysis
· Adhere to Quality processes


Domain Skills
Leads a team of Engineers for designing and architecting next generation platform solutions for clusters/Interior monitoring systems
Architecting the design for new features and technologies for Platform.
Expertise in programming using C, C++ and good understanding of OOAD & UML
Capable of analyzing HW schematics to realize the SW requirements.
Support and resolve issue resolutions and clarification for cross-functional teams.
Support team lead and project manager at program level in resolving open issues
Technical Skills
Expertise in memory management (eMMC, NAND)
Design, Develop and test device drivers in Linux/Android/QNX platform.
Multithreaded programming, usage of IPCs, Interrupts & synchronization methods.
Expertise in using the communication protocols (I2C, SPI & UART) in the device driver.
Expertise in handling Device Tree based configurations.
Strong C & C++ programming skills, OOPS concepts
Linux Architecture knowhow
Strong in software development for real-time embedded systems
Experienced in Design/Architecture Tools like EA
Expertise in SCM Tools like GIT/GERRIT
Ability to create and review changes for Gerrit and participate in a continuous integration loop
Ability to create/understand the build infranstructure using CMake for the middleware components
Experience in Unit test tools like cppunit, gtest.
Know-how and experience of SAFe/Agile Development
Knowledge in Automotive Safety Standards and Processes (ASPICE).
Logical, Analytical and Debugging/Problem-Solving skills
Qualifications
B.E/B.Tech in Computer Science with hands on with Embedded software development on RTOS
- Maintain UNIX/Linux Operating System
- Create and maintain environment for running batch jobs associated with daily batch cycle and batch reporting subsystem
- Work with LAN/Network personnel to ensure compatibility with LAN applications and peripheral hardware to provide end users with reliable and stable working environment
- Support and maintain other vendor database software installed on the LAN servers
- Perform User Access Management.
- Experience supporting day-today administration functions including user account management and script creation
- Apply Patches and Upgrades as necessary. Perform tasks for Backup and Recovery Management including High Availability
- Install and configure storage arrays and allocate SAN and NAS storage to different OS platforms and/or administer ZFS storage pools, file system, snapshots, and clones.
- Experience in Linux hypervisors KVM, XEN.
- Good knowledge on open stack administration and service operations.
- Good experience on veritas net backup software.
- Strong experience in public clouds AWS, AZURE, GCP.
- Solid knowledge of protocols such as DNS, HTTP, LDAP, SMTP and SNM
- Good understanding on AWS outposts hybrid environment.
- Good experience in the windows server and OS side.
- Experience in Monitoring platforms like Zabbix, ELK, Grafana.
- Troubleshoot Hardware Issues, Installation, and testing of computer peripherals
- Perform/Implement Security Monitoring and audit to identify any possible security intrusions or breaches.
- Collaborate with other teams and team members to develop automation strategies and deployment processes
Qualifications:
- Degree in Computer Science, Computer Engineer, or other related courses
- Minimum of 10 years’ experience
- In-depth knowledge of Linux: RedHat, CentOS, Debian, etc.
- In-depth knowledge in Linux virtualization
- good knowledge of UNIX and LINUX Operating systems, file systems, storage environments, and networking protocols
- Knowledgeable in Unix, Linux, Unix, Linux shell scripting. Practical scripting skills in Shell, PERL, Batch, Python
- good DBA skills MySQL, MariaDB, PostgreSQL, Timescale, MongoDB
- Basic Messaging and Collaboration concepts and tools, Server Virtualization
- Practical understanding of Networking - routing, subnets, UDP, TCP, IP, and VLANs
- Backup and Storage Management (Netback up mandatory).
- Familiar and can identify or interpret crash dump files and core dump files and monitor System Logs

- Programming experience in embedded C and python
- Experience in embedded systems development and troubleshooting and with real-time operating systems.
- Experience with embedded C programming for microcontrollers like PIC, Microchip in MPLAB
- Basic execution of process commands in Linux
- Experience in handling the raspberry pi
DUTIES & RESPONSIBILITIES
- Own & lead full cycle development: design, implementation, testing & debugging for an automotive product.
- Create conceptual system designs, assess risks, conduct design trade studies, and develop a product that meets feature requirements for integrating sensor, processing and software systems.
- Lead innovative system development projects with responsibility for achievement of cost, schedule, and technical requirements, with an eye toward technology maturation, transition, and follow on work.
- Generate comprehensive engineering documentation.
- Responsible for end-to-end system firmware development to include power management, boot loaders, scheduling, RTOS and /or bare metal implementations.
- Troubleshoot and resolve complex software problems in embedded real-time systems.
- Source code development, review & maintenance (C/C++).
- Dive into & take ownership of critical design issues.
- Analyse & propose solutions for performance bottlenecks.
- Address all aspects of technology readiness, including manufacturability.
- Help build robust methodology and processes to deliver the technology to products.
REQUIRED SKILLS & EXPERIENCE
- Experience in embedded architecture, external interfaces, product constraints, along with ability to develop architectures / features that meet these constraints while providing new value for the platform.
- Experience in system architecture, operating system, device architecture, hardware design.
- Strong background in software methodology & full cycle development (Design, implementation, testing & debugging).
- Expertise in embedded microcontrollers’ architecture.
- Expertise in software designing and programming in C/C++ is a must.
- Algorithm modelling, benchmarking, implementation & digital signal processing.
- Understanding of hardware & software co-verification & emulation platforms
- Experience in understanding hardware, clock-level issues, bridges, delays, interrupts, clock gating, polling etc.
- Experience with lab instrumentation like oscilloscope, logic/ protocol for debugging embedded systems at HW level.
- Bachelors | Masters degree in Computer Science or Electronics & Communication engineering with 2-5 years of relevant experience is a must.


ROLES AND RESPONSIBILITIES:
• Articulate complex problems, communicate viable architecture and design approach in a clear and concise manner.
• Thrive in a collaborative team environment and work with ambiguous product requirements.
• Evaluate opensource technologies, development stack and strive for new learning, continued growth by applying industry best practices and processes.
• Provide thought leadership in cloud based VoIP(Voice/WebRTC) services and bring your passion for technology to motivate and inspire on a day to day basis.
SKILLS REQUIRED
• 4+ years experience in building highly available, fault tolerant and scalable real-time communications(Voice and WebRTC) systems in the cloud (AWS preferred).
• Demonstrated history of building complex, high-performance applications in C/C++.
• Proven expertise in network and system performance optimizations(including kernel, containers and virtualization technologies).
• Proficiency in telecom protocols (SIP, SDP and RTP/RTCP) and internet protocols(IPv4/IPv6, TCP and UDP) is desirable.
• Deep understanding of all aspects of WebRTC from audio codecs, to networking (ICE, STUN, TURN) up to server side components needed to deploy the technology at scale (SFU, MCU, Relays) and network security(TLS, SRTP).Strong analytical, problem solving and troubleshooting skills.
• Programming experience with Python, Golang and Lua will be a plus.
• Prior experience working with Asterisk, FreeSWITCH, RTPEngine, Kamailio, or OpenSIPs will be a plus.





