Tuesday, May 11, 2021

What is an SRE?

Introduction

With the incorporation of software in almost every industry and the huge dependency on programming and computer science, it was just a matter of time before a new discipline was introduced. According to Ben Treynor Sloss, who is Google’s engineering vice president, “A site reliability engineer is a software engineer who is responsible for developing an operations function”. Site reliability engineering (SRE) uses the versatility of software to handle regular IT operations such as server management and other computer operations by establishing reliable software systems. SRE task forces usually utilize and develop software to handle project issues and problems, increase project autonomy and manage the entire project’s process with minimum manual intervention and manpower. Despite being a commonly used term in classifying work teams, the majority of the people working in both software and project management industries are still not fully aware of the underlying concept behind site reliability engineering. This article is an attempt to clarify what does an SRE do, how is an SRE important to business and projects, how are SRE teams different from DevOps and what kind of tools and technologies that an SRE utilize.

What does a site reliability engineer do?

SRE work can be divided into two main tasks. About half the time is spent on developing and programming new features, increasing system autonomy and project scaling. The rest of the time is spent on operations related work including tasks that require personal intervention and on-call duties. So an SRE should have a balanced mix of system administration skills and software programming, automation and engineering. Among the duties of an SRE is the code deployment, configuration and monitoring in addition to responding to emergencies and managing production service capacities.

How important are site reliability engineers?

SRE makes the project management process of large projects easier by developing complicated codes and algorithms that handle most of the regular and daily tasks. The software developed can be expanded to administer a huge spectrum of machinery and equipment within a company. As I mentioned earlier, SRE’s work can be divided into two main sections, standardization and automation. It is the goal of an SRE to improve a system’s reliability and features while automating operations tasks. The unique role of an SRE requires programming skills and operations management experience. SRE teams are particularly important for startups. Due to its small scale and inability to hire large groups of developers at large scale, having SRE teams would be extremely beneficial for the startup. After understanding how important are SRE teams to a company and what kind of work do they handle, we now need to discuss how do SRE teams work within a development team. 

How different are DevOps from site reliability engineers?

Site reliability engineering implements the idea of DevOps at its core. But what are DevOps? DevOps simply denotes development and operations, where developers are responsible for writing codes, which are then passed on to the operations team for installation and support. However, due to the separation between both teams, developers were not responsible for how the software or features would be used, leaving the operations team in a bad position. This led to problems because the goal of the developers is to keep introducing new features for the customers with new pieces of code, whereas the operations teams are seeking a steady system with stable and steady changes. However, by combining both teams and helping them understand each other’s duties and responsibilities, introducing new features will not only be based on developing the code for the feature itself but also on the consequences and fallout this new introduction might lead to. DevOps and site reliability engineering are often confused because of their similarity in many aspects and properties. Both DevOps and SRE seek high quality and fast services delivery as well as life cycle development, by optimizing business value and responsiveness through automation, platform operation enhancement and integrating both development and operations teams. Now, let us see how is SRE different from DevOps. First of all, SRE teams take to their own hands the duty to eliminate communication and workflow issues. SRE teams’ main goal is to achieve site reliability while adding novel ideas and features, whereas DevOps are mainly concerned with efficient development of operation using platforms such as Kubernetes and microservices. Unlike DevOps, SRE teams split their working time between operations and development tasks such as systems scaling and automation implementation, which is a crucial aspect in the site reliability engineer’s role. A key component for SRE teams is to achieve that balance between both operations and development work. 

What kind of technology supports a site reliability engineer?

In order to determine the type and time of features to be launched, SRE teams use Service Level Agreements (SLAs), which are used to determine the necessary system reliability depending on Service Level Indicators (SLIs) such as availabilities, rate of error, requested latency and systems throughput, and Service Level Objectives (SLOs), which are based on specified goal values and budget error. Due to the fact that an integral aspect of SRE’s work is automation, unified software containers usually provide teams with a common development environment facilitating work integration, automation and delivery.

Conclusion

Incorporating site reliability engineers can be handful especially for startups. They can assist developers by solving some of their general issues, hence providing them with more time to handle programming specific issues. They can also improve the capabilities of the tools used by developers to help them become more productive. In addition, the customer will be provided with a product that has high reliability and security. It is important to mention that finding an SRE to join the team is not quite simple due to the fact that they are looking for a person who are able to multitask and handle both operations and software engineering at a high level. It is always a pleasure to answer all your questions and see you in the next one.

**Note: All the attached photos are royalty free and not copyrighted. 

Tuesday, May 4, 2021

Best City for HW Career

Introduction

To begin with, we need to be clear about what we mean by hardware careers and what are the most common hardware career paths then we will be able to decide which cities are best for hardware careers based on several factors. Among the most common hardware career jobs are hardware design, verification and backend positions. 

Hardware design involves arranging essential hardware components into a well-defined and collaborated assembly of hardware to create and support a system’s current features and processes and any kind of expected future requirements or adjustments. Accordingly, hardware design can be considered an algorithm or a partitioning scheme that takes into consideration most of the required system’s needs by creating an assembly of subsystems that integrate to create a well built and developed system. Unlike software design, hardware design is more limited by real physical boundaries. Hardware verification involves checking for correct feature and system implementation and it hugely affects the quality, price and timing in silicon development. The hardware designing process is followed by development, testing, adjusting, collaborating and product finalization. 

Hardware careers are often associated with software markets and industries, as there is a lot of collaboration between both parties to deliver the final product to be used by the customer. These careers are not only limited to computer devices or industries but it also includes automobile components and medical appliances with embedded systems. People pursuing careers in hardware usually work in labs where they spend most of their time designing, building and testing hardware. They are also required to communicate with other teams of different backgrounds and tasks to come up with a final design that would fit and work with the system as a whole. Hardware careers are mainly based on research and development to create more powerful components that are smaller in size, more power efficient and packed with potential to handle various system features. 

In the following paragraphs, I will present some cities that are known for being in the lead for Hardware Manufacturing and consequently hardware careers. Mainly I will be focusing on cities in the United States and at the end I will add some cities outside the United States that are worth mentioning. Now let’s go ahead and start with cities inside the United States.

The Bay Area, California

Historically, the Bay Area in California is known for being the hub for hardware manufacturing in the west coast particularly in the field of tech manufacturing. Many cities there observed the beginning of market giants such as Mountain View, Menlo Park, Cupertino and much more. Also, the headquarters of these giants are in the bay area in California. For example, Google Headquarters is in Mountain View, Apple Headquarters is in Cupertino in Santa Clara, Intel Headquarters is in Santa Clara ... etc. All these tech companies have a large hardware manufacturing division, and for that reason, it is a good place to tackle the Hardware career there. Not only that, but there is also a good number of ventures backed startups in Hardware manufacturing. It is also home to the renowned Silicon Valley, where all inventions and hardware breakthroughs come to life. In addition, in the renowned Bay Area we can find Palo Alto, Santa Clara, San Jose, Sunnyvale, San Francisco, Fremont and Milpitas. But let’s focus on Silicon Valley, that renowned region that is in the southern part of San Francisco bay area and int the northern part of California. We can’t be talking about hardware without mentioning Silicon Valley. It is considered the main international and national center for cutting edge inventions. Three main factors contributed to the success of Silicon Valley as a hardware and technology international hub. These factors are mainly the available capital ventures in the area and the research buildings housed in university areas, in addition to the constant U.S. Department of Defense investments. In 1957, the “traitorous eight” deserted William Shockley to invent the Fairchild Semiconductor, which diverted the attention of Hewlett Packard aka HP to semiconductor devices. Since then, HP was considered one of the main symbolic founders of the renowned Silicon Valley. It is not only HP that has hardware offices and divisions in Silicon Valley, other huge companies such as Microsoft (Sunnyvale office), Google (Mountain View office) and Apple (Cupertino and San Diego) are all involved in Silicon Valley as hardware manufacturers and inventors. Here is a list of some of the hardware companies that are located in Silicon Valley and that you might be familiar with:

  • Advanced Micro Devices (AMD) in Sunnyvale
  • Altera (Intel) in San Jose
  • Apple Inc. in Cupertino
  • Asus in Fremont
  • Cisco Systems in San Jose
  • Fitbit in San Francisco
  • Hewlett Packard in Palo Alto
  • Logitech in Newark
  • Nvidia in Santa Clara

Detroit, Michigan 

“Motor City” is what people call Detroit in Michigan for the long history in car manufacturing. Detroit is the origin of many car manufacturing companies in the United States in the last century. Ford, Cadillac, General Motors, Chevrolet, Dodge and Chrysler are all examples for car manufacturing companies that were founded in Detroit as early as the mid nineteenth century. Nowadays, the car manufacturing industry does not only include mechanical components, but new technologies and inventions are integrated in the industry such as self-driving cars and cars2x communications that connect all the vehicles together with the roads and transportation infrastructure.

Seattle, Washington State

Despite the relatively smaller existence and impact of both Microsoft and Amazon in Seattle, the city has a rich history of hardware with a huge aerospace company and manufacturer, Boeing. Among those hardware corporations with offices in Seattle are:

  • Nintendo in Redmond
  • Linksys and Cisco
  • Oculus
  • Intel in the international district
  • Blue origin

Austin, Texas

Austin, Texas is an industrial hub for the manufacturing industries. Numerous tech companies have offices in there; for example, Dell has its headquarters in a suburb of Austin. If you lived in Texas, you might have heard of the term Silicon Hills. Silicon Hills is the name of a group of high-tech companies that are in Austin. Among the cutting-edge industries located in Silicon Hills are:

  • Advanced Micro Devices (AMD)
  • Apple Inc.
  • Amazon.com
  • IBM
  • Google
  • Silicon Labs
  • Intel
  • Dell (international headquarters are located in Round Rock, which is a suburb of Austin)

Portland, Oregon

Portland, Oregon is another well-known city for hardware manufacturing. It is known for the manufacturing of displays, printers, computer chips and many other electronic gadgets. Silicon Forest is the name of a group of companies that are involved in cutting edge technologies and hardware that are located in Portland. As you might have guessed it, the name is analogous to Silicon Valley and Silicon Hills. Hardware companies located in Portland work within a wide range of hardware industries. For example, Tektronix is specialized in test and measurement hardware, Intel is specialized in computer chips, Infocus and Pixelworks are specialized in electronic displays manufacturing and development, Hewlett Packard and Epson are specialized in printers manufacturing and development. Following is a list of some of the major hardware companies located in Portland:

  • Apple Inc.
  • EPSON
  • Google
  • Hewlett Packard
  • Logitech
  • Nvidia corporation
  • Synopsys

Other cities worth mentioning outside the United States:

Hamburg

In the European region, Hamburg is considered one of the best places for hardware and computer careers. It is Germany’s 2nd largest city and the 6th city in Europe. It currently hosts lots of innovative tech scenes and sponsors a wide range of startups. 

Eindhoven

The Dutch city of Eindhoven is another city that produces about 23 patents per 100,000 residents. It is well-known for its industrial capabilities. In 2013 and according to Forbes, Eindhoven is considered the most innovative and inventive city in the whole world. In addition, the city is considered the best among European countries and even the world for leading high tech hardware careers. This is mainly due to a couple of reasons such as the capability of the high-level research facilities to produce and test hardware prototypes as well as the inventive and innovative behavior of the public residing in the city. 

Munich

Germany is coming strong in this list with another city. Munich is considered a main hub for business in Europe. It is home to huge international companies and businesses such as Allianz, Siemens and BMW. This makes it one of the favorable cities in the world to pursue hardware careers whether in computer or other industries. Munich is not only home to multinational companies but also small startups across different industries such as virtual reality, media, mobility, computer, finance and loT. 

Conclusion

After presenting some of the best cities inside and outside the United States known for leading hardware careers, it is all up to you to decide. Obviously, Germany is one of the best countries outside the US that offer a high variety of opportunities in HW career, however, the language factor is very important. It is a must to be fluent in the German language to be able to land any technical job specifically in the hardware career. I am sure there are a lot of questions in your mind now. I will be glad to answer all your questions and see you in the next one.

References:

  1. Sokanu. “What Does a Computer Hardware Engineer Do?” CareerExplorer, CareerExplorer, 1 May 2020, www.careerexplorer.com/careers/computer-hardware-engineer
  2.  “The 10 Best States For Lead Hardware Engineers In 2020.” BEST STATES FOR A LEAD HARDWARE ENGINEER, Zippia, 18 May 2020, www.zippia.com/lead-hardware-engineer-jobs/best-states/
  3. Joyner, Jeffrey. “The Best Places for Computer Engineering Careers.” Work, 21 Nov. 2017, work.chron.com/places-computer-sengineering-careers-19874.html
  4. Lee, Edward A. Hardware Design, ScienceDirect Topics, 2002, www.sciencedirect.com/topics/computer-science/hardware-design
  5. “Hardware Verification.” T&VS, 12 Oct. 2017, www.testandverification.com/solutions/hardware-verification
  6. “Best European Cities for Tech Jobs.” Best European Cities for Tech Jobs: Our Top 9 Picks of 2020, 2018, blog.honeypot.io/9-european-cities-for-tech-jobs-2018/
  7. https://en.wikipedia.org/wiki/Hewlett-Packard
  8. https://en.wikipedia.org/wiki/List_of_companies_based_in_the_San_Francisco_Bay_Area#Electronics
  9. https://www.reddit.com/r/SeattleWA/comments/773fec/what_is_happening_with_hardware_in_seattle_lately/
  10. https://en.wikipedia.org/wiki/Silicon_Hills#cite_note-3
  11. https://en.wikipedia.org/wiki/Silicon_Forest
  12. Silicon Valley - Wikipedia

 **Note: All the attached photos are royalty free and not copyrighted.

Tuesday, April 27, 2021

Facebook – Solution Engineer vs Software Engineer

**Note: All the attached photos are royalty free and not copyrighted.

Introduction

As we all know, Facebook is one of the largest tech companies in the world in the meantime. It ranks in the fifth place according to brand value compared to other tech companies in 2020 with a whopping 147 Billion Dollars. Facebook Inc. has also acquired multiple tech companies in the last decade such as WhatsApp, Instagram and more. Without a doubt, it is mesmerizing to be part of Facebook, whether as a software engineer, a solution engineer, or at any other position. However, if it is an option that you can choose between a software engineer and a solution engineer, then there are some points that you will have to consider before taking the decision. In this article, I am going to point out the major differences between both roles, and hopefully help you pick the one that is more suitable for your preferences. 

What does a Software Engineer do?

A Software Engineer utilizes his/her knowledge and expertise about computer science to write codes using programming languages, in addition to servers, databases and frameworks that are used to create computer or mobile applications, operating systems … etc.

The software engineer’s responsibilities can vary from one job to another and there are many career paths for a software engineer other than coding jobs. Here are some examples: web developer, mobile developer, test & quality assurance engineer, machine learning engineer, data scientist/engineer and much more. 

What does a Solution Engineer do?

A Solution Engineer is like a job description and not a field of engineering. It also requires a bachelor in software engineering or computer science just like the software engineer. Nonetheless, a Solution Engineering role can be considered the interface between the development team and the client or the customer. The solution engineer also makes use of computer science principles to make sure that every component of the product or the software is running seamlessly as it should be, without any glitches or lags. The solution engineer is not only responsible for the software part of the product; however, he/she is responsible for the integration with the hardware components of the system. Not to forget that another major role of the software engineer is to familiarize the client with the product; that includes operating demo presentations and some technical meetings explaining the product or the system. 

Major differences between both roles

One of the qualifications that should be found in the solution engineering role and not in the software engineer is the fair knowledge of sales. The solution engineer is the one responsible for outlining the client’s needs and delivering it to the development team making sure that the client is satisfied with the outcome solution. As mentioned earlier, the solution engineer is more of a client-facing role while the software engineer is more of a back of house role that is not felt by the customers. 

Responsibilities of a Software Engineer at Facebook

Just similar to any software engineer, they are working on creating new products and systems that run the Facebook Group’s apps and services. The software engineering force at Facebook is divided into multiple teams, which are Products and Services Teams, Infrastructure Teams and the team of Specialists. The first team is focused on utilizing new technologies to create new features and improving the existing ones. The second team works on ensuring the stability and efficiency of the infrastructure of Facebook such as servers, data storage, system resources and more. The final team, which is the team of specialists, usually work on integrating the new technologies with the complete structure of Facebook. 

Responsibilities of a Solution Engineer at Facebook

A solution engineer at Facebook, his/her time is divided 50/50 between two main sorts of tasks. The first one is to code and develop new products and services just like other software engineers. The other sort of tasks is actually a combination of activities such as dealing with support requests, performing adoption of new products to be able to comply with Facebook’s technologies, interacting with clients and partners, doing public speaking or even writing some blogs. 

Conclusion

Assuming that you have the opportunity to choose between the two positions, your choice should be based on multiple factors. The most important one is to choose the role you are more passionate about. You will perform better if you’re enjoying what you are doing. The second factor is the career future. As discussed earlier, the major difference between a software engineer and a solution engineer is how deep you are involved with coding. Software engineers purely write codes, on the other hand, solution engineers are more client facing with some sort of involvement in code writing. It is totally up to you to choose the track you want to take. Specifically, at Facebook, code writing is highly integrated in the tasks of a solution engineer. Accordingly, you will not miss the benefit of being into coding on a regular basis with the addition of gaining experience from clients’ interaction and sales tasks. The third factor is the salary; both roles are paid roughly close figures. The average annual salary of a software engineer is around $92,000. For the solution engineer, the average annual salary is around $100,000. The common qualification that you must have to work at Facebook is to have brilliant developing skills; hundreds of millions or even a billion users are testing your output every month so any mistake will be very costly. 

Tuesday, April 20, 2021

How to be a better presenter?

Are you among the many engineers and coders who have lots of data to present but don’t do a good job when it comes to presenting it in front of an audience? Are you wary about not brining enough substance to the table? If so, help might be closer at hand than you’ve imagined.

In this video, I’ll highlight aspects that can put your presentation woes to rest – and no – I’m not going to ask you to visualize your audience naked.

If you’re wondering what’s the worst that can happen in case you make a poor presentation, answers can range from a disappointed audience, to a less-than-favorable appraisal, to even having to look for a new job. Fortunately, how your presentation goes is largely in your control. 

Make it About Content, Not People

Understand that you’re giving a presentation because you’re meant to have the required knowledge to put forth any given idea or data. With the expertise to back you, view all those in your audience as the same, irrespective of their designations. Remember that you need focus on your content, and not the audience.

Objectivity Matters

Making a technical presentation is not the same as conventional public speaking – with objectivity playing a crucial role in the former. If you’re trying to talk through your hat while offering no real substance, there’s a good chance your audience will look through your act. Being a good public speaker is not enough if you don’t have the required technical knowhow.

Cater to Everyone

Having technical knowledge is one thing, and assuming that your audience is on the same page is something else all together. When you’re giving a technical presentation, you need to cater to the least knowledgeable people in the group as well, especially when part of your audience is from other verticals.

When possible, get information about your audience ahead of time, using which you can tweak your presentation’s level of detail and depth. If part of the audience is non-technical, highlight the what, why, and how, and don’t bother talking about coding.

What Else Can You Do

  • Explain how your presentation supports a product’s USP.
  • Use relevant graphics in the form of photos, diagrams, and charts – but keep them simple.
  • Include a Q&A session at the end.
  • Use cue cards if you can’t remember the flow of your content.
  • Use a transcription app that runs in the background.
  • Speak in complete sentences.
  • Pause after important points so your audience can absorb your message.
  • Carry out a test run with colleagues and get feedback.
  • Make videos of your trial runs and view them from the perspective of your audience.
  • Start a YouTube channel to get feedback from others.
  • Join Toastmasters – most clubs are meeting online because of the COVID-19 pandemic. 
  • Take professional public speaking classes.
  • Practice, practice, and practice some more.

What You Shouldn’t Do

  • Don’t include too much textual content in the presentation – you’re there to do the talking.
  • Don’t keep reading off the screen – your audience can do this on its own.
  • Don’t be too harsh on yourself if you mumble or pause from time to time.
  • Don’t worry about making eye contact with people – if anything, it helps draw in your audience.

In some cases, people find giving presentations stressful because they suffer from performance anxiety. In any such scenario, seeking professional assistance would be the obvious way to go.

If you can manage to keep these pointers in mind, giving your next presentation should become considerably simpler, and you’ll also have the pleasure of leaving your audience satisfied.

If you have any questions about this video, please ask by using the comments section. If you’ve found it to be useful, please hit the like button and share it with others. To watch more great content related to careers in software, follow us now.

Wednesday, April 7, 2021

As a backend engineer, will Apple M1 work for me?

 

Introduction

Apple divorcing from Intel was about as expected as the collapse of Kim Kardashian’s marriage to Kanye West. For years we have been watching all the major cell phone manufacturers ditching Qualcomm as fast as you can say “SIM Card” and, as was expected, the PC manufacturers have decided it was their turn. As with people, the only one you can really trust is yourself, and that is the same for massive technological empires. Beyond that, software's, languages, and all other things follow one steady path through this journey of life, and that is, after being taxed disproportionately, at some point they die. x86 has been getting caught up to for years. Intel has slowly become a 21st century case study in the Innovator’s Dilemma as ARM is showing x86 the door with lower power draw and higher performance.  AMD, which for the record still makes x86 chipsets, is eating Intel for breakfast as their chips feature a 7nm die size; something obtained after a summer of ditching the pizza parlor for the running trails. This article could go on and on about how Intel is suffering in the short-term to the new obsession with ARM processors, and quite frankly, everyone else, but this is just to state why Apple has switched from Intel to in-house silicon. Because of the switch, I know many readers like you are wondering if M1 silicon will work for your job as a backend engineer. 

Disclaimer

I must start by disclosing I have worked professionally in a full-stack and embedded engineering role using Macintosh products. Some of you will read this and assume I am a paid fanboy for the team they have assembled in Cupertino, so let me start by saying that I will use my experience with the products to paint an accurate picture of Macintosh and not some glowing review of the greatness of Tim Cook and his cadre of scientists and engineers. I think Windows has many viable options for backend engineers, and at better price points. Linux is a viable option too, and thank the geniuses at the Raspberry Pi foundation for making Linux the OS of my favorite computer. However, this is simply to answer the question, as a backend engineer, will the Apple M1 work for me. 

The Wrong Reasons why you should buy M1

So, in a world of good and bad reasons, I find it best to bring you the worst first. If you choose to sip on silver-tinted Kool-Aid, and ask Siri sage questions such as “how do I fry an egg”, you have probably fallen into the camp of the Mac faithful, and well, we are going to get eviscerated in the comment section, but nobody will get our diamond hands off of our favorite plug and play machines. Sure, we may outspend our Windows brethren, and we may not be as in-touch with the spirits of computer science as our friend on Linux (because you are allowed one, no more, no less), but we are also spending our time actually doing our job rather than installing drivers. This brings me to my first wrong reason:

You Don’t Know Anything Else

You have been bellying up to the bar of Macintosh for long. You actually know how to use homebrew without looking up commands. Debian and Red Hat sound like secret societies (which, to be fair, they kind of are). Bill Gates has not found a way to spy on you yet. Apple is quickly becoming a part of your dependency list. As someone who has worked in Windows, Macintosh, and Linux as a professional, I am saddened if you are stuck with Mac. But I get it. It’s okay, we all have that thing we cling tightly to; the thing which we watch every update to see when it will finally go away. I have woken up with a cold sweat imagining the day they sunset CoolTerm. I think such concerns are far off for Apple, so fret not, you are more than safe hitching your career to that wagon. That being said, if you are making this decision because you couldn’t fathom using any other OS, perhaps this is the time you branch out a little, and I promise, this will go better than that time your mom told you to try out for the soccer team. 

One Word - PowerPC

Tim Cook reassured an audience of non-technologists by saying that Apple would support their Intel-based Macs for “years”. Well, some remember the transition from PowerPC to x86, and let me tell you, those “years of support” looked more like “long enough to let the existing staff learn the new chip” than “we stand behind what we make”. So if you are a backend engineer, and you are going to stay with Macintosh, I would definitely recommend against buying a Mac until you can get your hands on an M1. In fact, including all my good reasons, this bad reason is probably the best reason for you to buy an M1 as a backend engineer if you NEED a Mac. 

It Is the Shiniest Toy

Being on the forefront of any major technological change is always going to be difficult, and that is true whether you are one of those types that lives a step or two beyond stable releases or even just buying the newest cell phone. Early reports show that there are already performance bugs that are present in some of our favorite software's like Chromium, Docker, Edge, and Firefox. These will subside as time goes on, and it is up to worthy pioneers to blaze a trail. Then again, do not rush to the frontier if you are doing it for the cowboy hat. Beyond that, as a Mac buyer for years, I know that you can save considerably when you wait for the first refurbs to come back. 

The Right Reasons why you should buy M1 as a backend engineer

The Battery and The Fan

ARM used to be reserved for micro-controllers, cellphones, and other things which could afford to slow down a little bit in the name of consuming less power. Well, I for one am glad to see x86’s skinny cousin getting his time in the gym, and coming back to school this fall as a lean mean fighting machine. Initial reviews say that the new M1 silicon is a beast when it comes to battery life, and you are going to need that for when you are actually going places again and not firmly affixed to wherever your Mac charger is plugged in. I have heard reports of eight hours of active development with no need for plugging in, and that is frankly impressive. A quieter fan is a welcome sound to my ears. As a software engineer, I have enough people that whine at me over the tasks I ask them to perform, my computer doesn’t need to as well. 

SSD

On the Mac, a lightning fast SSD is essential to executing database queries and subsequently file accesses quickly. Whether full-stack, backend, frontend, business-end or the end, you are going to find that a fast SSD is going to make you faster, and therefore better at your job, and happier with your productivity. The write speed between the previous version of the MacBook Air and the M1 has gone from 1007MB/s to 2190MB/s. Color the computer engineer in me impressed, and you can cash in those performance increases with a marked improvement in what you get done during the workday.

GPU and RAM

I know this affects the front-end engineers more, but the GPU is becoming ever so important in the world of block chains as well. And everyone always wants more RAM, I mean, you might be using this to game after work, and that is important too. The new M1 architecture has less RAM than the Intel versions of the computer, however, the new integrated architecture means a lot more bang for your buck with the RAM that you do have. For example, the 8GB and 16GB Mac’s with M1 have reported very little difference in performance, so it is debatable if the RAM difference is significant. That being said, some of the Intel offerings by Mac do currently have 64GB of RAM, so if that is of dire urgency, by all means. Then again, iPhone users with 4GB of RAM are getting performance numbers on par with Android devices with over 8GB, so it may just be a matter of time for these laptops with less memory to catch up, if they have not already. 

CPU

I am going to just leave these scores from Cinebench and GeekBench here: 


M1

Intel i7 1185G7

Single Core Cinebench

1516

1548

Multi-Core Cinebench

7698

6263

Single-Core Geekbench

1778

1518

Multi-Core Geekbench

7518

6097

Considering that the Intel offering listed is the current industry leader, and that the M1 won in all categories except the single-core test by Cinebench, you could at least say that the M1 was a worthy competitor. And you would be right. Consider the fact that the fans never turned on for the M1 tests due to the lower power consumption of the ARM chips, and I will leave it to you to figure out who is leaving who in the dust. 

The Reasons why you should NOT buy M1 as a backend engineer

GPU and Graphics

You can not have an external GPU, and are limited to one external monitor. I don’t know about you, but following the rule of 5 (every five years of development experience can and must be cashed in for another monitor in your dev environment), this is simply not allowed. For that matter, Minecraft is going to run horribly without the external Apple eGPU, so anyone who wants to game on this machine after work, good luck. I have heard the GPU is on par with competitors outside of these limitations, but this is listed first, because this is of dire importance to anyone envisioning impressing their coworkers at the after-hours LAN party. Without the external GPU, who knows, maybe you won’t even be invited. 

Dual-Boot

As I said, some professionals need this to work with multiple OS’s, and as a backend engineer, that may be the case. You must remember that there is less RAM on this laptop and not all VM’s are ready to use the integrated memory efficiently… You may find yourself working with 8 total gigs of RAM on a Windows machine and although going back to 2014 to avoid COVID is alluring, I am very much a fan of the increased processing power the past six years have brought us technologically. 

IDE’s and other software

If you use XCode, and nothing else, skip this section. You already are optimized, you don’t have to consider this at all. If you don’t, well, at best your favorite apps will perform at the same level of performance they have been. Rosetta2 may be bridging the gap, and some like VS Code are announcing a plan to get with the times, but like I said earlier, being the first means you’re usually paying a larger price than the premium of being the first to have something. JetBrains and Eclipse have also announced plans to make adaptations for the Mac silicon, but these things take time. For that matter, consider that some of your favorite tools that are not already optimized are going to need to be, and not all of them have the backing that products like Visual Studio do. 

You are happy with your computer

If you are not currently a Mac user, you are probably in the camp that should wait for the pioneers to figure M1 out, and that includes all the software out there that is going to need to eventually break out of Rosetta2. If you have a Mac that can extend you another couple years, well, you will see the price of M1 and won’t be caught bagholding when inevitably the Intel support falls away. It is exciting to be on the cutting edge, but sometimes you get cut and it hurts. 

The Answer

As a backend engineer, you are more than likely going to be just fine with the M1 silicon in the long-run. You are going to be caught in the awkward growing pains of Apple’s new hardware, as you watch your instances of Windows slow down, and you run into problems with some of your favorite applications like has been reported with Docker as of the time of this article. The graphics limitations could be a concern, but if you are all work, no play, and you don’t even know how to pronounce Adobe, you are probably fine working with the graphics card that ships with that. However, also consider that blockchains and scientific computing are intensive on the graphics card as well, so you are not only going to be limited in how many frames you can mine Redstone at. I personally love Mac and do full-stack development with it, and I am waiting for refurbs and the software ecosystem to catch up, but for those of you that NEED to be on the cutting edge, I think this is going to be a very solid machine. Now excuse me while I ssh into my Pi from my MacBook Pro and play Pong. 

Written By: Grant Udstrand, writer for copperlunatic.com

Comic time: Professional SCRUM hogger