It is easy to keep to yourself as a software developer. Work comes in, you concentrate, solve the problem, and then more work comes in. Years can go by, and your co-workers may not know one thing about you. This is what happened to me. I spent my first two years at a company working on a project. I had minimal interaction with people outside of my immediate team. Due to this, I would always be mistaken as a new employee. This wasn’t good because this was around the time that I was considering asking for a promotion. I’ve learned that people in the company need to know who you are before they will approve a promotion no matter how good your resume is. So, I decided to get involved.

How to get Involved

The easiest way is simply to share with co-workers. Share a little about yourself and listen to the stories of your co-workers. People are attracted to your humanity, so let people know a little about your life outside of the job. Also, if your company participates in charity work, get involved with the charity drive. Doing this gave me an opportunity to meet new people in my department and in other departments. Not only did I meet people I generated relationships that I can lean on in the future.

Photo by unsplash-logorawpixel


What do you do when you feel overwhelmed and stressed? Sometimes life, work, responsibility and timelines can make you feel overwhelmed. Software development as a career can be VERY STRESSFUL. Constant problem solving, evolving programming tools and methodologies, and burdensome expectations of constant perfection can really take a toll on your mind and body. On top of that there are also the stresses of life to deal with (family, bills, etc). We really need to take care of ourselves in this line of business.

I know what stress feels like

You don’t last a decade in this business without going through some stressful situations. Here are some stressful moments off the top of my head that I’ve dealt with.

         Everything seems to work in the development environment, but when moved to production nothing works…

         Key pieces of software stop working for no “apparent” reason.

         Having to debug an issue for a user that needs software to be fixed instantly.

         Dealing with disrespectful people

         Dealing with micro managers

         Working through the night and getting no sleep

         Not being compensated for the overtime that you have to put in

How I deal with stress as a Developer

Times like these make you question why you chose this career to begin with, and what you can do to cope with the stress. It will never be completely removed, but you can deal with it. Here are some things I do when feel overwhelmed and stressed:

         The first thing I do is Pray. You may not believe in prayer or a higher power but praying actually works for me. It calms my mind and helps me feel like I’m not alone.

         I go for walks even if it is just to the washroom. This is vital for me. Walking helps me to clear my mind and relax. I’m fortunate to have a park near my place of work and I find that walking through nature helps to calm me down.

         I try to get proper rest at night! I do my best development work in the wee hours of the night/early morning, but I find that staying up to late at night is not good if you are dealing with stress. Check out this post for more information about the results of sleep deprivation https://www.webmd.com/sleep-disorders/features/10-results-sleep-loss

         I vent to a loved one.  My wife is not a developer, but having her there to listen and to be my biggest supporter helps .

         I try not to think about work in my off hours. That is my time.

 

Stress Prevention as a Developer

There are times when we will not be able to control the circumstances that come your way. However, there are also times when there could have been some preventative measures to your stressful situation.

         Time Management is very important, and if truth be told, at times this could be the cause of the late nights and lack of sleep. Try not to procrastinate.

         Ask questions to those who know more than you! Don’t be a hero. If a problem has already been solved get the solution and give credit where credit is due.

         Show respect to the users of your applications. Developing  rapport with your users can go a long way if an issue arises with the software.

Photo by unsplash-logowhoislimos

I have had the opportunity to get a lot of help with writing my resume over the years. It started when I was in the co-op program in college. Before we could go out into the field we had to complete an in-class portion of the program, and one of the modules of the course was technical resume writing. Since that time, I’ve worked with head hunters and I’ve looked at other developers resumes and learned what makes a software development resume stand out. This is the first post in my Resume writing blog series. We will begin with the Cover letter.

The Cover Letter should not be too long but should highlight the key portions of your resume. Below is a break down of the paragraphs with introductory sentences.

Paragraph 1 – Speak about how you came across the job opportunity, say something that is flattering about the company, and confirm that your education and experience make you a key candidate for the role. Here is an example

“While browsing the Monster.ca Job listing board for Software Development opportunities I came across your posting for a Junior .Net Software Developer. I recognize that Company A is a leader in the industry and that your company was voted one of the best places to work in Canada. Not only would it be a privilege to work for your company, I believe, that based on my education and experience, the requirements for this role align with my skillset.”

Paragraph 2 – Highlight you. What makes you special. Use words that are flattering to you. SELL YOURSELF.

“Prompt, detail-oriented software engineer that implements requirements within specified time frames. My core strengths are Java and Oracle, as seen in my current roll at ‘your present company’ where I have been a dedicated employee since…”.

Paragraph 3 – Highlight your current duties at your current job. If the job description lists certain necessary tools or skills and you are currently using them in your work environment, list them here. If you are in school you can skip this paragraph.

“I currently work as a software developer at XYZ Company where I develop and maintain applications. I am responsible for …. The tools that I use in my current role are .Net 4.5, SQL Server, Html, Javascript…(List most of them)”

Paragraph 4 – Talk about your education and any clubs or special things that you were a part of in school. Also stress the soft skills. Talk about being able to communicate, being articulate, and being able to write clearly. These are highly important skills.

“Prior to my professional work, I achieved a Master of Science Degree in Computer Science from the University of Toronto. While there I focused my study on Machine Learning and was selected to be a part of an internship with google. I have been recognized for my ability to understand business needs and to effectively communicate with both Technical and non-technical work associates…”

Paragraph 5 – Talk about any additional points that are relevant to the job and that paint you in a positive light.

“In addition to my degree I also volunteer as a HTML teacher for a coding bootcamp where I encourage teenagers to learn to code…”

Paragraph 6 – Conclude. Emphasize that you are excited to meet with the person hiring face to face.

“Again, this opportunity looks like a great fit for me. Based on my experience and education I believe that I would be a good candidate for this role and I look forward to hearing from you to discuss the Software Development opportunity further.”

I can truly say that I have been blessed to be a software developer for 10 years.  the decade has flown by and my life has changed drastically in this time frame. I entered the field with lofty dreams but not really knowing what to expect. What I learned is that I am a hard worker who was willing to spend hours to figure out a problem. This is a trait that I developed due to adversity, and I think that this aspect of my character is what has kept me successful.

The Early Years

When I was a child I used to say that I wanted to be a computer programmer. I don’t remember the reasoning behind that ambition. Maybe it had to do with the number of hours spent playing video games or it could be because I was fascinated with my Uncle’s computer. Whatever the case, I was dead set on becoming a developer. Nearing the end of high school, I had a change of heart. I decided to study electrical and computer engineering. I struggled through assignments, quizzes, and exams. I just couldn’t keep up or understand what was going on. As a result, I ended up flunking out of University. Yup, I was embarrassingly put on academic suspension. I was devastated and felt like every bit of the failure that I was. I didn’t know what to do. But I learned a lot about myself and life during that time.

Knowing when something isn’t right for me

Electrical and computer engineering is an awesome program and profession; just not for me. During my studies I did really well in classes that involved writing code. I did horrible in my other classes. When I flunked out of the program my goal was to get back into it as soon as I could. I retook classes via continuing education night classes and I did better. However, I realised that this field was not for me. I needed to, as some people put it, “find myself”.

Finding a decent job when you are in your early 20s, black, and have no degree or diploma is really hard

During my stage of self discovery, I needed to find a job. I submitted resume after resume. I submitted application after application. I signed on with job agencies. I found next to no jobs. I was a high school graduate, certainly there was something out there that I could do that paid more than minimum wage… Nothing. A friend of mine, who also was out of school, found a job at a call center and told me that they were looking for some more people. I applied and was hired. I learned that selling things that I am not passionate about is not my strong suit. I was let go from that job after a couple of months.

I ended up getting another job, a summer position, that helped me to earn some dollars. I got this job through an agency so a percentage of the minimum wage that I earned went right back to them. I saved as much as I could, but these were hard times.

Volunteer

Clearly, I had a lot of free time on my hands that I needed to fill. I learned how to play guitar by ear, I became a master of NBA Live, and, best of all, I tinkered with web development. My church wanted to create a website, and not knowing a thing about html, I decided to volunteer my time and energy. With the help of a friend and the help of the internet we were able to create the first version of our website. I realized that this was something that I wanted to do.

Go Back to School

I found a program at Seneca college that offered Computer Programming and Analysis. There was a specialization in Java Internet Development, and that sounded like something that I wanted to do. I went through the application process
and was accepted. I started my post secondary career all over again with a renewed zeal. Academically I was among the top pupils of my class. My program had a co-op option that allowed me to get valuable work experience. I was able to work at Kraft Foods where my project was to present IBM AS400 data on the web. I got to briefly speak about it in a magazine article (my quote starts in the last paragraph of page 9 to 10).

After three years at Seneca I graduated near the top of my class. I had the opportunity to begin my career, but I wanted to fulfill the goal of finally earning a degree. I was able to attend Trent university and have my credits from Seneca applied toward my degree. My Seneca diploma was equivalent to two years of university credits in the honours computer science program. Maybe it was motivation from my previous failures, but academically I did quite well at Trent also. The summer before my final year I was able to get a job as a software developer at my father’s company. I remember my dad imploring me to do a good job so that I wouldn’t make him look bad. This was a great experience. I worked under the Chief Technology Officer (CTO), and to this day if I ever need a reference he is happy to oblige. I really tried my best to go above and beyond there. I graduated with my Honours Bachelor of Science degree in Computer Science ready to take on the world.

Don’t Burn Bridges

I learned that wherever I go in this crazy industry the people that I work with, and my superiors remain important regardless of if I stay with same company or move to another one. Along my software development journey I have accumulated a list of great references. I worked for multiple companies, but I have always left companies on the best of terms. This aspect of my career has been key to my longevity in this business.

You’re going to be alright

There you have it. If you have flunked out of school, like I did, there is hope for you. Actually, it could be the best thing that happened to you, you just don’t know it yet. Stay positive and use this time to grow. One thing I didn’t mention is that I also used this time to grow spiritually. I know that everyone may not believe in a higher power that reveals life’s purpose, but this was key for me to break out of my state of melancholy.

If I can make it through, you certainly can too. Trust me, you’re going to be ok. Just get back to coding.

Photo by Drahomír Hugo Posteby-Mach on Unsplash

I was the only black person in most of the classes related to computer science. I grew up in Toronto, and if you know anything about this city you know that it is one of the most multicultural cities in the world. It is not unusual for someone from Toronto to have friends with backgrounds from at least 4 or 5 different countries. I went to college in this great city and I can’t remember seeing another black person in any of my computer programming classes. From college I decided to go to university. The one that I chose was 2 hours away from Toronto in the beautiful city of Peterborough. I can remember having one other black person in one or two of my classes. Why were there so few of us?

The Digital Divide

While in university I took an interesting course called Computer Ethics. My professor’s name was Dr. Byron Styoles and he lead a discussion about the digital divide that has stuck with me ever since. The lack of representation of people of colour in the industry was result of a lack of access to technology during childhood. This is due to socio-economic class and historic discrimination. Students with lower incomes have lesser access to technology. Now remember I did graduate from university a decade ago. It was before cell phones and tablets were prevalent. Tech, up to this time, was very expensive, and anyone that grew up with access to cell phones, computers, or the internet was very fortunate. The discussion also had  associated readings and they showed that for someone to strive toward a goal they must know that the goal actually exists and is achievable. We need to see people like us in those fields to picture ourselves in them. This sentiment is also echoed in one of my favorite books called The Other Wes Moore. There were some trailblazers in the technology field that we are beginning to hear about now, like the women in Hidden Figures, but none of them had the celebrity of a Steve Jobs or Bill Gates.

In 2016 Google conducted research among school aged children and their parents to get to the bottom of why Blacks, Hispanics, and women are so grossly under represented in Computer science. You can read about their findings here https://services.google.com/fh/files/misc/diversity-gaps-in-computer-science-report.pdf. I thought that the situation had to be getting better now that technology is integrated into society, but the researchers found that things are pretty much the same as they were when I took that class all those years ago. Something that stood out to me is that access to computers and to computer science education is still lacking in black communities.

“Black and Hispanic students are less likely than White students to use a computer at home every day, and Hispanic students are less likely than White students to say they use a computer at school every school day. More than six in 10 students know an adult who works with computers and technology, although fewer Hispanic students know such an adult. Home Computer Access Is Higher Among White Students, With Large Majorities of All Students Reporting Daily Cellphone Usage” Diversity Gaps in Computer Science: Exploring the Underrepresentation of Girls, Blacks and Hispanics p. 12

Prejudice

Due to the lack of black representation, while I was in school I found that my peers and professors treated me differently. I wasn’t abused or anything like that, but prejudice was real. I remember someone calling me “dawg”. I had to explain to him that I don’t refer to myself that way (or speak using black colloquial terms around non-black people). When I would do well on tests, quizzes, or assignments the looks that I would receive from my professors were telling… it was almost as if they were saying “huh, I didn’t think you had it in you”.

Prejudice is as normal as the most normal thing that you can think of. We all pre-judge. It becomes a serious problem when opportunities are taken away or granted due to that prejudice, that’s when it transforms into racism.

Trailblazing

Is this field worth pursuing for Black people? Absolutely! Sometimes we have to put up with negativity in order to promote progress. Black developer and prospective developer, you are a trailblazer. There are still many firsts that we will eventually achieve. Which one of us will be the next Bill Gates, or Steve Jobs. Which one of us will be the next Jeff Bezos, or Mark Zuckerberg. It could be you. You and I are the bridge to the Digital Divide, and with more representation in the industry, my hope is the prejudice will end. We are part of a close-knit family full of shared experiences. I implore you to write code without fear, knowing that you have a place in the development space.

Photo by NESA by Makers

This is not going to be an exhaustive approach to getting your foot in the door of software development. I have heard stories from several developers about how the got their first job, and their education level when they got it. I’ve worked in companies that were small (literally 4 developers), midsized (just around a hundred employees, with 3 developers), and large corporations (ten thousand employees, with a huge development team). Regardless of company size, I have found that most, if not all, of the developers that I worked with had a post secondary diploma or degree in a technical field. Often, they have a degree in computer science, electrical or mechanical engineering, or a diploma in computer programming. If you want to get into the field starting with a degree will only help.

There are many great things said about online or offline code schools, nano-degrees and such, however, personally speaking, I have never worked with anyone that solely had one of these certifications. I have worked with many people who have had a post secondary degree/diploma and have additional certifications. I’ve taken some courses, and this is commonplace in this field. Udacity and Code academy boast of great success stories, so if you did go that route or you are thinking about going that route there are success stories.

However, due to my lack of experience with getting a job without a degree, I’m going to stick with how I became a developer, working consistently and professionally for 10 years. I can’t believe that I’ve been doing this for as long as I have but looking back I’ve learned a few lessons that can help you.

Earn a degree in a technical field

This is the easiest way to get your foot in the door of major and minor corporations. Just about all job descriptions for developers/programmers from companies require the candidate to have a degree in computer science or engineering. Getting around this fact is somewhat difficult, so if you are serious about making a life through development you really should start here.

Humble yourself

Ok, you have the degree now it’s time to show the world what you can do… whoa not so fast. The enthusiasm is great, keep that, but always know that you don’t know everything. After graduation you really don’t know much about writing usable code and writing code that others can edit if you are unavailable. You don’t know about trying to understand and fix problems that are in other developer’s code, or how to refactor code and optimise it. Forget about coding, you probably don’t know how to solve real business problems yet either. These skills all take time to acquire and a lifetime to master. Also, if you think that your .Net, Java, T-SQL, html, CSS, or JavaScript skills are amazing you will meet people that you work with and learn that their years of experience in these languages put your skills to shame. Bosses and developers don’t like to work with conceited people. You will not move ahead in a career in this field with that attitude.

Be honest in your interviews

Normally the hiring process consist of you applying, a phone interview, and one or more interviews in person. Be truthful! If you lie about any of your skills you will be found out. It is okay to not know something. If you don’t know AngularJS but you are familiar with jQuery say that. Developers are constantly learning, and no employer expects you to know everything. What they do want to know is that you are willing and able to learn new technologies. That being said, if the position is for a .Net Developer and you don’t know a .Net language you should not be applying for that job.

Practice Practice Practice

If you’ve done all of the above you will probably get a job. Hurray! Now take some time when you’re not working to practice. The more you program the better programmer you will become. Is there a little application that will be beneficial to you or a friend? Code it up. Is there a new framework that you want to learn? Take a weekend and learn it. Is there a technology course that you want to take to broaden your programming skills in a certain area? Take it! Get certifications if you can. Build up your personal skills, resume, and LinkedIn profile.

Be on LinkedIn

Take a look at the skills that other people in your position have acquired. This can give you an outlook of some steps to take in your career. In addition to this, another reason to be on LinkedIn is for searching out new opportunities. Head hunters are constantly patrolling LinkedIn for people like you. If you are thinking about leaving your position a head hunter may be helpful. However, be careful some will call your work line or try to contact you at all hours to get you be their client. Be cautious when you are picking one to work with.

These 5 steps will help you to not only get a job is the development field but keep a job in this field. Longevity in any career is hard to attain, especially in a every changing industry like ours, but it is possible. I been doing this professionally for the past decade and I know that you can do it to.

Photo by Jefferson Santos