Going from a freelancer on Craigslist, to a Software Engineer at a Fortune 10 company is no easy feat. It requires hard work and proving your value with each new project. Ibrahim Diallo, a software engineer at Thankful, shared eight tips on how junior developers can contribute to their teams' success despite having little experience.
Communicate your value
Lacking a computer science degree could be a roadblock for aspiring software engineers. However, Ibrahim leveraged internet technology to showcase his projects and portfolio.
Job-seeking software engineers should use personal websites, GitHub, Stack Overflow, and other platforms to showcase past projects. Ibrahim recommends Stack Overflow because he sees it as the best way to prove and improve your communication skills.
"Programming is about programming, but it's most importantly about communication. Because you're rarely going to be the only person working on a project. You'll be working with a team, so your communication is key to making that team better."
Show, don't tell
New developers often struggle with being a skilled generalist and specializing in specific technologies. When you have little experience, stand out by showing your skills with practical portfolio samples. To improve his standings as a candidate, Ibrahim created his own custom experience for the company. After reviewing an interesting job offer, he coded websites with similar features as required for the job but on a smaller scale.
Also, diverse perspectives and soft skills are just as important as hard skills and certifications. Such candidates see things that the company has become blind to.
If you still don't feel confident about your portfolio samples but believe you are an excellent candidate for an open position, Ibrahim recommends networking. Use Twitter or LinkedIn to find someone at the company and make a connection. Four of Ibrahim's most recent roles were secured through professional contacts.
Learn to work with 'broken software'
For new hires struggling to balance impressing management, learning the base codes, and improving skills, Ibrahim recommends learning to work with 'broken software.' To him, this means that you don't have to understand how an entire fleet of software works before you can work on it. Working with 'broken software' means only fixing the issue at hand and reporting that progress to your superiors. For example, if asked to fix an issue with AI translations, instead of trying to first understand how all AI works, just focus on translations and try to resolve that one problem.
Make mistakes and be accountable for them
Don't hesitate when you encounter an unknown at work. Hesitation means no progress. And no progress means you're not learning. Instead, Ibrahim encourages failing quickly and learning from your perceived mistakes.
Established companies usually have teams to review code. Be open to criticism. Don't let ego or shame stop you from hearing their advice and learning from your mistakes.
Don't be afraid to ask questions
Ibrahim believes it's crucial to ask 'stupid' questions even if they bring feelings of shame and imposter syndrome. Without them, you will never know how to improve. So, ask questions. If someone gives you an obvious answer, take that information and improve yourself.
Say 'yes' to new challenges
Saying 'yes' to a new opportunity, program, or challenge is one of Ibrahim's best tips to junior developers. When Ibrahim started at Thankful, he had zero experience with AI. However, he said 'yes' to every request presented.
"Even if you're 12 percent sure, just say 'yes.' All the extra 88 percent, you will figure it out along the way. ...Saying 'yes' to these things brought a whole new opportunity that wouldn't be possible for me otherwise."
Before starting his role at Thankful, Ibrahim usually worked with C#, PHP, or Ruby on Rails. At Thankful, he learned Go, a statically typed, compiled programming language designed at Google by Robert Griesemer. There was a major learning curve since he was not familiar with the code or language. It took about a month of reading and asking the original creator of Thankful's AI tool about their intentions before Ibrahim found his footing.
No matter how prepared you try to be, you will encounter something you don't understand when starting a new project. You will feel overwhelmed and lament that you're not the smartest person in the room. At that moment, you must remember that the only way to become the smartest guy in the room is to have patience. As you exposed yourself to new ideas that you don't yet understand, don't get overwhelmed. The ideas might not click the first time, but they will eventually. Take your time re-reading and researching.
Reading is important for programmers. You should read about programming languages as well as the philosophies behind them. Having good philosophical definitions of how things are supposed to work makes it easier for programmers to develop platform standards and build for humans.
For example, you'll only learn about concepts like Just in Time Nudge in philosophy books. Just in Time Nudge is an example of technology being more human-friendly. It makes YouTube comments readable. It gives Stack Overflow, a platform with more than 15 million developers, the ability to facilitate good conversations. It helps you communicate in a mass.
Curious to learn more about this topic? Watch our expert webinar with Ibrahim Diallo, a software engineer at Thankful, to learn more. And if you're ready to start your career in software development, get started below!