Making your first break as a Software Engineer / Developer

Benard Asiimwe Bataringaya
4 min readMar 21, 2021

So you have outgrown your mom’s garage and want to see the real world as a software developer. There are a few things every engineer knows otherwise you could just as easily become a meme or a cautionary tale for everyone in the development community.
A list of things you should know and understand:

  1. Version Control
    Gone are the days where you would transfer your work on USB sticks or have different versions of your software named version my software 1, my software 2, my software 3 fix, or build entire Software programs on your own. Well, it is still possible, however, you are most likely to be working with a team of other developers where you have broken the product into small modules and each one of you is assigned a task so version control is a must. Familiarize yourself with version control the most common being git. Many companies see this as fundamental and will ask for links to your Github, BitBucket, Gitlab, etc.
  2. Project Management Tools
    Companies have gotten smarter and more efficient with the use of project management tools to manage the development processes. They can in real-time tell who is working on a particular functionality, how long it is going to take, and who in the company is doing less. Get familiar with project management tools such as Jira, PivotalTracker, Trello, etc.
  3. Communication Tools
    Away from calls and emails, tech companies have communication tools that they use for day-to-day communications within the company. So it is fundamental for an engineer to know how to use these tools, how to communicate efficiently without offending anyone, and common company message structures. A few common communication tools include Slack, Zoom, Google Hangouts, Google Meet, Skype, Bitrix24, etc.
  4. Recommended Coding Conventions.
    To have highly maintainable code bases, most companies follow recommended coding conventions in respect to the stacks they use. If not, they have engineering guides that are handed to new employees to ensure there is consistency in the way they do things. Follow the recommended coding conventions and make sure you read through the engineering guides before you do anything else otherwise you could be the guy who messes everyone’s rhythm with your crappy code.
  5. Practice clean code.
    This is related to the above point, your code should just as easily integrate with the existent code as if it was written by the same person. Do not write code in a way that makes other engineers want to hunt you down with a shotgun. So a must is to avoid what everyone calls Spaghetti code.
  6. Understand the SOLID Principles of Software Engineering
    You might wonder what are the SOLID principles of software engineering. Why do I need them? I have gotten by just fine without them! Have you gotten by? Anyways, simply putting it, these are design principles that help make software designs more maintainable, understandable, and flexible. Do not be that guy who keeps repeating what people have already done but you were too lazy to read through the code.
  7. Know your OOP and the basics at your fingertips
    This is a must and it is non-negotiable unless for some reason what you do does not require you to know your data structures, inheritance, polymorphism, and encapsulation which is rare. So if you don’t know, pick up a book and master them.
  8. Know Data Structures and Algorithms
    You thought you had run away from the one course unit that was a nightmare for many in your Computer Science or Software Engineering class. Hate to break it to you buddy, but this is fundamental to get into some companies and they don’t shy away from introducing you to them right off the bat in technical interviews. Not always but some. So yes, you need to know your Big O’s especially if you want to work in a high-tech company.
  9. Understand your way of learning
    Software Engineering is a life-long process of learning. Languages change every day, however, you need to be flexible and fast enough to adjust to the needs of the business. Do learn best from tutorials, reading documentation, reading books, pair programming? You need to know, how well you can learn while keeping up with the needs of the business.
  10. No man is an Island
    Successful software development is a combined effort from all the phases starting from requirements gathering, software designing, software development, testing, deployment, maintenance, all the way to all the other departments that support you. Being respectful and appreciating the work from everybody else will take you a long way in this field. So learn to work with other people as well as create a good rapport with everyone you work with.
  11. Learn to be language Agnostic
    As much as it is safe when you are a specialist understand that languages are a tool, the basics cut across, it’s only the syntax that changes. Popular languages today can easily become obsolete tomorrow. You should just as easily pick up a new language and use it to build a stable product depending on the need.
  12. Lastly, keep up with the market and make your own research
    This is related to the above point as well, keep updated on what skills are marketable and not be caught off-guard when you need to scale up in your worth.

--

--