Push yourself to learn new theories and skills
Collaborate to build cutting-edge technical solutions
Apply learnings in mission-critical environments
Being a successful engineer is about much more than just writing code. The role can require radically different skill sets, dictated by the industry or field you work in and the products you work with.
One of the most multifaceted roles in that landscape is that of the full stack engineer. In the latest blog post in our Life@Pendulum series, William Mucheru shares his thoughts on the qualities and attributes needed for the job.
So my background – and one of my longest-standing interests – has always been in design. I come from a family that has worked in this industry, so it only felt natural for me to study that field for my Bachelor’s.
However, during my gap year between high school and university, I decided to also do a software diploma course – that was my first exposure to coding – and I loved it. I couldn’t stop. I guess you could say I caught the ‘bug’.
It was when I started coding alongside my degree I realized that if you’re good at design and you’re also good at software, that typically means you’re good at building products – which is what I do today.
What it means to be a ‘full stack’ is different wherever you go. But at most places, you essentially combine two ends of the engineering spectrum which – on the surface – are very different.
You need to understand what’s happening on the backend, but also what the end user interacts with on the frontend through the product interface. You’re not just writing code and shipping it out – you really have to think about the end user. It’s pretty unique. It’s challenging. But it's a powerful skill set to have if you can properly apply it.
“You’re not just writing code and shipping it out – you really have to think about the end user.”
I’ve been with the company for around two years now. When I first started, a lot of my work evolved around building product demos. As a company, we found this was the best way for our customers to get an understanding of how our products actually worked and what they’re capable of. This would mainly see me work with product designers and product managers, iterating on things like UX and UI.
Now, however, I’ve transitioned slightly away from the user-facing side of our products, and am moving more into supporting our ML team with tools and frameworks. At times, it’s been quite a shift from designing and building for the front end, but it's that kind of flexibility you need to really embrace for a full stack role.
I’ve been writing code for more than a decade, with some of the most intense learning I’ve done in that time has been at Pendulum. Whether it’s formally with certifications, or informally through support from colleagues – I’ve had great guidance in these efforts.
Perhaps what is more interesting is how quickly I’ve had to apply these learnings in practice. For instance, I’m currently building a data sync application for one of our clients, all in Python – a programming language I never officially worked with and only learned just a few months ago. It does sometimes feel like you’re building the plane while it's flying – but there can be a lot of fun in a challenge like that.
"It does sometimes feel like you’re building the plane while it's flying – but there can be a lot of fun in a challenge like that."
I’ve also had time and space to grow academically. Right now, I’m doing a lot of my own research into systems programming languages like C. I believe that having that base-level understanding of how they work is going to be a powerful grounding for my future career development, and as I become increasingly involved in both engineering and enterprise decision making.
Be prepared. Be ready for anything. But also, be honest with yourself. You’ve got to cover a broad church. If you don’t know something, that’s okay – the best full stack engineers are the ones willing to learn new skills.
Last night, as usual, I made a list of action items for the next day so I could hit the ground running after my commute to the office. Once I’ve completed a few small tasks and caught up on my emails and Slack messages, I’m ready to dive into my technical tasks of the day.
Like many people on our team, I like to start the morning with code reviews, when it is relatively quiet. No one on my product pod has any pending this morning, but I can see on our JIRA board that the neighboring Predict\People team needs some support.
I help them review a schema they have been working on for one of our healthcare clients. It looks like it's in very good shape, so I leave a copy of comments and tag one of our data engineers for their thoughts.
I step out for lunch with Vincent, who is on our machine learning team and also based in Nairobi.
We usually have most of our meetings from early afternoon onwards, so we can connect with teams in Europe, as well as the U.S. I first have a one-to-one with my manager, where we discuss my ongoing workload and any areas where further support might be useful.
I am on the Predict and Plan\Products pod, where we typically have two stand-ups every week. Today is a Thursday, and we have our Retro meeting from the previous fortnight. We look at where we had successes as a team, but also where there were issues that may need to be addressed.
I take time to discuss the data sync application I have been working on. Megan, who is also on the pod, spotted a few data consistency issues with some of the datasets, so we take some time to dive into these. We make the decision to fix them in our upcoming sprint, so it doesn’t become an issue down the line.
After the retro I have a few more hours of focus time before we end the day. After taking my afternoon tea break, I spend time writing some new code for the same application and more research into making it reusable for other projects.
The three of us in the office head out together once the traffic has died down a bit and agree to see each other again early next week.
William’s day represents just one of many different engineering roles across Pendulum. Visit our careers page to learn more about opportunities. You can also read more from our Life@Pendulum series to find out what our Data Engineers or Machine Learning Engineers get up to.