In this blog, Andrew Crozier tells us about his role as part of the Faculty Platform engineering team.
Why did you decide to become a software engineer?
I studied Physics at university and found myself doing programming during my studies to solve scientific problems. I found it really rewarding to figure out and solve hard technical problems. I came to realise I actually enjoyed the programming as much as science and that’s when I looked at software engineering as a potential career path.
Why did you choose to work at Faculty?
I’ve been at Faculty for three years now. When I decided to leave academia, I wanted to find a job where I could use my skills and interests. I also wanted to leverage my past experience in maths and data analysis. I’d heard about the Faculty fellowship programme for PhD graduates looking to get commercial data scientist and engineering roles and it seemed to be a good way to hit the ground running.
I joined the fellowship in 2016 and worked on a Faculty project with the frontend development team to build a web app (before there were great tools like Plotly Dash that allows you to build web apps in Python). I really liked working with the team. They really know their stuff and care deeply about good engineering practice, robustness and delivering an excellent product.
Tell us a bit about what you do on a typical day
I travel in to the office to make our daily standup at 9.30am. This is where we give an update on what different team members are working on so that everyone has good context. It provides the opportunity for different functions (backend, frontend and design) to coordinate with each other.
After this finishes, I get to work coding or planning out work with the backend team. This will include writing tests and configuration files for deployment as well as the application code itself. I often also work with the design and frontend teams to collaborate on developing ideas and designs for new features.
At Faculty, we often use pair programming – where two people sit in front of the screen; one is the driver and does the actual typing but both discuss the implementation of the code while they write it together. This is really useful for knowledge sharing and means two people in the team understand on a deep level how the software works. It’s also critical for training new members of the team. The Faculty Platform backend is coded in Scala (more about how we use Scala in our tech blog here). Scala is a (mostly) functional programming language. For some, this means learning a whole new way of thinking about code, and pair programming is a great way to learn this approach and get rapid feedback.
What are you working on at the moment?
At the moment I’m working on a data connector feature that helps people to connect to resources outside of the platform. For example, if you were an ecommerce website with lots of transactional data stored in a database, you might want to connect to that database so you can query the data and perform some analysis on it. This feature will make it much easier to connect to this kind of data source outside of the platform.
Describe life at Faculty
Life at Faculty is rewarding and fun, with plenty of opportunities to grow your skill set. On Fridays we have ‘learning time’, where we have time to work on our own personal development project. These projects often involve collaborations across the company – members of my team have developed their data science knowledge on projects supported by members of our data science services and R&D teams, while members of those teams have come to us for our experience with the platform and software engineering more broadly.
There’s also lots of opportunity to meet and learn from people outside of the technical teams. I run lunchtime talk series which started out as technical talks, but has since broadened out. This year, we’ve had talks on Catalan castelliers (human towers), the environment, and we even had Sir John Kingman Chair of UK Research and Innovation (UKRI) to tell us about the broader technology landscape. There’s also lots of clubs and as an avid musician I’ve been able to get involved in our in-house Barber Shop choir.
Do you have a favourite story?
We have a couple of inflatable palm trees in the engineering space. I think we decided to buy them in the pub to try and make the engineering space more chilled out. We used to have someone assigned each week on our Jira board to re-inflate the palm trees.
What skills do you think make a great software engineer?
The best software engineers are logically minded. If you found Maths and Physics easy at school, you’ll probably be a good software engineer. Sometimes people say good software engineers are lazy – in actuality we just want to find an easier and better way of doing things!
Find out more about joining our team and available jobs here.