Job Description: Senior Software Engineer- Embedded Systems
Videogram is looking for Software Engineer in Embedded Systems who will be responsible for designing the embedded systems and installing them in machines and tools. You will be playing an important role in our software team who will be responsible to design and develop the software that controls the processor (micro-controllers and digital signal processors) of the machine. You come with a role as a professional Embedded System Software Engineer to execute a complete embedded software development lifecycle.
Responsibilities:
- Design and implement software of embedded devices and systems from requirements to production and commercial deployment. Responsible for the complete embedded software development lifecycle
- Design, develop, code, test, and debug system software
- Coordinate with the engineers from other disciplines to develop the end product of the requisite standards
- Customize the software to suit the needs of the product nature and expected functioning
- Debug the system to remove the anomalies and inconsistencies
Requirements:
- Candidates require a bachelor's degree in computer science, electrical engineering, software development, embedded software, etc.
- The candidate should be an undergraduate in Computer Science or a relevant field
- Hands-on experience in C++11 or later programming languages
- Knowledge of GIT Version control
- Experience in doing bare metal or RTOS development
- Hands-on experience in developing the code in Linux
- They require exceptional programming skills and competence in using software tools.
- Knowledge of operating systems and of the interaction between hardware/software is important for this profile.
- The attributes of problem-solving ability, analytical skills, proactive behavior, and an adaptable approach are important in this position.
- This discipline of engineering provides scope for creative minds and poses challenges to perform quality work.
- Scripting in Python & Bash is an add-on
- Experience in any of the following technologies:
UART | SPI | I2C |MIPI DSI |Display Port | Low-Level Sata
Additional/ Desirable Interests:
- Personal interest in videography/ photography and audio production
- Experience working programmatically with videos/ images/ audio
- Exposure to low-level details of any video/ image codecs
- Exposure to movie container file formats especially QuickTime/mp4
- Working knowledge of exFAT file system
Similar jobs
Roles and Responsibilities:
- Strong experience with programming microcontrollers like Arduino, ESP32, and ESP8266.
- Experience with Embedded C/C++.
- Experience with Raspberry Pi, Python, and OpenCV.
- Experience with Low power Devices would be preferred
- Knowledge about communication protocols (UART, I2C, etc.)
- Experience with Wi-Fi, LoRa, GSM, M2M, SImcom, and Quactel Modules.
- Experience with 3d modeling (preferred).
- Experience with 3d printers (preferred).
- Experience with Hardware design and knowledge of basic electronics.
- Experience with Software will be preferred.ss
Detailed Job role (daily basis) done by the IOT developer.
· Design hardware that meets the needs of the application.
· Support for current hardware, testing, and bug-fixing.
· Create, maintain, and document microcontroller code.
· prototyping, testing, and soldering
· Making 3D/CAD models for PCBs.
About Statcon Electronics
Statcon Electronics India Limited Statcon Electronics India Limited is a company specializing in the field of power electronics since its inception, with its roots going back to 1986. It has held prestigious clientage both nationally and internationally, with ABB, Alstom, BHEL, Indian Air Force, Indian Army, Indian Railways, GAIL, and Indian Oil, to name a few. SEIL has a diverse portfolio, spanning across 4 sectors – Railways, Power, Defence and Solar energy.
About the position
We are looking for a multiple embedded software engineers with experience in developing firmware for controlling power electronics systems. Openings are available for senior and principal engineer positions across multiple product streams, and target markets include the Indian subcontinent, Africa and North America.
Required Technical skills
- Demonstrated experience in developing embedded firmware for real-time power electronics systems using 16/32 bit ARM microcontrollers (ST Microelectronics preferred).
- Must have shipped at least 1 major relevant product to the market which meets standard industry specifications. Experience with designing for North American/European markets a plus.
- Experience with common communication protocols such as SPI, I2C, USB, UART, Bluetooth, Ethernet, RS232, and RS485
- Experience with peripherals and systems such as ADC, DAC, timer, GPIO, PWM, DMA, NVIC, serial and parallel interfaces, memory, bootloaders and watchdog timers
- Proficiency in advanced algorithm development using Embedded C
- Experience with embedded software tools such as editors, assemblers, compilers, debuggers, simulators, emulators and Flash/OTP programmers.
- Thorough understanding of power electronics topologies and control strategies
- Good grasp over digital signal processing techniques
- Ability to read and interpret component datasheets, PCB schematics and layout design
- Familiarity with using measurement devices such as oscilloscopes, multimeters, function generators and logic analyzers to bring up and debug hardware
- Demonstrated knowledge of firmware development best practices (code reviews, unit tests, Software Configuration Management, version control using git etc.)
- Excellent documentation skills, and a good grasp over the English language
- Comfort in using modern collaborative tools such as Slack/Microsoft Teams, JIRA/Trello/Microsoft Planner, Confluence/Microsoft OneNote and the like.
Bonus Technical skills
- Experience using at least one scripting language, preferably Python
- Experience with designing for North American/European markets
- Experience with designing for IEC and BIS standards
- Familiarity with EMI/EMC process
- Ability to simulate power electronics systems using Simulink/MATLAB or equivalent open-source tools
- Familiarity with agile software development processes
- Experience with Linux administration using command line
Soft skills
- Ability to mentor junior engineers and generate testing procedures for people of all skill levels
- Excellent inter-personal skills
- Strong attention to detail with the ability to work on tight deadlines
- Team player with the ability to work independently under minimal supervision
- Excellent problem-solving skills
- Ability and desire to learn new technologies quickly
Qualifications
- Junior Engineer: A Master's (preferred) in Electrical/Electronics/Computer Engineering with 1 year of industrial experience, or a Bachelor's with 3 years of relevant industrial experience.
- Senior Engineer: A Master's (preferred) in Electrical/Electronics/Computer Engineering with 4 years of industrial experience, or a Bachelor's with 6 years of relevant industrial experience.
- Principal Engineer: A Master's (preferred) in Electrical /Electronics/Computer Engineering with 8 years of industrial experience, or a Bachelor's with 10 years of relevant industrial experience.
Responsibilities
- Develop, implement and test cutting-edge algorithms for medium and high-power AC-DC, DC-AC and AC-AC conversion of 1 phase and 3 phase AC systems up to 440 V AC, and DC-DC conversion of systems up to 1000 V DC.
- Develop sensing and IoT solutions for power electronics embedded systems
- Convert product requirements into technical specifications for Indian and international markets
- Cover all stages (pertaining to firmware) of V model for product development
- Generate technical documentation describing product functioning and test procedures for hand-off to SQA
- Debug product failures in the field using data-driven analysis techniques
- Mentor junior engineers
- Host research talks on emerging technologies within the company
Statcon Electronics is an Equal Opportunity Employer and considers applicants for all positions without regard to race, color, religion or belief, age, marital status, military/veteran status, genetic information, sexual orientation, gender identity, physical or mental disability or any other characteristic protected by applicable laws. Statcon Electronics is committed to creating a dynamic work environment that values diversity and inclusion, respect and integrity, customer focus, and innovation. For more information, visit www.sindia.co.in.
Hi
About us
Job description
Requirements
- C/C++ is a must. Rust is preferred. We already have part of the core product written in Rust. If you know Haskell, please let us know. We don't use Haskell in our stack but like folks who know it.
- It is essential that if you have done courses or have work experience in Operating Systems, Distributed Systems, and Computer Networks.
- Good exposure to debugging (more than just `!analyze -v`). We suck at debugging here, so can use your help!
- Great version control (Git) hygiene and familiarity with CI/CD. Test- and issue-driven development (that's our new term).
- Candidate should prioritize documentation to meeting (can't emphasize enough). Who has time to talk and listen (and forget) when one can write and read? During the interview, we may ask you how to organize your notes, references, and knowledge (We use Notion and self-hsoted Gitlab).
- Familiarity with scripting languages such as Python or Nim is appreciated. Both languages are used heavily in DevOps here.
- If you don't know Java, that's +1 ;-p (just kidding).
Regards
Team Merito
- 32-bit Microcontroller knowledge is essential (ARM Cortex based micro-controllers (STM32).
- Esp32 architecture knowledge is essential.
- Strong experience in C, C++, Free-RTOS
- Strong experience in CUBEMX IDE, MDK Version 5 – Keil, Arduino IDE environment
- Good knowledge in HW and communication protocols like CAN, SPI, UART, I2C, USB
- Good knowledge in TFT Displays and Sensors is added advantage
- Good knowledge of implementation of motor controls as required, pulse width modulation schemes (PWM).
- Good knowledge of power electronics (TRIACs, MOSFETs, IGBTs, gate drivers) and require protections (Over/under voltage/current).
- Document firmware designs, specifications, test plans, revisions and produce test reports
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.
- Bachelor’s degree in Electrical or Electronics Engineering with 1-3 years of relevant experience.
- Highly experienced in Embedded C, C++ coding as per MISRA standards
- Experience in firmware programming for 8 bit, 16 bit and 32 bit controllers.
- Knowledgeable in Linker Scripts, Make files & firmware debugging using JTAG or on the UART console.
- Experienced in Communication peripherals like SPI, UART, I2C, CAN, etc.
- Ideation, designing, prototyping, and developing as per product requirements.
- Expertise in system architecture and design for Embedded software systems.
- Develop modular Embedded Code to port into different projects.
- Experience on Real Time Systems and Scheduling mechanisms
- Development experience in "middleware" / “application” / Low layer.
- Experience with developing embedded code for networking technologies like TCP/IP and UDP would be a plus.
- Document state machine diagrams, flow charts to understand the system architecture
- Working closely with Design teams to understand Hardware Implementation.
- Develop Test methods, in some cases automated test cases to test the firmware code and support hardware engineers.
- Use Debuggers, oscilloscopes, power supplies, and other necessary electrical tools to debug the code for problem-solving.
- Excellent reading skills for complete understanding of technical documents such as Processor Architecture Specifications and MCU hardware manuals, schematics etc.
- Ability to generate ideas in response to complex issues and execute on solutions.
- Python programming is a big plus.
Open Edx | |
1 | Hands on experience on Open edX framework |
2 | • A Minimum of 2 years is required on handling Open edX project with overall experience of 4 to 6 Years. |
3 | • The Candidate must have developed and deployed open edX based applications and platforms. |
4 | • Real-world experience with web development frameworks like Django |
5 | • Ability to code front to back with JavaScript, Python, or other server-based programming languages |
6 | • Hands-on experience on Git, Slack, Trello |
7 | • Should have experience in deploying scalable software applications to AWS or equivalent |
8 | • At least 2 years of related experience with React, Webpack, or other modern JavaScript frameworks. |
9 | • Experience building static websites and single-page applications, experience with architecture and solutions |
10 | Good hands on experience in docker |
11 | • Understanding of MOOC (Massive open online course) Architecture Integrating with the third-party apps using LTI/QTI - Significant hands on experience in installation and configuration of OpenEdx as an application, managing users and roles and managing multiple tenants in an instance |
12 | • Experience in customizing OpenEdx as a product around creating plugins, integrating with third party apps using LTI' |
13 | • Theming and Branding, Multisite, Certificates, SAML, Basic Reporting (grades, enrolments) |
14 | • Experience in Open edX mobile app with branding and analytics set up |
15 | • Experience with DevOps will be added advantage |