Modern Software Engineer

Here is another fun blog I read, but it was kinda long:

Are You a Modern Software Engineer?

The author develops a picture of different developer types and presents a highway analogy for the number of lanes a developer career can travel.

One case presented is the “Full-Stack” Deep and Broad knowledge developer.  In my many years experience thus far, this person doesn’t fully exist.  They are usually deep on one end (say the back end) and shallow on the other (the front end for instance.)  They can function as an expert in one area and get by in another.

It is a good read and I highly recommend it.  Then put yourself in the matrix and ask yourself where you land.

Would you like to work at Apple {or another Big Company} ?

Perusing Twitter just now I see this Cult of Mac article:

I  pause when I hear “Want to work at…” [not just] Apple, but also Google, Intel, IBM, or any other large tech firm. So I started thinking what makes a good job?  Is the bigger more well known companies better than smaller less know shops, or even shops that aren’t directly IT but have an IT need?

These companies have their prestige given the products they produce, with wide reach into common life of millions of people around the globe.  Immediate recognition. What an awesome privilege and responsibility. They also have their culture and demands on the hired associate.
Having been a software developer for 20 years now, I’ve run into many people, and a lot who’ve worked for these companies.
Apple:
It’s a demanding shop that leans more towards a hardware focus. It is also high stress (probably Steve Job’s legacy) and very demanding.  But it is loaded with smart smart people and has a lot of fun projects going on all the time.   I had fun and looked up some job reviews on Google and got these lists:
Google
It is a shop that is software oriented (a programmers dream) and less (or not at all) hardware.   They give you dev assignment after dev assignment, expecting you to crank out the work at least 10 hours a day – offering you free food and beverages onsite, so they can keep you at your desk coding and inventing.
They ask/allow developers (still do? unconfirmed) to take one day to work on a pet project.  This is where things like Google Web Toolkit, Angular JS and other projects come from.  THAT is a Developer’s dream.
Intel
From what is shared with me, Intel is in race mode quite a bit as they strive to stay ahead of the competition, even to the at every year’s review for employees, the associate is always competing with other internal employees for their own job.  It’s not about loyalty.  It’s about production.  (What have you done for me lately?)
On the awesome side, every 7 years you get an 8 week Sabbatical!  How sweet is that.  And the work here is not just interesting, it is leading bleeding edge.
For Google and Apple info, I’ve worked along-side former employees in my career.
For Intel info, I am the most familiar with practices and benefits as I know a number of employees due to where I live, have lived, and family working for Intel (I have family working on next gen hardware, and have legacy in the MMX code of every chip.)
  • Google has always intrigued me, despite a horrible experience with my first Android phone.  They are generating and inventing and doing more and more interesting things.  I would go to work for Google in a heartbeat, #1 choice.
  • Intel with the varied projects and the every 7 year Sabbatical makes me consider this as second in my straw-man list.
  • Apple would come in third in my straw-man poll given a choice.  (Work life balance, pay, what would I be doing.)   Note: I used to strongly dislike Apple computers (System 8 and 9) with the UNIX based OSX softening my stance.  My first iPad in 2010 led me to more products later which I like a lot.
All this said, prestige in a company is cool, but there are a lot of factors to consider wherever you go work.
  • I currently work for a company (an auto manufacturer) and deal with my other favorite topic: cars.  It is a wild ride running a customer facing websites (or my team’s case 257+ different websites.  Challenges, fun and stresses.
  • When I moved to Arizona I went to work for a private college.  I didn’t think highly of it at the time but it turned out to be a Rock Star.  I got to play with a LOT of new technologies, exercise best practices, fully participate in the Agile-Scrum/Kan-ban processes etc.  They showed me the best way to do software dev and I am forever grateful for that job.

A job is more than the company name.  What is the culture, pay, and work-life balance?  Do a little research and see if it’s a fit.  You will also see in a lot of the reviews of above: “Management doesn’t get it”, “work-life balance” … a lot of repeating themes, in EVERY job situation.

A job, irrespective of company, is both what you make of it, sometimes your fit for the job and team (chemistry is important) and sometimes it’s just luck of the draw.