Ever wonder what the Software Team at Kepler does? Jonathan Lung, one of our two Software Development Managers, is here to tell us! This blog is the third in a series of Keplerian Highlights, showcasing the work, career journeys, and advice from a variety of Keplerians!
How long have you been at Kepler, and what are your roles and responsibilities here?
I’ve been at Kepler for two and a half years. I started off writing code for automating our satellites and have since moved on to co-managing the software team. There are two halves to my management responsibilities: cultivating Kepler’s capabilities and directing that talent to handle the full software lifecycle.
To help grow Kepler’s capabilities. I help my reports to find alignment for their career goals with Kepler’s needs. Beyond my own team, I set standards, do design and code review to ensure work meets those standards, institute best practices for software development across the company, run workshops and targeted training sessions, try to keep our development, test, and production environments consistent, and also hire the best candidates for our software roles.
In terms of delivering software, I ensure projects are done on time with minimal risk to space and ground assets. That requires project planning, management and resource allocation, as well as collaborating with our Network Operations team. Beyond timely delivery of projects, I manage the maintenance cycle of various projects to ensure the things we deploy continue to be useful and functional after delivery followed finally by managing the software’s replacement or retirement. Those are my main responsibilities, but I have been known to write a line of code or two, organize events and initiatives like our weekly board games, and participate in Kepler’s open houses and internal mentorship events.
How did you get into this job? What are the experience interests and passions that brought you specifically into this role, and to Kepler?
In my last endeavour, I co-founded an electric vehicle company. I had never worked on embedded systems, but in the early days of the company when it was mostly a hobby, the person who was going to write our safety-critical real-time systems left and we needed someone to do embedded programming, so I learned. I also learned that building up a company that does things with hardware can be slow so I decided to avoid them in the future. But when I saw that Kepler was looking for a software developer with experience working with hardware, I thought, “Wow! They must have some really interesting problems like developing high-reliability systems, network optimization, and code in a resource-constrained environment”. The prospect of solving challenging problems and building products that would help with climate research and reduce our environmental impact overrode my hardware aversion. Space was never an industry I had really considered and, without my previous startup, I wouldn’t have the necessary hardware experience. So I’m here as a product of serendipity.
Is there any one achievement you’re proudest here at Kepler?
Our onboard software. It was a team effort to put it together. Due in part to the practices that we used, I think we developed a very good piece of software in a relatively short amount of time. Our onboard software has been in service for nearly a year now. A three-person team developing reliable onboard software in a few months (including part of it in pandemic lockdown) on our first attempt as an organization is quite a feat and one that I’ve been proud to have contributed towards.
What qualities do you look for with potential hires?
I look for candidates who are the best amongst their peers. For junior individuals, this means they have initiative and demonstrated a capacity to think critically and learn independently. For more seasoned individuals, I’m looking for someone who has demonstrated a consistent record of excellent non-trivial projects and has built up a solid body of knowledge and experience. But we don’t operate in isolation. At the end of the day, we’re looking for people who can contribute positively both technically and culturally to the team.
Which Kepler value resonates most with you? And what does the value mean to you?
The value that has had the most direct impact on me at Kepler is “Speak Up and Listen”. No organization is perfect and when I showed up at Kepler, I didn’t expect it would be – and it wasn’t. But my manager encouraged me to raise my concerns about even the smallest things. Those conversations directly resulted in changes within the company or at least set gears in motion. In fact, none of the things that bothered me when I first started Kepler are still bothering me and changes that I’ve suggested have helped us hit other Kepler values like “Endeavouring for the 10x” and “Own and entrust”.
Kepler is the kind of organization where people will listen and that is important. And the fact that we all do it is important. For anyone – the newest intern to the most experienced folks – to be able to come together and discuss the merits of an idea in a collegial environment makes us stronger as a team and allows us to be like the Borg and assimilate the best ideas.
Would you have any advice to give them for someone who wants to work, particularly in your field? And are there any misconceptions in the field to be aware of?
There is no substitute for extracurricular experience writing software. Everyone going through a university programme has the same base experiences. Going beyond that can help increase your skills and visibility; perhaps more importantly, it can give you a better idea if that is what you want to be doing in your career. And collaborate! Developing software is not a solitary experience.
What are you excited about in the future of Kepler? Specific projects? Future company endeavours?
I think everything that I’m currently working on at Kepler excites me, from our next-generation flight software to our constellation management system (CMS, the software that manages our spacecraft automatically) and from building out our internal development/test/production infrastructure to our highly-reliable and -available data centre infrastructure for our CMS.
Do you have a favorite space movie franchise?