Essential non-programming skills for engineers

How soft skills benefited my career and can help your career too

This post is based on a talk written for Rails Girls London November 2019.

I decided to leave my job as a critical care nurse and educator in January 2017, my job entailed a lot of stress and responsibility which I just didn’t want any more. I completed a web development bootcamp and have been working as a Rails engineer since.

I (mostly) don’t regret my years nursing I had some wonderful experiences and gained “soft” skills I don’t think I would’ve had I done a degree in Computer Science and become an engineer at 21. This post will detail how some of those “soft” skills gained in nursing have helped my engineering career.


First, a quote from Patrick McKenzie:

Engineers are hired to create business value not to program things

There is a massive amount of value that you can bring to a project without ever having to write a single line of code.

Emma Barnes gave a talk last year at Rails Girls about how you can be the domain expert. Emma had experience in publishing and was able to use her engineering skills and experience to create publishing software. If you are a “second career” engineer like myself there is so much you can bring to a team. For example I was working as a contractor for a children’s charity recently and I knew more about consent and data protection and retention in that regard than anyone else on my team because of my past career, so that was able to influence some of the engineering decisions we made around a products we were building. This could be the same for you if you’re bilingual and your working on internationalising a website.

Being present

A lot of engineers zone out at meetings because they don’t see the value of their presence. Being present and not just physically but contributing can help your team massively. You are able to give insight and make contributions that non-technical team members cannot. Your presence can be reassuring for team members as you are able to verify technical claims that they are making about the product that you are building together.


Another skill which you can bring to the table as an engineer is being able to speak to non technical team members or clients about technical issues. Something I had to do in nursing was break down very complex health issues for distressed family members. I needed to ensure that they were able to make informed choices about their loved ones care. This has benefitted me greatly as I am able to do the same with non technical team members. The ability to talk in simple terms about a complex piece of tooling you are using ensures that everyone is aware of what is happening with a product. It also benefits junior team members massively as you are able to get them on board with your product or development processes.

Being approachable

Often engineers are held in high esteem within an office and due to this are often siloed or isolated away from the rest of the team. This can mean that engineers appear unapproachable. If you are open with and to people you learn a lot more and the product that you are all working on together is better as a result. Being approachable has also lead to me getting more work because I’ve built good relationships and certainly may help you get a foot up in that next job you want to go for.

Final thought

One last quote from Patrick McKenzie:

At the end of the day, your life happiness will not be dominated by your career

This is true but also not, I wasn’t happy in my old career and that unhappiness spilled out into my outside life. Yeah, your career isn’t the key to happiness but engineering has helped me maintain a much healthier balance in my life. BUT I have been able to take so much from my previous career and apply it in a positive way to my current career.

Further reading

Recent posts View all


The best way to test model scopes in Rails

Learn about Rails scopes and how to best test them with both Rspec and Minitest


Finding out what called a Ruby method

A quick way to understand what is calling your code using the caller method