If you are asked a software engineer what he does, he might possibly say that he is either a full stack software engineer or a back end engineer. In this post I’ll explain what they mean.
Front-end software engineer
Front end software engineers focus mainly on the UI view, that is, they are involved in the look and feel of the application. They usually use one of the many front end framework like ReactJS, Angular or VueJS for this purpose.
Back-end software engineers focus on the behind the scenes logic that happen when performing an action like for example handling database calls. Interesting problems like scalability, performance will need to be addressed here as well as a thorough knowledge of the cloud services like AWS and Azure. Frequently used programming languages in Sri Lankan companies are .NET, Java and NodeJS although there are other language used as well.
Full stack software engineer
A full stack software engineer is someone who can work on the full lifecycle of the project, that is, they will be doing the work, both the front end and back end engineers so everything works seamlessly.
Most of the Sri Lankan software engineering companies are looking for full stack software engineers who could flexibly work on any stack.
Mobile developers focus mainly on mobile platforms, that is both or either Android and iOS. So they are responsible for development and maintaining mobile application.
Mobile developers usually use couple of approach when developing mobile apps.
- Native approach - They are built for specific platforms and are written in languages that the platform accepts. Usual programming languages used are Java and Kotlin for android, Swift and Objective C for iOS
- Hybrid approach - Follows the concept of “write once run everywhere”, in this case, sharing one code base. React native, Flutter and Ionic frameworks are used for this purpose.
Although most Sri Lankan companies follow the hybrid approach, there is still demand for native developers as well.
Security engineers are responsible for creating systems, methods and procedures to test the security of the software system and fix any security flaws.
Most of the well established software companies in Sri Lanka have a security team responsible for auditing and checking on software vulnerabilities, although for startups there isn’t much use in most cases.
The above are few outline on the various roles of a software engineer. The website roadmaps.sh has an awesome checklist of the skills which are required to get into each of the job role. Ideally a software engineer should be able to work on any given project regardless of the involved technology stack.