Written by: Anand Safi, Executive Contributor
Executive Contributors at Brainz Magazine are handpicked and invited to contribute because of their knowledge and valuable insight within their area of expertise.
We can break it up into three subcategories for entry-level roles.
First, we have web development (we’ll skip mobile development for now, because that is more specialized). Second, we have data roles. This category includes data analysts, scientists, and engineers. Then, there are roles that are based on critical thinking or troubleshooting. These are on the support and ops side and might include positions like software support analyst, QA engineer, or technical support engineer.
Web Development
Frontend Developers
A common entry point, on the web development side, is becoming a frontend developer. This role leverages the three common core elements HTML, CSS, and JavaScript. Even though there are many new frameworks and libraries each week, they need to be solid on these three because many things are actually still based on JavaScript on the front-end. Developers can use these three elements to design and implement web pages and often build user-facing experiences using a combination of them.
They will also be working on improving existing web pages, which can mean leaning heavily on CSS. They will also need to be familiar with this ADA compliant website checklist if they want to build accessible web pages.
They might be working on major revamps, so they need to learn how to change existing modules.
Lastly, they’ll also need to make sure to optimize web pages for performance and scalability. You might think that only senior engineers deal with performance optimization or scalability, but it is becoming crucial for web development. If you need to have an ultra-responsive website to engage users, then it needs to be a fundamental element from the start. It becomes important to look at what you’re writing and see how much time it takes to run. These are all high-level considerations that go into a frontend developer’s role.
Backend Developers
On the backend side, developers work closely with the frontend team. The CSS for every web page comes from a centrally hosted place, ideally, or cloud infrastructure. So, the API communication protocols or the methods that interface with the frontend, in passing data back and forth, are really important.
Developers might also be building a rule-based system. For example, a Facebook backend developer might have to make sure that if a user hits a like button, the system responds to that based on a set rule. That behavior will be coded on the front-end, but there needs to be a rules-based system that responds to certain user events and interactions.
On top of this, the backend developer’s server is still a middle layer in comparison to the ultimate database where all the data is stored. They need to do two things.
First, they need to acknowledge the front in terms of user actions. Then they need to label these actions and then reach out to the database and either store or grab some data for the front-end. If a user clicks on view photo, the front-end will make a request to the backend. Hopefully, the backend will have the logic in place to retrieve the photo from the database, get the user’s key, retrieve the image, and pass it back to the frontend.
Full-Stack Developers
Nowadays, full-stack developers are common, which is a combination of backend and frontend. It is becoming more popular because we have identified ways to code entire systems end-to-end using a single language at the core.
Before, the frontend developer might have been done in JavaScript while the backend might have been done in Java, Ruby, or Python. But now, it’s possible with Node.js, or new frameworks like Express, to build entire systems using only JavaScript as the guiding language. It’s become increasingly common for engineers especially frontend engineers to pick up one language and do end-to-end development, especially for applications that don’t need much backend logic like working with routes, storing, or updating databases.
The term Full-Stack Developer can spark some immediate questions since the role has evolved over time. In this interview, Johnny Ray Austin provides a fresh perspective on how far web development has come during the last 15 years and lays the groundwork for realistic expectations of developers.
A note on Boot Camps:
I think coding boot camps are primarily focused on front-end or full-stack development. I know Google recently had a free data boot camp on Coursera, and there are a good number of data-centric boot camps that are coming up.
For the backend, I would be surprised if someone came from a coding boot camp and joined as one of the preferred Java engineers. It’s difficult to teach Java, JavaScript, Ruby, or multiple languages in a short period of time. Bootcamps often must teach a lot of information in 3-6 months, so that’s why HTML, CSS, and JavaScript work well together in terms of building a complete experience. They also offer a tangible outcome, which many people prefer as their entry point. After, they can see if they’re more interested in the dev-ops infrastructure and backend side or decide to continue the frontend path.
Data
Data Analyst
This role analyzes existing data flowing through the system. It can also include writing queries, joins, or simply connecting the dots. Analysts might be working with isolated data in different tables and need intuition to understand what the business question to solve is.
Data Engineer
Data engineers are involved in preparing data. They develop, clean up, and maintain data-related architectures. The data engineer is more commonly involved with ETL data pipelines and ensuring that data is accurate. They need knowledge of SQL, data architecture, pipelining, data visualization, and more.
Data Scientists
Data scientists might be the most sophisticated role because there’s a lot of statistical skill involved. We’re talking about modeling, data mining, and machine learning principles. Scientists most commonly work with SSR or Python data science scripting mechanisms. There might also be Hadoop-based analytics thrown in there.
Data scientists also must carry out operational models that go beyond traditional data analysis. Since there’s only a finite amount of data, data scientists need to build a smarter system that is able to recognize data or signals in real-time. That’s why statistical modeling is an important piece of the role.
Data scientists use it to make their systems smarter in automatic response and dynamics.
There are many master’s programs in data science. The coursework is geared around building, modeling, or predictive analytics using R or Python scripting. There’s more specialized learning around data science.
There are two types of entry roles for data science – a junior data scientist or a data science intern. It’s not necessary to be a data analyst first. Data science internships and boot camps are also on the rise. You could do a three-month data science boot camp, but just keep in mind that there’s a higher learning curve needed with the role.
Support and Ops
Quality Assurance (QA)
I started my career as a QA, and I am thankful for that because the creativity in that role helped me go beyond the normal mindset for testing.
If we go back to the example of the Facebook-like button, some questions I might ask as a QA engineer would be what if I hit the button ten times? Does it update the count, or does it crash?
What if I hit the like button and then reloaded the page? Would it lose count?
I found QA interesting in that even if you nail down your user personas and workflows, you end up discovering new ways that your users might use the product. That role helped my own developmental journey when I became a frontend engineer because I had experience with the user aspect.
Support Engineers
On the flip side, software support offers firsthand insight into how the end-user is using the system, and how the system is configured. The role is one of the most external technical roles. All the other roles are focused on internal engineering, but support engineers need great interpersonal and communication skills. They might have to explain technical elements to a customer, for example.
Software support is also a very valuable role for switching into other positions. For instance, the software is often released in a different way than the expectations of the engineering team. However, since software support roles have firsthand knowledge of how the software is being used, they can leverage that later in their career. Interpersonal skills are also very valuable when going into internal engineering roles because they allow you to communicate, collaborate, and have technical discussions with others.
Anand Safi, Executive Contributor Brainz Magazine
Anand currently serves as a Senior Engineering Leader for Mark43 – a public safety software company. Over the past decade, Anand has progressed from starting as an aspiring engineer to becoming an engineering leader.
Anand also is a Startup Advisor, Volunteer Board Member and an established tech mentor outside of his role. He loves reading about engineering culture, team dynamics and new advancements in tech.