January 27, 2020 · #consulting #data-science #devops #distributed-teams #non-profit #product #remote
Hello! What's your background and what do you do?
I’m currently the Engineering Manager at InterExchange, a non-profit for cultural exchange. Prior to that, I was a Principal Data Scientist and Software Development Manager at Optika Solutions, a data science consulting and product firm - though I started as a Data Scientist there. Before these roles, I was a freelance software developer while completing my Bachelor of Science (Computer Science and Internet Software Development), Master of Science (Distributed Systems), and PhD (Social Data Mining).
Because of the wide array of work I’ve been a part of (both product and consulting), I’ve covered many aspects of IT - web development, distributed systems architecture and development, data science, product development, devops with Docker/Kubernetes/GitLab, and more. I’ve worked as a developer on school administration systems and data science platforms, consulting in large mining companies, building supply chain simulations, and most aspects of product management and development.
I primarily use Python for development and data science, but my last development role was C#/.NET/Core and at InterExchange we use Ruby on Rails to great effect.
How was your transition from software development to management like?
One of the ways you often end up taking on management responsibility is because you recognise the need for it, and nobody else is available to take up the role. I remember reading a quote, “if you’re in a development team and you don’t have a manager, it’s because one of the developers is already performing those duties”. So, even in non-management roles that I’ve been in, there’s always been an element of management involved - whether it was just mentoring and training, project management, or product management.
After about 8 months at Optika, I was directly promoted into a new role - Software Development Manager. The organisation recognised at the time that, even though they were a Data Science firm, there was a bigger emphasis on software development than anyone realised. However, as a small firm with limited resources, there was no cutover to pure management - I remained in both management and technical roles for the rest of my time there. Luckily, the staff were fantastic - I didn’t have to deal with any issues related to jumping up to that level, and the executive were extremely supportive of efforts to improve the organisation.
It wasn’t until I started at InterExchange that I transitioned to pure management. There’s obviously still an element of technical - I need to know how the engineers and product managers work in order to properly understand their problems - but the majority of my time is spent in strategic tasks designed to improve the skills, environment and wellbeing of my team. Ultimately, I’m still working to create the best output that I can - it’s just a team, instead of a product! They’re less predictable than code, but they also make me laugh a lot more.
What does your day-to-day work look like, and what motivates you to do it every day?
I’m fairly new to InterExchange, so I’m part-way through taking over management duties from the CTO. So, a lot of my days are currently learning more about the organisation, meeting the different business units, setting up 1-1’s and performance management with staff, and really just getting to know everybody! A large part of the engineering team is remote, too - 4 of us are based in Western Australia, some are in Colorado, some in New York City and a few other places. This brings some timezone challenges, but also means I can focus on ways of improving asynchronous workflows.
My days in management are mostly split into two: reacting to situations that’ve come up, and proactively mitigating situations that are likely to come up.
The reacting is pretty simple - I’m here to make our employees’ lives better. It could be as simple as lending an ear to concerns and offering advice, or it could be developing or organising training material, reviewing pull requests, or answering executive queries. If people are having issues, I’m here to assist in fixing them.
The proactive lay mostly in identifying organisational problems or opportunities, establishing a solution, gathering consensus and implementing it. In the four weeks I’ve been at InterExchange, I’ve worked with HR to implement a new Employee Management System, worked with the CTO to implement an improved development/release management cycle and design a new analytics architecture, and worked with the engineering team to design and implement automated release management, an improved/streamlined product development workflow, automated style checking for BDD tests and better visibility for test coverage reports. Most of these implementations have involved a significant amount of consultation and change management with the people involved, so I’d say that takes up most of my time currently.
The balance of reactive and proactive will ebb and flow over time. I’ve always said - a job is what you make of it, and you’ll enjoy your time in management much more if you go past the standard “check email, hold meetings” workflow. While I still don’t get a huge amount of time for development, I’d say I spend at least 5 hours per week coding things - often devops or automation.
What are the biggest challenges you've faced so far? What did you do to overcome them?
I think the biggest challenge I’ve faced in management is the tendency to head back to a comfort zone (e.g. technical work). It can be an extremely daunting task to delegate work off to people and trusting that they’ll come to a good solution - and ultimately it comes down to trust in your technical team. If you don’t trust your team, you’ll end up taking over the work yourself - in doing so, not only will you lose the strategic thinking required for long-term success, but you’ll also rob your team of opportunities to upskill. Getting the balance of supervising and staying hands-off is extremely tricky.
Another important challenge is having the ability, empowerment and confidence to say no. Your team is relying on you to ensure that there’s an achievable amount of work being placed on them - letting too many desires from clients or executive through will not only push your team into being overworked, you’ll also end up taking on far too much yourself. This also includes situations where you identify gaps in the organisation - it’s your responsibility to identify the gap and push to have it be filled, not to fill it yourself in addition to your existing duties.
What has been the biggest surprise so far? Something you didn't expect?
As somebody who’s come from an extremely technical background, I think the biggest surprise to me was that I’d even enjoy management at all. If you’d asked me ten years ago whether I’d eventually go into management, you would’ve gotten an emphatic no. I love to code, I love developing solutions, and that’s been my passion since I was 10.
Turns out that while I love developing solutions to things, I still get to do that as a manager. I’m just dealing with processes involving people, instead of systems. There’s still a huge technical element to engineering management, and it’s enough to tide me over.
And besides, if you get to the end of your workday and feel that your itch isn’t scratched - contribute to an open-source project that aligns to your interests!
What's the best advice you've received about being a manager?
I previously worked with an operations manager that had 35 years experience in management positions, and his advice was surprisingly generic: good managers identify places to make change, make it, and then let the processes “settle” over time, even if it seems to be going poorly. Bad managers make change and, upon seeing it go poorly, make more change. Sometimes you need to let bad process remain in place to ensure you’re identify the problems correctly, so it can be improved in the future.
Another from a manager more recently: hire new graduates and train them, even if it costs you. Else, we’re going to run out of skilled developers.
What do you tell developers who are considering making the switch or new to the role?
There are ways to transition gently - if you’re a developer now, ask for some responsibility in managing projects, or mentoring juniors, or put your hand up to look over the development processes. In doing so, you may find a career path you love - or you might realise you hate it before you put energy toward moving in that direction!
Never forget that your primary role is to improve the lives of people around you. You’re not there to ensure your company turns a development profit, if it’s at the expense of your employees’ health and wellbeing. Similarly, your role isn’t just to assist your reports - have you asked how your manager is going today?
Final call to action! Where can we go to learn more about you?
We have an Engineering page at https://interexchange.engineering, and we’re hiring for a few new positions if you’re interested! I’m also available on LinkedIn on https://www.linkedin.com/in/james-meneghello/, and on GitHub as https://github.com/jamesmeneghello. I’m always happy to have a chat if you’d like to ask questions or want some advice!