When is a Software Engineer Not a Software Engineer?

The title of “software engineer” has got to be among the most highly abused in the corporate high-tech world. It’s also one of the most popular.

And why not? It sounds a lot better than “computer programmer,” and it looks much better on one’s business card. Unfortunately, it’s often inaccurate. Engineering is, after all, the application of sound technical principles to develop systems that are robust, efficient and elegant. I’ve found that a great many software engineers can develop working programs, but do little or no real engineering design.

Does this sound harsh? Perhaps, but I’ve also found it hard to deny. I’ve encountered very few software engineers, for example, who have clean, crisp and readable coding styles–an essential element of elegant software design. I’ve also encountered a preponderance of cryptically written functions, clumsy software abstractions and bizarre spaghetti code. To my dismay, I’ve discovered that even among computer science graduates, many reduce object-oriented programming to the mere use of private data, public functions and object instantiations. It’s enough to break a teacher’s heart.

Now, I won’t go so far as to say that most programmers write spaghetti code. That would not be fair. However, I do think that relatively few programmers have a deep appreciation for the artistry of software development. That’s not to say that they’re ignorant of such things; not at all. Rather, it’s more that the engineering aspects of elegant code design are all too often neglected.

I think this happens because modern programming tools have made proper code design seem like a nuisance. In the early years of computing, people were forced to write out their software designs, pondering many fine details before they ever sat down in front of the computer. Nowadays, with our fast compilers and interactive debugging systems, programmers often find it more convenient to simply sit down and start coding, with just a modicum of software design. Mind you, I do understand that this is sometimes more efficient–when the programming task is fairly routine, for example. However, when such design-as-you-go software development becomes standard practice, then you have the makings of utter chaos.

In part, this problem is also rooted in the malleable nature of computer software. No self-respecting civil engineer would design a bridge by slapping girders together until he has something that works; after all, if the bridge collapses, it could take months to rebuild it. Similarly, no sensible architect would want to build a house without blueprints and floor plans. Yet it is commonplace for programmers to develop software using poorly chosen functions and only the sketchiest of designs. After all, if the software doesn’t work, they can always find the bug and fix it–at least, in theory. In practice, these bugs are often difficult to detect, and fixing them can require extensive surgery. The consequences of an ill-designed software program can be disastrous indeed.

For this reason, I believe that high-tech companies need to give software engineering the respect that it deserves. They need to develop a true culture of systematic software design, instead of merely settling for “whatever works.” A company that’s looking toward the future must pay proper devotion to the principles of software maintainability, proper documentation and elegant, robust design. It must also inculcate a culture of true software engineering among its employees. The failure to do so may work in the short-term, but it is a recipe for long-term disaster.

Who Pays the Best Software Engineer Salary

If you’re seeking greener pastures, a career in software engineering is definitely worth exploring. According to trusted sources, a software engineer salary is an upwards of 100% compared to other careers and is the fastest growing as well. The exact engineer salary will vary of course depending on the location and company, but the average numbers across the globe rings in at $90,000.

Software engineering is a field of computer science that deals with the creation of software for computers and other electronic devices. A software engineer is not to be confused with a computer programmer as the two disciplines are considerably different. Basically, a software engineer designs the programs, while a computer programmer created the codes to make them work.

Locating great engineering talent is not easy in itself so tech companies are happy to pay top $$$ for those who excel at what they do and also to keep them happy. So if you’re curious to know which tech heavyweights pay their engineers the most, the salaries of these global organizations will definitely raise eyebrows.

1. Juniper Networks – engineers at Juniper Networks not Facebook or Google are the highest paid on this list. With a base salary of $160,000, Juniper is a network component maker and a close rival of Cisco Systems. The engineer salary offered by Juniper is significantly higher than the global world average for this discipline.

2. Google – a company that doesn’t allow its employees to go more than 150 feet for food and backed by a vibrant history, Google is the second highest payer on this list, and pays its engineers a base salary of $124,520. Not only are software engineers handsomely paid, they and other employees enjoy a plethora of perks including 3 gourmet meals a day, allowed to bring their trained canines to work, and spend 20% of their time on developing ideas of their own among others.

3. Twitter – Coming in at #3, Twitter – a social media heavyweight pays its software engineers a base salary $120,000 and a bucket load of perks. Twitter has garnered a reputation of being one of the top places to work with rooftop team meetings and free food.

4. Facebook – Another social media bigwig, a base engineer salary at Facebook is no less $119,000 plus some of the most fantastic perks in Silicon Valley. The biggest and unique benefit of working at Facebook is the ability to set your own hours without compromising on a hefty paycheck.

5. Apple – with an engineer salary ringing in at $118,000, working at the Apple headquarters in Cupertino CA is truly an experience of a lifetime. Although a hard company to work for, all employees at Apple are well compensated for their time including phenomenal benefits.