Tag Archives: generalist

Why you should build a portable cloud

486 linux server

I was recently browsing Ycombinator News. It is always an endless trove of the curious & interesting.

I stumbled onto Karanbir Singh’s post The Portable Cloud. I was curious, what is that?

Join 28,000 others and follow Sean Hull on twitter @hullsean.

This story gave me warm fuzzies… I was excited in a similar way when Linux was first released. This was many years back through the mists of time in 1992. I had recently graduated computer science, and one of my favorite classes was Operating Systems. We worked to build an OS following Andrew Tennenbaum’s book Minix.

After graduation, I heard about the Linux project & got excited. I was hearing whispering online that Linux could really completely replace windows. So I bought all the parts to build a 486 tower, graphics card, motherboard, memory cards & IDE drives. This ran into the thousands of dollars. Hardware wasn’t cheap then! Keyboard & monitor. I even ordered an optical mouse because it felt like you were sitting at a sun workstation, at home!

I remember putting all this together, and loading the first floppy disk into the thing. Did I image the disks properly? Will it really load something?

Up comes the bios and sure enough it’s booting off of the floppy drive. I thought “Wow, mother of god! This is amazing!”

From there I had init running, and soon the very seat of the soul, the Unix OS itself. That felt so darn cool.

After that I’d spend weeks configuring x-windows, but to have a GUI seemed like the mission impossible. And then you’d go about tweaking and rebuilding your kernel for this or that.

Thank you to Karanbir for rekindling this memory. It’s a great one!

For those starting out now as a developer, operations, or cloud site reliability engineer, I would totally recommend following Karanbir’s instructions. Here’s why!

1. Learning by building

My favorite thing about building a server myself, is that there’s something physical going on. You’re plugging in a cable for the disk bus. Bus is no longer just a concept, but a thing you can hold. You’re plugging in memory, you can look at it & say oh this is a chip, it’s different than a disk drive. You can hold the drive and say, oh there’s a miniature little record player in there, with magnetic arm. Cool!

Also: Is Amazon too big to fail?

2. Linux early beginnings

Another thing I remember about those days, was feeling like I was part of something big. I knew operating systems were crucial. And I knew that Windows wasn’t working. I knew it wouldn’t scale to the datacenter anyway.

I realized I wasn’t the only one to think this way. There were many others as excited as me, who were contributing code, and debug reports.

Related: Did Airbnb have to fail?

3. Debugging & problem solving

Building your own server involves a ton of debugging. In those days you had to compile all those support programs, using the GNU C compiler. You’d run make and get a whole slew of errors, and fire up your editor and get to work.

Configuring your windowing system meant figuring out where the right driver was, and also buying a graphics card that was *supported*. You would then tweak the refresh frequencies, resolution, and so forth. There was no auto detection. You could actually fry your monitor, if you set those numbers wrong!

Read: When hosting data on Amazon turns bloodsport

4. Ownership of the stack

These days you hear a lot about “fullstack engineers”. There is no doubt in my mind, that this is the way to become one. Basic systems administration requires you to compile other peoples software & troubleshoot it. All those developer skills that will come in very handy.

They force you to see all the hardware, and how it fits together into a greater performant whole. It also gives you an appreciation for speed. Use one bus such as IDE or another such as SCSI and experience a different performance profile. Because all that software that Unix is paging in and out of memory, it’s doing by reading & writing to disk!

Also: Are SQL Databases Dead?

5. Learn to be a generalist

I’ve argued before that being a generalist allows you to better scale the web. I still think this, and I believe it is this formative experience building servers from individual parts, that taught me whole the larger whole fit together.

This allows me to look at problems today, and jump to causes of performance problems quickly.

Also: Does Volkswagen highlight the bloodsport in benchmarks?

Get more. Grab our exclusive monthly Scalable Startups. We share tips and special content. Our latest Why I don’t work with recruiters

Open Insights 65 – How Many Hats?

What is your strongest suit?

I talk to a lot of clients, prospects, and human resources folks everyday.  Every so often I’ll be asked “What is your strongest suit?  Would you say you are stronger in Oracle or MySQL?  You’re really on the database side, so you don’t do much systems administration, right?”   I hesitate to go with an either or answer because my exposure to technologies really has been mixed.  It’s easy to think in either or terms.  You can’t be expert at both database platforms, can you?  A lot of folks do specialize in one platform, or one type of work so it’s not surprising we tend to compartmentalize without thinking about it.

What about a jack of all trades?

Perhaps a better question to be asking is how many hats can you wear?  A generalist who can deep dive into the details when necessary can be a great asset to a business.   A manager who is watching costs, and a tight budget needs resources who can solve a lot of different types of problems, and hiring folks who wear a lot of different hats can be a great asset to them.

Specializing Job Roles

Unfortunately due to the way we think of education, we normally major in one thing, and further specialize through years of on-the-job experience.  This type of focus is important, but it can also be a detriment.  Psychologists argue that we naturally have mental blind spots.  Because of that we tend to bias heavily to what we are most exposed to, and see things with those glasses.

Take for example if we specialize in a particular programming language, we’ll likely see that as the best solution for all tasks.  If our job is on the operations side, we may see the business and it’s application in terms of the components and servers that host it.  We probably think about security, and performance, and reliability.  And if we are a developer, we’ll see it as a series of software components that interact in a certain way.  We may well focus on functionality, and the details therein, but think less about performance or upkeep of those infrastructure that sits on.  If we’re a manager or CEO, we will see the business as a whole and what solution it brings to it’s customers.  We are intimately aware of costs in human resources, infrastructure, and day-to-day operations that it takes to make the business continue to move forward and grow.  However we may not understand the intimate details enough to notice a design flaw a developer might, or understand the security implications to the business of a certain infrastructure decision.

The forest for the trees

Given all of this we can see how pervasive each of our blind spots are, and how they influence our frame of mind.  It’s very easy for us to miss the forest for the trees unless we are vigilant.  Communication can help us, and goes a long way towards helping the business as a whole be able to do this.  It can’t hurt to also have a few generalists who can wear many different hats, and plug in to projects in different and creative ways for the business.

BOOK REVIEW:  Cordelia Fine – A Mind of It’s Own, How Your Brain Distorts and Deceives

Here’s an interesting read that elaborates and clarifies how we are biased, how our minds tell us convenient fictions everyday.  Most people are overly optimistic, for instance about their driving ability, or their chances of success.  She explains that this is exhibited by healthy minds, and that there are a class of people that actually see things closer to reality.  Their perceptions of themselves are more even, and their predictions tend to be more realistic.  Apparently people with this unusual quality tend to be clinically depressed.

She divides the chapters up into some of our favorite vices, vanity, immorality, delusions and further being over emotional, secretive, weak-willed or bigoted.  Whatever areas are our particular trouble spots, we all exhibit some of these traits at times.

The author goes a long way towards explaining how and why we do this, and what can be done to improve the situation.  With her insights in mind we can hopefully make better decisions, and communicate better with those around us.

View A Mind of It’s Own on Amazon