1. What is software engineering?
Software engineering is the process of designing, building, and maintaining software tools. Many of the tools we use daily depend on software engineering, such as the operating systems in our phones and computers, chat applications, food delivery, banking applications, and news websites. Developing these tools involves building the look of the applications, the business logic behind, and the infrastructure that serves all content.
Software engineering is one of the highest-paid vocations internationally because of the relatively rare expertise required. Software engineers are paid most in Silicon Valley where many of the world's international tech giants are headquartered, and each software engineer generates a large amount of revenue due to the ability of software to serve customers internationally with minimal local infrastructure.
2. What is the difference between software engineer, coder, developer, and programmer?
Software engineer, coder, developer, and programmer are mostly used interchangeably. Software Engineer is the more common professional title. Technically, software engineering implies engineering larger, more scalable software systems. Coding, developing, and programming only refer to the act of writing code.
In practice, most vocational software courses use terms like "engineering" and "development", and most casual or enrichment software courses use terms like "coding" and "programming". Rocket Academy prefers "software engineering" because the technical definition of software engineering is what the industry looks for. Coding, developing, and programming are more colloquial terms that imply software engineering.
3. What is software engineering like in Singapore?
Software engineering is less lucrative in Singapore than Silicon Valley due to the absence of international tech giants of the scale seen in Silicon Valley and China.
Software engineering remains one of the highest-paid vocations in Singapore, largely due to the presence of tech companies' regional headquarters in Singapore. These companies tend to employ a smaller number of highly-skilled software engineers, which Singaporeans are well-suited for because of their command of English and relatively strong educational background.
4. Why do people become software engineers in SG?
- People that enjoy solving problems, working with computers, and building digital products that many can use often enjoy being software engineers.
- People also enjoy the work culture that tech companies represent, typically involving flexible work hours, flatter organisational hierarchies, and mission-driven work.
- Software engineers also tend to enjoy competitive salaries and overall compensation.
5. Can I become a SWE if I did not study Computer Science or work in the tech industry?
Yes. Anyone, with the correct attitude and aptitude can become a software engineer. Check out our FAQs for more information.
6. I am in my 30s/40s. Is it too late to switch to a career in software engineering?
Anyone can make a career switch to software engineering, but financially this may be more challenging at a later stage in one's career, because entry-level software engineer salaries start at roughly S$3,000/mo. Entry-level salaries can be higher depending on the company, but one must be prepared to start at the entry-level after switching careers.
7. What kinds of SWE roles are there and what are the differences in Singapore?
- Software engineers work on a wide range of technologies that can be broadly classified into a few common categories. These typically include front-end engineering, back-end engineering, and infrastructure engineering (also referred to as devops, or developer operations). Less common classifications of software engineering work include platform-specific classifications such as web engineering and mobile engineering, or language-specific classifications such as Python engineering and Java engineering.
- Front-end engineering refers to anything related to user interface and experience.
- Back-end engineering refers to anything related to business logic that may happen behind the user interface.
- Infrastructure engineering refers to coordination of machines on which front-end and back-end software runs. Infrastructure engineering used to require more hardware expertise, but since the rise of cloud computing it has become more of a software role.
8. What are data science, data analytics and how are they different from software engineering in Singapore?
Data science and data analytics are the usage of data to provide business value. Data science typically involves machine learning to drive business value in real-time (e.g. matching riders to drivers, recommending products, filtering spam), and data analytics typically involves manual queries to make business decisions over a longer period of time (e.g. reports on customer usage, research on specific customer segments).
Data science is different from software engineering in that data science typically involves a deeper understanding of statistical models that can be used to extract business value from data. Software engineering typically involves building pipes for data to flow through, but software engineers do not always understand how to derive insights from data, especially when those insights require real-time analysis with machine learning.
9. What kinds of companies do SWEs work for in Singapore?
- There are 2 kinds of software engineering teams. In-house teams and software agencies.
- Both kinds are common in Singapore, where bigger and more tech-driven companies tend to hire in-house teams, and smaller and more traditional companies tend to outsource to software agencies. Many companies will have both in-house teams and contracts with software agencies due to difficulty in hiring enough software engineers in-house.
- In-house teams are responsible for development, maintenance, and iteration on a company's products. Within in-house teams, there are broadly 3 kinds of companies that hire software engineers: Big Tech, Big Non-Tech, and Small Tech.
- Big Tech companies are well-known and primarily driven by proprietary software. Examples may be Grab, Shopee, or Carousell. These companies hire both generalist and specialist software engineers, and tend to have more mature and stable software engineering practices.
- Big Non-Tech companies are well-known and less driven by proprietary software, but have started to incorporate software to make operations more efficient. Examples may be FMCGs, banks, telcos, or big retail chains. These companies tend to hire more specialist software engineers to maintain specific systems.
- Small Tech companies are less well-known and primarily driven by proprietary software. Examples are smaller startups, many of whom are based at one-north in Singapore. These companies tend to hire more generalist software engineers to build and evaluate products quickly.
- Software agencies are typically contracted to do shorter-term projects that clients do not have the expertise or manpower for. Software agencies are exposed to a wider variety of projects due to the shorter-term nature of their work. Agencies with longer contracts tend to produce higher quality work because they will be responsible for project maintenance.
10. What is the career and salary trajectory of SWEs in Singapore?
- This depends on the type of company you work for. Software engineers enjoy stronger career trajectories at companies where software is more core to the company's operations. Career trajectory will also depend on the rate of growth of companies one works for, as well as one's individual performance. Like other professions, software engineers get promoted quickly when they take initiative and deliver value above and beyond what the job requires.
- Entry-level software engineering salaries can range from roughly S$3K-6K in Singapore, with a median (based on our experience) of roughly S$4K.
- Mid-level software engineering salaries typically range between S$5K-10K, with a median around S$6K.
- Senior software engineering salaries are higher, but there are fewer real "senior" software engineering positions in Singapore because there are not as many tech companies whose products are mature enough to warrant very senior software engineers. Currently in Singapore, most software engineers that want to progress beyond mid-level software engineering choose to become managers. However, this is changing as more tech companies mature in Singapore and Southeast Asia.
11. Will learning software engineering help me start my own company?
- Yes and no. Starting a company requires a deep understanding of the market and problem you are addressing. No amount of software engineering will substitute for that.
- Assuming you understand the market and problem well, being able to build your own product can be a big advantage. This means you have more control over product development and cost, enabling you to move faster in the early stages by reacting quickly to customer feedback.
- Often people with a business idea but no coding background try to find a technical cofounder or outsource development to a software agency. Finding a technical cofounder is ideal but notoriously difficult. Outsourcing works for some, but can produce less-than-ideal results because of misaligned incentives.
- Given a lack of other options, gritty entrepreneurs often learn to code themselves to get their company off the ground.
12. What groups can I join to learn more about SWE in Singapore?