Skip to main content

Command Palette

Search for a command to run...

Lessons Learnt from Working as Graduate SWE at a Digital Consultancy

Updated
4 min read
Lessons Learnt from Working as Graduate SWE at a Digital Consultancy
M

Software Engineer on a journey of discovering how tech can be used for good. Documenting my journey to help others learn from my experiences!

Working as a Software Engineer at a Technology Consultancy (on a Graduate Scheme) is a very different experience than if you were at a Startup or Big Tech company. It is not something I really thought to research before starting my career. I am really grateful for the lessons learned in such a space so I would like to share them in this blog, in hopes of helping others who may also be beginning their career at a consultancy.

A Graduate scheme is much different than if you were to join a company as a standalone engineer.

My role came as a return offer from an internship I did earlier in the summer. This meant the tools I used during my internship (Ansible, DevOps, Cloud) were already part of my portfolio when beginning at the company as a Junior Associate Software Engineer. This meant the first project I was placed on was in alignment with these skills. Companies keep a history of the things you've worked on. If you want to expand and not be boxed into a bracket for future projects, it's important you keep up-to-date your internal portfolio and seek out other projects.

Networking will most likely provide you with more project opportunities.

I didn't realize the importance of networking until I joined a consultancy. The people you know and the connections you make are just as important as the work you do, especially when you are on the "bench" (see next point). Sparking conversation with someone at a networking event helped me learn about internal projects at my company and get connected to someone who placed me on one. If I did not attend that event, I most likely would not have been placed onto that project until much later (or had a staffing manager help me find one). The sooner you network, the faster you'll be exposed to projects.

A Bench is not just something you sit on.

The phrase "bench" or "benched" will soon become familiar to you when you join a consultancy. This is the period where you may have just left a busy project and are waiting to be realigned with a new project. How many clients the consultancy currently has will affect your duration on the bench. It's important to use the bench time to work on upskilling yourself and seeking out new project opportunities. There is always something going on; you just have to get in contact with a staffing manager, network, or create your own project.

DevOps and CI/CD are not just tiny components to a university project.

If I were to give an elevator pitch on what exactly CI/CD was, it'd be this: Continuous improvement and continuous development are types of software development where changes made can be iterated over more easily and deployed to the user. Tools such as AWS, Azure, and GCP have their own tools to help you make your software CI/CD-esque (yes, -esque because it's quite hard to get what CI/CD is until you're actually implementing your own pipelines with Ansible, Terraform, and seeing the internal infrastructure of a problem). I was exposed to infrastructure problems during my first project. It was a lot to get my head around, but it helped me see the bigger picture for how systems work. If you get a chance to work on some infrastructure-related tasks (even if programming is your preference), try it out for a while; no knowledge is wasted.

Its important to ask specific questions.

I had to work on a project where my peers were not in the same country as me. I learned I had to be specific with the questions and problems I had. I could not brainstorm my thoughts through a lengthy teams message for discussion. Evaluate the problem, try to come up with some solutions. Then try to figure out exactly what it is you need to ask. Patience is key.

Treat the next day with the same grace as you did the day before.

Every day is an opportunity to learn, whether it's soft skills or technical skills. I learned that every day I faced a new challenge that was all part of my growth as an engineer. Take every lesson with grace. Grace for yourself and grace for others. Pause and reflect at the end of the day, giving yourself grace in a job where you are spending your time constantly solving problems is a very important lesson to learn. And we should be mirroring the grace of God as much as possible in daily life (My grace is sufficient for you, for my power is made perfect in weakness.” Therefore I will boast all the more gladly of my weaknesses, so that the power of Christ may rest upon me. -- 2 Corinthians 12:9-10).