Career as a Software Engineer: 10 Tips on Starting Out
Over two years ago we shared with you some of the most essential soft skills for jump-starting your career as a software engineer. Today, as the industry only continues to grow, software companies are constantly looking for new talent and the predictions are that this trend is not going to change anytime soon. Thus, in order to help any of you, looking to start a career as a software engineer, we’ve asked several of our team members to shine a light on the things they have learned over the past year — from embracing and normalizing the remote work to creating a personal portfolio and getting ready for a job interview.
1. Teamwork makes the dream work
If there is one thing, we have all learned the hard way in the past year, that is how important and yet underrated the working environment and team spirit actually are. The people whom you work with have such a great impact on your productivity, attitude, and task management. Being surrounded by your team creates a sense of community and support that, in the right company, can be felt whether you are in the office or remote. When starting your career as a software engineer, finding that environment should be just as a priority as anything else. Here at Accedia we have embraced the hybrid work model, which allows us to combine both working from home and the office . This is all new and exciting, but what it mainly helped us do, is appreciate the human contact and connection even more.
- Gabriela Nenova, Software Consultant
2. Do your homework before each interview
Before each job interview, once you familiarize yourself with the company and the stack you will be working with, it’s time to start revising. Go through all the basics. Even the ones you are confident won ‘ t come up during the interview process. Be sure that the interviewer will leave no stones unturned when it comes to quizzing you. You need to be confident in what you know and don’t be afraid of what you don’t. Often interviewers pay more attention to the way you think and the logic you apply rather than necessarily finding the expected outcome. If you feel stuck on a question, write it down and ensure the interviewer that you will do your best to research the topic and be more prepared next time. Because essentially that is a big part of being a software developer — stumbling upon issues and researching your way out of them .
- Vladimir Kostov & Daniel Georgiev, Software Consultants
3. Work on your personal portfolio
It is vital for all software developers to constantly practice their craft. What better way to advance your skills than to work on personal projects and give life to your very own solutions. You can start small. Nobody expects you to create something complex from the get-go. You can do whatever you are interested in — a game, a small mobile application — the sky is the limit. Arriving for a job interview with a prepared portfolio with your past projects whether personal or professional will definitely impress your future employer. This shows self-initiative and proactivity and gives you the opportunity to discuss your own projects, work that you are excited and passionate about. You know the ins and outs of those solutions so use that to your advantage. And don’t forget, the more in-depth you go about your own work during the interview, the fewer questions you will have to answer about technology basics and theory.
– Vladimir Kostov, Software Consultant
4. Focus equally on innovative and established technologies when starting your career as a software engineer
When you are first starting your career as a software engineer new technologies are more exciting than ever. You apply for jobs thinking that companies work with all the latest releases and versions. That is, however, sometimes a myth. It’s not a secret that completely new technologies are often unstable, not optimized perfectly, and have flaws in terms of features. That is why clients often prefer trusting an older version that you have much more experience with, often an LTS (Long-term support) one where there is an ensured commitment for maintenance, and updates. That by no means implies that you shouldn’t follow new trends and familiarize yourself with them. Software Development is a very dynamic industry so staying on top of things and knowing what’s relevant is crucial. That’s why Accedia has created the IDC (Innovation Development Center) focused around the realization of employee’s creative ideas into software solutions with the help of mentors from all departments within the company — Marketing, Sales, HR, Engineering, and so on. IDC celebrates teamwork, sharing a common goal, and learning from one another. We encourage curiosity, diving into new technologies, and expanding your skills beyond your everyday tasks.
– Daniel Georgiev, Software Consultant
5. Prove your skills by earning a certificate
As the demand for IT positions raises so does the necessity of certification. Now more than ever it has become important for software developers to prove their skills by getting certified, as this is what will separate them from the other candidates during job interviews. By taking part in a certification course, you gain invaluable practical skills and experience. Our advice here is to start using what you’ve learned immediately as just as everything else — skills you don’t actively practice vanish without even noticing. That is why certificates are not everything, they are simply the ticket to get in, from there it is all about you and what you bring to the table. And remember — further, not the certificate itself, so never sacrifice one thing for the other. you and your skillset are what drives your career
- Ivan Dochev & Gabriela Nenova, Software Consultants
6. Make sure you are solving the right problem
The Pareto principle applies to software development as well — 80% of the value comes from 20% of the code. When working on a task, concentrate on the pieces of functionality that will move the needle the most. For example, it’s better to have a functioning Login or Registration form than to spend your time creating a beautiful and shiny Submit button that doesn’t even work. Here is something you should make your piece with from the start — a codebase is never perfect. You can always refactor and add more abstractions, to the point of creating your own framework or a CMS, but the best code should be simple and easy to understand. Besides that, you can spend your time working on a task that gives more value to your team and your project.
- Georgi Yolovski, Software Consultant
7. Understand your client’s goal
Working with people makes your career as a software engineer even more dynamic. In order to have a good relationship with your client, practicing your communication skills is essential. Good argumentation and reasoning can often help the client make the best choice for their project. If you have any concerns, try communicating them in a way that is clearly demonstrating your support, and the fact that you are all working towards the same goal. You will never manage to find a solution if you don’t understand your client’s perspective. As a software engineer you don’t write code for the sake of writing code, but to create software that gives business value to the client. So, make sure to get familiar with the business domain, understand how valuable the feature that you’re currently implementing is, ask questions, and give suggestions — the clients will appreciate it. This on the other hand will help you gain knowledge in a different domain and industry, which can be used in future projects.
- Georgi Yolovski, & Ivan Dochev, Software Consultants
8. Embrace initiatives beyond your daily tasks
Set yourself milestones, or in other words, give yourself a challenge and try to learn something new by the end of a certain period, whether it’s a week, month, or even a year. Here at Accedia we have regular Goals meetings where everyone sets their individual milestones, discusses takeaways from past performance, and focuses on future goals and aspirations.
Also, make sure to try different technologies, especially at the beginning of your career, and do not limit yourself to a single framework or technology stack. In order to constantly improve, your goal should be to become a “Software Developer”, and not specifically a “C#/Java/React Developer”. Learning a new technology gives you a different perspective, which might help you when solving problems with another framework. It allows you to see the bigger picture instead of being focused only on one aspect of software development. Plus, the new technology can become your favorite one, you can never know.
- Ivan Dochev & Georgi Yolovski, Software Consultants
9. Make sure a career as a software engineer is the right path for you
Software development is one of the most attractive careers not only in Bulgaria but worldwide. For example, according to the US Bureau of Labor Statistics, the projected percentage change in employment between 2019 and 2029 will be 22% in comparison to the average growth rate of all occupations which is only 4%. This by itself proves that there is a bright future for everyone involved in software development — from engineers to testers and analysts. Still, you should be well aware of your own strengths and passions. When first starting out you have the luxury of trying out new things and figuring out what best matches your aspirations. There are plenty of people who give software development a try, sign up for classes, and then realize they would be much happier doing something completely different.
- Gabriela Nenova, Software Consultant
10. Trust your mentor
Should it be during an educational course or your first months at the new job, having a mentor is always extremely useful and even crucial for your abilities and understanding of the projects you are working on? They will always be there to answer any of your questions whether related to certain technologies, internal processes, or possible career paths. Moreover, they are usually someone with years of experience in your new company, thus can help you socialize and get to know the company’s procedures better. For example, when joining Accedia as a software developer you are being assigned a mentor from day one. They are in charge of your onboarding both within the company and the project itself, work with you side by side, and support you throughout the entire work process.
- Vladimir Kostov & Daniel Georgiev, Software Consultants
Do you feel ready to put into practice all the tips and tricks we mentioned above? Check out our open positions and see what it’s really like to join the fast-paced world of software development