What I wish I’d known as a rookie software engineer

Your early years of software development need not be a nightmare

Software Engineering is a process

Seems obvious, but hear me out. College programming culture is still very much based on the mindset of reading a question and writing an answer. Be it examination questions, proof-of-concept projects or competitive coding. It’s just that medium is now the computer instead of paper. Years of mental conditioning of students make them treat software requirements as questions they must answer. The problem is, engineering doesn’t work that way.

Talk more

At a time when the responsibilities of a ‘software engineer’ is in a state of flux and expansion, it becomes imperative to be aware of what’s going on in your organisation. Talk to your fellow developers, product experts, marketing and sales teams and try to get an idea of the current state of the projects and their outcome in the future. The number of design/product meetings in which engineers come up with ideas that nobody else does is far from negligible.

Set a quality standard for your work

Engineers in other disciplines, for example, Civil Engineering, have to absolutely account for and ensure the safety of the public when they design a structure. Such structures have to last for many decades and they should be designed in a way that they can be repaired easily if they get damaged. This level of care is rarely present among software engineers, especially the inexperienced ones, which is unfortunate because software products, virtual as they may be, impact real people in the real world. That 15-line function you wrote may just make or break someone’s business.

The management hates surprises

Promise that you’d finish a task in 3 days, but do it in 4 days. Bad. Promise that you’d finish a task in 4 days, but do it in 2 days. Also bad. It’s bad because it means the estimate you gave to the management was wrong. The management makes plans well in advance and assigns pipelines of tasks to team members based on each member’s estimates; any unexpected change may cause confusion and may cause the team to operate in a suboptimal manner.

Your carefully calculated estimates are often wrong


Lastly, never stop learning. It doesn’t matter what technology stack you are working on or whether you’re front end or back end or infrastructure. Try to get a grasp of everything. And if you have enough time, go deep. You never know what the next trend is going to be. You never know what your next interest is going to be. Any job is about creating value, for your organisation and for yourself. And learning ensures that you are creating value for yourself.

Yeah, the job has its good moments.

Front-end Web Developer, Ember.js.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store