Software Engineer

  • B.E / B.Tech (CSE or ECE, IT)
  • Bangalore
  • 1 year ago
  • Full Time

Job Description

A Software Engineer designs, develops, tests, and maintains software applications or systems. Their role involves writing efficient code, debugging and troubleshooting software issues, and optimizing performance. They work across various stages of the software development lifecycle (SDLC), from requirements gathering and system design to implementation, testing, and deployment.

Key Responsibilities

    • Writing clean, efficient, and well-documented code using various programming languages (e.g., Java, Python, C++).
    • Collaborating with cross-functional teams, including product managers and designers, to create user-friendly and functional software.
    • Participating in code reviews to ensure adherence to best practices and standards.
    • Testing and debugging software to ensure a high level of performance and security.
    • Keeping up to date with the latest industry trends, technologies, and best practices.
    • Maintaining and improving existing systems and applications.
    • Analyzing software requirements and providing technical solutions to meet them.

Skill & Experience

    • Basic skills required 

      • Good knowledge of C or C++ 

      • Knowledge of Object-Oriented Programming concepts

      • Data structures, pointers, algorithms 

      • File handling knowledge in C/C++

      • Software design, development, coding, testing

      • Good mathematical problem solving skills.

    • Experience in 0-2 Years 
      • Strong analytical and reasoning skills with an ability to visualise processes and outcomes

      • Good communication skills and ability to work collaboratively 

      • Extra preferred skills required 

        • GUI Development

        • Basic knowledge in VC++

        • Hands-on in platforms like Microsoft  Visual Studio, Qt .

        • Operating system hands-on in  RedHat, Ubuntu 

        • Knowledge in Database management like MS Access, XML

        • Hands-on in C# 

        • Hands-on in Python

        • Debugging skills (using dumps, traces and debuggers etc)

        • Proficiency in troubleshooting software issues and debugging a large codebase

        • Networking concepts, network programming, UDP, TCP/IP

        • Familiarity with Embedded Linux and Linux device drivers.

        • Knowledge of Multi-Threading and Inter Process Communications 

        • Knowledge of Embedded systems

        • Developing test plans and procedures for exhaustive testing of the software system developed