
C++ Embedded Developer
at AI First, New-age Technology Company for the Digital
Location:Bangalore / Chennai
Type: Permanent
Company Type: AI / Digital Product Design Service based
Job Description
* Experience in C/C++ and have strong experience embedded application development and integration in Linux
* Good in creating unit tests, performing code reviews, optimizing performance and ensuring standards for maintainability
* Debugging, profiling, and performance optimization skills
* Have experience working in a fast paced Agile/Scrum environment
Similar jobs
Responsibilities
- Design and implement software of embedded devices and systems from requirements to production and commercial deployment
- Design, develop, code, test and debug system software
- Review code and design
- Analyze and enhance efficiency, stability and scalability of system resources
- Integrate and validate new product designs
- Support software QA and optimize I/O performance
- Provide post production support
- Interface with hardware design and development
- Assess third party and open source software
Requirements
- Proven working experience in software engineering
- BS degree in Computer Science or Engineering
- Experience in hands-on development and troubleshooting on embedded targets
- Solid programming experience in C or C++
- Proven experience in embedded systems design with preemptive, multitasking real-time operating systems
- Familiarity with software configuration management tools, defect tracking tools, and peer review
- Excellent knowledge of OS coding techniques, IP protocols, interfaces and hardware subsystems
- Adequate knowledge of reading schematics and data sheets for components
- Strong documentation and writing skills
Software development for video streaming solutions. The position is for a developer role who will translate functionality building blocks and components into to software code, integrate the functional components in the architectural framework. The position will be responsible for complete software development including requirements analysis, design, implementation, unit test, integration. Expert in C++, C#, Network protocols like TCP/UDP, design patterns and principles. Hands on with network protocols in C#. Understand cloud technology.
Strong debugging skills. Video streaming hands is preferred. Video Management solutions (VMS) hands on is big plus. It requires closely working with SMEs/ domain experts. Responsible for algorithm development, programming, unit testing, implementation, documentation, maintenance and support of systems software’s in adherence with Industry standards, processes and best practices. Develop high quality, secure, scalable software solutions based on technical requirements specifications and design artifacts within expected time and budget. Assist team members in the development of applications, components, system to system interfaces and complete software solutions. Collaborate with cross-functional teams to determine functional and non-functional requirements for new software or applications Collaborate with SMEs, domain experts, quality assurance and end users to produce cutting-edge robust software solutions Develop product specifications with attention to safety criticality, robustness & reliability, extendibility & flexibility Evaluate existing software solutions to identify areas for improvement, modularization Design and documentation of evolving architecture in terms of UML diagrams, architectural diagrams, state-machines, flow-charts etc. Code implementation, debugging and unit testing
Work with project team to meet scheduled due dates, while maintaining the software quality. Assistance in testing activities as per standard V&V practices and Quality Assurance Maintain thorough documentation of software artefacts as per software development guidelines for moderately-complex projects. Actively look for opportunities to enhance standards and improve process efficiency.
Skills
- Minimum 5+ years of proven experience as software engineer.
- Strong in Network protocols, OOPS concepts and data structures.
- Familiarity with application software development as well as embedded software development
- Experience in software development and coding in various languages (C, C++, C#)
- Excellent knowledge of software and application design, architectural styles and design patterns, architecture tradeoff analysis
- Proficient understanding of any one of code versioning tools (Git, SVN, and Mercurial)
- Familiarity with formal change control and support processes (JIRA, BitBucket, Scrum etc.)
- Understanding of V&V approaches and software quality assurance principles
- Experience with service-oriented architecture (SOA), and cloud technologies would be an added advantage
- A technical mindset with great attention to details, innovation
- Good analytical, communication and presentation skills
Key Shared Accountabilities
Customers: Competence to build and effectively manage interpersonal relationships at all levels with different clients and vendors.
Business Team: Work Closely with business team to understand the needs and deliver by maintaining harmonious relationship.
Desired Behavioural Values
- Commitment to common purpose and goals
- Seating respect on the table
- Displaying Integrity and Ethic
- Taking initiative and ownership
- Being passionate about making a difference
- Constant networking with thought leaders, analyst & special interest groups.
- Collaborate with SMEs, domain experts and quality assurance to produce cutting-edge robust software solutions.
- Dreamer, Creative, Passionate & self-motivated & self-starter
- Actively listen to others and demonstrate understanding of other points of view.
- Showcase likeliness to adjust to changing conditions or priorities.
- Take the initiative to identify, work on problems proactively and lead by example.
- Consistently provide ideas, opinions, or information in a professional way.
- Understand IP & trademark policies and actively promote safe practices in projects.
- Develop embedded Linux Applications
- Work with a worldwide team to integrate the product to meet the requirement
Required Qualifications:
- Degree in Computer Science from a top-tier institution
- Relevant full-time work experience of 4+years
- Strong foundation in computer science, Object-Oriented software, unit testing & test automation with scripts
- Ability to self-teach.
Mandatory Technical Skills:
- Expert level programming in C/C++
- Linux systems programming, data structures & algorithms
- Networked applications
Desirable Technical Skills:
- Linux Board Bring up, device drivers would be an advantage
RESPONSIBILITIES AND QUALIFICATIONS
Responsibilities
+ Design, build and maintain low latency, high-performance electronic trading platform components, with a focus on market data, exchange and client connectivity and risk controls.
+ Deliver continuous optimization for latency, scale and resiliency improvements.
+ Participate in system builds for various markets globally, have curiosity and interest in understanding market microstructure details, work closely with engineering, sales and product teams globally for successful delivery of projects.
+ Basic Qualifications
+ Bachelors or Masters degree in computer science or engineering or equivalent experience
+ 5+ years of professional experience developing deterministic high performance, low latency systems in python/C++ (counted in single digit microseconds)
+ Prior experience with FIX and binary exchange connectivity and market data protocols preferred
+ Strong knowledge of object oriented programming, data structures, algorithms and design patterns
+ Critical path analysis, performance optimization and hardware acceleration.
+ Linux systems programming experience including memory management, concurrent programming infrastructure, and the networking stack
+ Experience developing distributed architecture systems and messaging protocols
+ Strong analytical and problem solving skills
+ Comfortable in a fast-paced environment, self-motivated, results driven and commercially focused
Preferred Qualifications
+ Software development in python/C++ in the context of high performance (low- latency, high-throughput) real-time computing.
+ Familiarity with STL and C++11 language extensions, Boost
+ Network programming (sockets, TCP/UDP/Multicast protocols)
+ Multi-threading, concurrent programming
+ Intimate knowledge of compilers, flow of data at hardware level (memory/ caches, buses) + Some experience with FPGA or other hardware acceleration technologies
+ Experience processing large static datasets as well as high volume ticking data sources
+ Over 3 years' experience in Financial industry (Plus)
Software Engineer(Layer 2/Layer 3)
Location : Gurgaon (WFH currently)
Experience/ Skills Required : 5 to 10 years
To be successful in this role you should be well versed with the concepts of networking and comfortable in C programming in a linux environment for embedded software. As we use Linux, experience with this operating system is a mandatory requirement, knowledge and experience on OpenWrt is a bonus. Working experience with router software development for layer 3 and layer 4 features.
Domain knowledge required: IPv4, TCP/UDP, IPv6, NAT, Firewall (iptables), DHCPv4, DHCPv6, IPv6 prefix delegation, Port forwarding, Source based routing, Policy based routing, L3 QoS, IGMP proxy, IPv6 MLD snooping, DNS, DNS proxy. Knowledge on VoIP is a bonus.
Management methods: TR069, SNMPv2, CLI.
Operating system: Linux, OpenWrt
Programming languages: C(must have), Python
Working for us means having a healthy interest in Software but most of all, you like to work in a team. You like to take initiative and have the “just do it” approach. Having the right mentality and attitude are more important for us than a degree. Dedication, investigation and responsibility are keywords for us. Preferred years of experience in industry/technology: 5-10 years.
Role:
As a Software Engineer you develop new software features and solutions for our fibre connectivity product portfolio. The position offers a wide range of possibilities to work with everything from low-level Linux drivers to high-level applications. You develop for various protocols and HW interfaces, often in complex network scenarios in combination with customer specific requirements. The team is responsible for all SW development for existing and new Home Gateways. This means development of Linux drivers, network functionality, remote Management (TR-069) and VoIP application (sipapp). The development is mainly done in C and in Linux environment, knowledge in Python is an add-on. Products and development are realized in Agile.






