This month, we’re featuring Carolyn Sy, Codecademy Software Engineer. Prior to becoming a software engineer, Carolyn was studying and doing research in molecular biology and natural history. When Carolyn is not coding or being fascinated by talking about genetics and evolution, you can find her walking outside with her dogs, cooking up new recipes, and playing animal crossing.
Tell us a little about yourself.
Hi! I’m Carolyn, and I’m a backend software engineer at Codecademy. I’ve been a software engineer for almost three years now. Before that, I had a job as a coding teacher for a short while as well as some research positions in the natural history/molecular biology fields. Normally I live in Brooklyn, but since quarantine started I have been spending some time with my family in Northern California, where I grew up.
How did you end up working for Codecademy?
I was first introduced to coding in university, but would often meet other students who had been coding since they were young children––this was so intimidating to me at first and made me feel uncertain about whether or not coding was for me. It also made me keenly aware of the fact that even though I eventually came to really love coding, some people have a huge head start and yet many others don’t realize how it can benefit their career until much later on.
After university, I worked at a natural history museum, and among other things helped develop and teach a coding program aimed at high school girls. After I transitioned into a software engineering career, I remained interested in helping more people get into coding, especially those from underrepresented backgrounds. I think platforms like Codecademy are a great way to increase access to a coding education to anyone who is interested.
Did you always want to be a backend software engineer?
No- I originally went to school to study molecular biology, with the intent of going into the healthcare field, and turns out there are some super cool applications of coding and data science in biological research as well. In the end, I think being in software has its advantages in that you can immediately have an impact and rapidly iterate on features and products in a way that you can’t always do in a research lab- but I still love to nerd out about genetics and evolution whenever I can.
What are the best aspects about working as a backend software engineer?
The problems are complex and interesting- I like that working in the backend allows me to envision a big picture of how parts of a system should work. the more experience I get, the more I learn all of the different ways to approach and solve a problem and all of the different tradeoffs. it’s like solving a bunch of different big and small puzzles all at once, which is fun and challenging!
another good thing that I think isn’t always talked about but is important to acknowledge is that working as a software engineer provides a lot of stability and flexibility in my life. I feel lucky that I get to solve interesting problems on a day to day basis as part of my job, but there are other things in my life that are important to me besides coding, and working as an engineer has allowed me to support myself and my loved ones while also allowing me time to focus on other things I enjoy in life as well.
What are the worst aspects about working as a backend software engineer?
As a backend engineer, your accomplishments are often less visible to your users and harder to explain to friends and family outside of tech- when you work on the front end elements of a site, it’s a lot easier to point to something on a webpage and say “look! I built this!”. A lot of the backend work is just as essential in building complex websites but harder to explain and get feedback on.
Also I don’t think this is necessarily a bad thing, but in this field, I think it’s very common to feel unsatisfied and uncertain about your technical knowledge and expertise, no matter how many years you’ve been doing this for. The technologies we use are constantly evolving, and we’re constantly being thrown into new code. I think that part of being an engineer is learning to accept and embrace that uncertainty.
If you could make one piece of fictional tech reality, what would it be?
Too many options… possibly teleportation? It would be great to have an instantaneous commute to work, and also to be able to visit family outside of the country and travel whenever I want to.
Do you have any advice for the learners?
Normalize feeling “dumb” because it never completely goes away- and I don’t mean the self-deprecating way of comparing yourself to others and feeling inadequate because of it, but like acknowledging and accepting that there will always be challenges and uncertainties when working with new code and new technologies and that other engineers go through it too, even the ones who have been in the field for years and seem like they have all the answers.
If you could make one brand new course what would it be?
Computer science applications for biologists! There are so many cool applications of coding to solving problems in biology, and some of them can get pretty complex, like reconstructing evolutionary history from DNA or predicting drug interactions. Yet some of them are quite simple- like how to transcribe/translate a string of DNA characters into a protein. Even if you don’t want to become a software engineer, knowing the basics of coding will take you far in a lot of other fields.
What does a typical day look like for you?
Honestly, I often still struggle to know what a “typical” day is anymore with everything going on around us, but I’ll do my best!
I have mid to late morning meetings 2-3 times a week, depending on the week. I always have a weekly one on one with my manager, in which I can ask any questions or bring up any concerns related to my projects or larger company initiatives as a whole. My engineering team also meets weekly, where we will either share status on projects and discuss upcoming work or reflect on how the past week went. Some weeks I sit in on all-hands meetings with the entire engineering department or with the entire company.
Depending on the week, I may also have other ad-hoc meetings scheduled throughout the day- kickoff meetings with product managers for projects that I’m starting soon, brainstorming meetings to help our team plan for future projects, pairing sessions with other engineers to talk through technical things I’m stuck on, lunchtime meetings with my peers just to casually catch up on non-work things.
Generally though, and especially as our company has moved remote, most of my time is unstructured development time to work on my projects, as well as any miscellaneous tasks that have been assigned to me. This often involves writing code, but also could mean digging into our codebase to investigate a bug or to research the best way to implement something, talking to product managers or other engineers over slack to clarify requirements or understand a feature better, or reviewing code and technical documents written by my teammates.
When I’m done with work or taking a break, I do my best to focus on other things entirely- whether that be taking my dogs for a walk, trying out a new recipe (I’ve definitely gotten a lot more experimental with my cooking during quarantine), playing animal crossing on my switch, or video chatting with family and friends.