The following is an excerpt from our Web Development Career Guide Part 2. Special thanks to the contributors from Singapore’s web development community. You can download the full guide here.
A web application is kind of like an iceberg. The tip of the iceberg is what a user can see and interact with, termed the “front-end”. Underneath the iceberg is what the industry calls the “back-end”, where the business logic of the application lives. This distinction started to diminish around the late 2000s, when new technology, programming languages and frameworks made creating web applications much easier and more streamlined, thus the term, “full-stack” became widely adopted.
“Newer emerging technologies like React and Angular have allowed developers to create a large portion of business logic right in the user interface portion of the system.” — Daniel Goh, Product Engineer, ReferralCandy
As an aspiring career web developer, there are several different roles that you can take on throughout your career, and each of them have a different set of responsibilities and day-to-day activities. Let’s have a look at some of the more common ones to start with.
“I’ve always been a very visual person, I could design things, for me getting into web design was quite natural.” — Michael Cheng, Senior Software Engineer, Singapore Power
Front-end developers are sometimes seen as a combination of a user interface designer, user experience designer and software developer — someone who appreciates the aesthetic, usability as well as functionality of an application. They care about delivering the utilities of the features, but they also go the extra mile to ensure the user interface is aesthetically pleasing and the experience is seamless. A great front- end developer is not only proficient in programming but also good at empathising with the end users.
As mentioned earlier, web applications are sometimes like icebergs — with the front-end being the part users see and interact with, and the back-end being the bulk of the iceberg that is submerged under water. Back-end web developers are responsible for building all the business functionalities of a web application — things like database interactions (e.g., retrieving all the available stock of a product), calculations (e.g., loyal members get 10% discount), transactions (e.g., payment by credit cards) and other business processes and rules. In other words, back-end developers play a big role in implementing the business models of the companies they work for.
“back-end developers tend to focus more on an application’s overall architecture, as well as writing clean code, making things efficient, driving for performance” — Ying Cong Seah, CTO, Glints
In terms of sheer amount of code, most web applications have more back-end code than front-end code, thus the iceberg analogy. Therefore, back-end developers need to be able to navigate across larger codebases and not get lost in the complexities of what may seem like programming labyrinths. They also need to be very meticulous when making changes to not “break” anything as there are usually delicate dependencies. Finally, unlike front-end development where the written code translates directly to visual output one can see and interact with, back-end development of business logic is often hard to visualise. Therefore to be a good back-end developer, you need to be comfortable with dealing with abstracts.
A full stack developer is capable of performing both front-end and back-end tasks. They have a complete understanding of how a web application works, and how the “front” and the “back” are connected. They can build a complete web application on their own.
To be a good full-stack developer, you need to be comfortable with dealing with abstracts as well as empathising with end users. Good full- stack developers also need to know when to wear which hat to work effectively and efficiently.
Traditionally, the responsibilities of devops were part of back-end developers. However, due to the growth of affordable, on-demand and scalable cloud infrastructure from providers such as Amazon Web Services, we have seen an explosion of cloud-based applications, both web and mobile. This has in turn increased the demand for specialists who can deploy, manage and monitor these cloud applications. DevOps engineers are not usually involved in the development of web applications. Instead, they design, build and maintain systems and processes that ensure web applications perform and businesses can deliver their services with assured quality.
DevOps engineers tend to be extremely resourceful and business- minded. They tend to be more practical when it comes to problem solving (e.g., developers tend to want to build things from scratch on their own, devops engineers look for and leverage already available tools). This is usually driven by the fact that devops engineers usually thrive in the intersection of technology and business — those who see technology as a tool to build solutions that move businesses forward.
Now that you have an idea the typical responsibilities of the different roles, you probably have a rough idea where you would thrive the most. If not, no worries, we believe interest and passion are something you develop over time, and there is no better way to do that than immersing yourself in the subject! Download and read the rest of Part 2 of our Web Development Career Guide for more suggestions from industry professionals on the skills you should pick up to set yourself up for success as an aspiring developer.
Originally published at sg.alphacamp.co on July 31, 2018.