Working as an individual
How to communicate
Being able to communicate well with your coworkers is an invaluable skill in the workplace. You should be able to clearly articulate your ideas to your teammates, explain your decisions to your boss, and shoot the breeze with people outside your department. Communicating effectively is one of the most difficult skills to develop if it is not a natural part of your personality, and for many engineers, that’s the case. Here are some basic principles that you should practice to improve your communication regardless of who you’re interacting with.
Choose your communication method correctly. There are so many ways to reach people nowadays that you may not be sure the best way to start reaching out to someone. It’s much easier when you are responding to someone else since you can mirror their communication method (i.e. if they email you, email them back. If they call you, call them back). If you need to reach out to someone first, though, then run through these questions:
- What does the company culture dictate? If everyone in the office communicates via email you probably should, too. If Slack or Lync are used, use those.
- What is your relation to the person/people you’re reaching out to? Is it your boss? Is it a teammate? The more closely you work with someone, the more informal your communication method can be. For a teammate, in-person chats, or some kind of instant-messaging are probably appropriate. For your boss, or your boss’ boss, email may be the best way to go since you can be more thoughtful of your wording.
- Are you requesting something to be done that’s time critical? Then email may not be the best option. A phone call or in-person meeting would probably be a better option. Instant-messaging might also be okay but can be easy to overlook if someone is already busy.
Your goal for well written communication should be to reduce the amount of effort the recipient needs to use to understand your request. An email that is free from spelling and grammar errors is more likely to get a response than one that cannot be read without more effort than necessary because it will be easier for them to figure out what you need. It will also be more professional, which is almost always a good thing in the workplace.
In both written and verbal communication, there are times when you must be direct, and there are times when you must be delicate. In many situations being direct and honest will be the most difficult, but most effective way to communicate. “Sugar-coating” tough discussions will lessen the impact of your words, and it may also feel to the other person that you’re talking down to them, or don’t respect them. On the other hand, when speaking to higher-ups, being delicate may be the way to go. You should still be honest, but if a mistake has been made, take blame, let them know how you’re fixing it, and move on.
Everyone will need help at some point, even you, so you will need to know how to properly ask for help. Realize that everyone is busy, so when someone does help you, be grateful for the time they spend with you. When you ask, be specific about what you need help with, so they know what to expect. Be polite. Say please and thank you.
You should also know when to ask for help, and when to buckle down on your own. When you first start a new job or new role, you’ll probably have to ask for help a lot. Your coworkers will understand that. If you’re working with new technology, or a particularly difficult issue, you should ask for help once you feel you’ve given it your best shot. Be careful with how often you’re asking for help, though. Your coworkers will be more inclined to help you when they know that you’ve tried your best, and sometimes you need to learn, and fail, on your own for a while.
Personal values
Below is a list of values and principles that I try to hold myself to and have found to help drive success in my career. I try my best to keep all of these in mind every day, and some of them are more personal “goals” that I work towards. Some days are easier than others to hold myself to these, but as long as I continue to make progress on the large scale (weeks, months, years) I can feel pretty good about how I conduct myself in the workplace.
- End each day being proud of the work you’ve done. This is my most important personal principle. When I get up to leave the office at the end of the day I want to believe that I gave everything I could to the challenges I faced that day. There’s a saying in sports: “Leave it all out on the field”. I apply that same philosophy to the workplace and “leave it all out in my work”. This applies to everything I do in my work, from the quality of my code to the interactions I’ve had with my coworkers.
- Demonstrate integrity. It can be difficult to tell the truth sometimes, especially when the truth makes you look bad. It’s worse, though, to lie or distort the truth to avoid difficult situations. I have a strong sense of personal values, so I also try my best to stick to my moral compass and fight (when necessary) for what I believe is right.
- Provide value each and every day. This goes hand-in-hand with being proud of my work. If at the end of the day I can look back and point to something that provided value to a coworker, a customer, or the company, I can be proud of that. It isn’t always a lot of value, but I should always have at least one thing that I’ve done that day that makes someone else’s life a little better.
- Don’t be afraid of the wrong things. Some of the wrong things to be afraid of are: losing your job, changing teams or roles, getting a new boss, telling the truth, and speaking up for what you believe is right. You should still be mindful of those things; they can significantly impact your job and your life. However, being afraid of these common things will cause you to play it safe and not push yourself forward, and you should always be moving forward.
- Be open to feedback and criticism. Over the course of your career you will receive a lot of feedback from your bosses and your coworkers. It may not always be in a formal meeting, either. Look for feedback in casual conversations. And take your criticisms with an open mind. You don’t need to act on every criticism, and some advice you will get will be completely bad for your situation, but at least hear them out.
- Share praise and take blame. Truly successful people attribute their successes to the people around them, and for good reason. Nobody gets great things done alone. Be grateful for the help that others give you and be sure to credit them for it. Showing appreciation and acknowledgement will, of course, help to keep positive relationships with them, but it benefits you, too.
- Have an ownership mentality. When you are given a project, own it! If something goes wrong with a product you work on, be the one to fix it! It will show your boss your leadership potential, but more than that, it’s a fantastic way to learn. You can learn about the technical aspects of a project, or how to better communicate with your team, or branch out into other areas of the company that interest you. When you show that you’re willing to be the go-to person, you’ll have more opportunity to work with people you normally wouldn’t, and expanding your network is a great idea.
- Positive attitude and work ethic beats knowledge. Often in my career I have found my technical knowledge lacking. More often than not, I am not the most technically skilled person working on a project. I find that having a great attitude and finding other ways to contribute, while also learning the things I don’t know, are much better ways to provide value to the team than pure knowledge. People will generally value your positivity more than your skills.
Skills and levelling up
When you start a new job or are looking to take the next step up in your career, taking on new responsibilities is part of the deal. You will want to impress your new coworkers, or your boss, and want the chance to show your value. Having responsibilities is a great thing in the workplace, by all means, take on the projects and duties that you enjoy. Be careful of taking on too many, however. It can be very easy, especially early in your career, to take on too much and become overwhelmed, overworked, and find yourself struggling to get anything done. Over time you will figure out just how much work you can realistically get done, but until you find that balance, just be aware of what you are committing to. This isn’t to say that you shouldn’t take on responsibilities early on, but to take on new responsibilities responsibly. Committing to do something and then not following through is a quick way to lose trust in the workplace.
One of the qualities that many good software developers share is that they are lazy. Not “sit around on the couch all day” lazy, but lazy in the sense that they will automate the parts of their job that can be automated and focus their efforts on the more complex issues they face. A saying that gets thrown around is “if you are doing something more than twice, it should be automated”. This is more-or-less good advice. Some things will be easy to automate, and others will be almost impossible, so find the things you can automate and automate the crap out of them! The upfront cost will be a bit higher, but it is well worth the investment almost all the time.
[Editor – Justin Mastic] The advice that I personally give to someone starting their career in a highly technical field is to become an expert at the basics of programming. Learn how to visualize data structures. Figure out how to draw diagrams and architecture. Get really good at logical puzzles. Practice following application and data flow. These base skills will serve you much better through your career than learning syntax or tools. You can learn any programming language with enough practice, and learning new languages can be a good thing. However, being able to understand how to find a bug through architecture diagrams and logical deduction has been a much more valuable skill throughout my career. If you practice these base skills, a lot of the difficult situations you will face get a lot easier.
The next two concepts may seem contradictory, but bear with us for a moment…
First, your work should speak volumes more about you than you do about yourself. You should focus way more of your energy on providing quality work than on politicking, bragging, and talking about the great work you did. If your work is truly great you won’t have to tell anyone you did it, the people around you will know. You will be recognized for great and impactful work.
Second, you should be a champion for yourself. In all workplace reality, the person who most cares about your career is you! You will need to make sure to put yourself in the right situations to advance your career in the way that you want. This probably includes talking with your boss about goals and expectations, looking for the projects that are interesting to you and finding a way to work on it, and getting your name out in your workplace (in the right way: being helpful and communicative with your coworkers).
As mentioned, these two may seem to fly in the face of each other. Be assured that you can absolutely do both! Recognition will come naturally when you talk with your coworkers and they start putting a face and name to the great work that they’ve seen.
Being trusted and respected in the workplace is a great place to be. Your manager probably doesn’t want to micromanage you; they have other things to do. Plus, you don’t want to be micromanaged either! What do you do to avoid that? By delivering high-quality value first and foremost, but also by doing so consistently. If you show that you can deliver on the commitments and promises you’ve made time and time again, you will gain that trust and the autonomy that comes along with it. I highly recommend reading the book “Drive” by Dan Pink. The author goes into wonderful detail about our basic motivations as humans, autonomy being one of them.
Early Career Advice
I have two additional pieces of advice for those just starting out their career that fit nicely in this chapter of being an individual in the workplace.
First, figure out what technology interests you early on. You may find that you really enjoy front-end coding with JavaScript. Or maybe you like structured back-end development with C#. Or machine learning. Or driver development in assembly. Or API design. Or microsystem architecture design. There’s a lot of avenues for you in the tech industry, so take the opportunity to try a lot of them early and follow the ones you like. Setting a direction, even a temporary one, will help focus your energy and learning.
Second, find a “niche” passion that isn’t part of your direct job. This should be something that you enjoy doing, of a reasonably small size, that can provide value for your company or team, and that provides a good break activity for when you’ve had enough of your normal coding for the day. Some examples are continuous delivery improvements, server architecture, and tooling improvements for software release tracking. It doesn’t have to be directly technology involved either. You could find a niche passion for marketing and branding, or onboarding and training. Use your niche passion as a way to flex other “muscles” and switch up your routine from time to time.