Software Design Engineer İş İlanı

İşveren Hakkında
 İş İlanları

QUALIFICATIONS AND JOB DESCRIPTION

QUALIFICATIONS

  • BSc, MSc or PhD degree in Computer, Software or Electronics Engineering
  • 1+ year experience in software design and development (less than 1 year candidates with a sufficient practical knowledge in the specified topics and open to self improvement would be evaluated)
  • Extensive C/C++ knowledge and sufficient experience
  • Good knowledge in communication protocols
  • Knowledge in C# or Java is a plus
  • Javascript knowledge is a plus
  • Modern C++ (C++11 and later) knowledge and experience is a plus
  • Knowledge of object-oriented design and development
  • Extensive knowledge of high-level operating systems (especially linux, multi-thread application development) development environment
  • Knowledge of ARM based embedded software design on low-level real-time operating systems
  • Familiarity with Agile software development
  • Familiarity with high-level PC or web based software development is a plus (java, javascript, dart, Qt framework, C#/WPF)
  • Good communication skills (both in Turkish and English) to work together with people from different countries and different companies remotely
  • Familiarity with high-level processor and communication hardware architecture is a plus
  • Familiarity with project management tools (such as Asana, Redmine, Jira, VSTS) is a plus


JOB DESCRIPTION

This position requires candidates which have high-level skills, discipline, and motivation to design, development and prototyping of full software products developing in Turkey and Germany. Candidates for this position would have these basic responsibilities for these steps in the lifecycle of an software product in IoT, energy and automation industries:

  • Research and analyze standards, protocols, similar solutions/products in the industry to create technical requirements in detail
  • Project cost and time estimation, realistic project planning
  • Research for the appropriate software environment to develop in terms of robustness, efficiency, time-critical processes
  • Choose most efficient software solution for the projects in terms of operating system, libraries, drivers, applications etc.
  • Design and development low-level device drivers, especially on embedded Linux
  • Analyze software requirements, create work packages, manage the developer team
  • Conduct scrum development as the master
  • Have general knowledge of hardware specifications which can affect software design decisions
  • Contribute to defining and designing system specifications, assessing architectural and hardware related limitations, input/output processes and working parameters for hardware/firmware/software compatibility
  • Conduct software testing in a timely and cost-effective manner
  • Troubleshoot or debug issues found in software and deliver solutions
  • Technical documentation of software design, testing and deployment
  • Contribute to testing procedures, preparation for serial production of devices