Home Articles Other Contact

Software Snapshot: First Year of Fullstack

< Previous

6 / 27 / 23

Next >

9 min read

TLDR (click to show/hide)

To keep up with my annual self-reflections on my software engineering journey, I review my first year of professional work. I review the tools, books, certifications, etc. that I worked on and set some stronger goals for myself for the following year. Will likely be more of an interesting article if you're interested in pursuing software engineering yourself or if you're me looking back at this a year from now.

It's been exactly one year since I started working as a professional software engineer. I've been at the startup CharterUP and have learned an incredible amount in a very short period of time. The advantage of being on such a small team is that I got to work across the entire product; designs, architecture, infrastructure, databases, backend, frontend, and testing. Since this will be my second 'Software Snapshot' (read the first here), I want to structure this article in the following way:

Last Year's Goals

At the beginning of my career a year ago, my goals were fairly broad; experience with backends, system design, testing, and improving my CSS styling. At CharterUP, I've had the chance to work on all of these; using Java Spring Boot every day, leading projects from design to deployment, writing unit tests and learning from our QA engineers, and handling a lot of UI design work as we haven't had a designer.

Overall, I'd say these goals were met in the capacity I set out for myself with testing being the area I could still improve on the most. Having been exposed to these concepts in a business context, I would break each into smaller goals that I would like to continue working on.

What I've Learned

Perhaps this is a similar experience for most people entering the work force, but I feel I've learned more in this past year than in a majority of my time in college. I recognize this is partially because I'm at a startup with a relatively small engineering team. No one is particularly specialized on the team, so everyone gets a chance to work on everything from DevOps to Testing, Frontend to Backend. I'll first list some things I was exposed to through my job:

  • Vue.js
  • Typescript
  • Java
  • Spring Boot
  • Hibernate
  • Mockito
  • MySQL
  • Terraform
  • Jenkins
  • Elasticsearch
  • Figma
  • Authorize.net
  • Slack API
  • Atlassian Products
  • System Architecture
  • Amazon Web Services (AWS)
    • IAM
    • RDS
    • ECS
    • ...

Beyond these tools, I've been able to learn more about aspects of software engineering that can only come from experience; collaboration, management, delegation, etc. Day-to-day, I get to be heavily involved in the product aspect of our new features, attending meetings with operations, finance, customer success, etc. to narrow in on requirements and help our PM cut Jira tickets and create designs in Figma. The last several months, I've had the chance to lead a team of 3 other engineers through implementing these features end-to-end and through the testing and deployment process beyond that.

In my free time, I've been very excited about continuing my learning from work and picking up new topics in tech in general. I'll list a few of those here:

These are pretty broad, but my goal has been to read books on topics across as many technical fields as possible to use this time early in my career to explore and home in on a more specific field to pursue as it progresses. Please check out my book list to see what I read specifically and some of my notes from reading.

In addition to these, I've had some time to obtain a few certifications for AWS, which I felt would come in handy since I use it weekly at work.

My Upcoming Goals

Having learned more about what options are available to me and what software engineering can and should look like; I've put together a list of things I'd like to accomplish this year with a bit more detail than I was able to articulate last year:

Fundamentals and Experience in Machine Learning: Coming from a math background and not getting to use much of it each day is a bit painful. There's a lot of beauty in that field that rarely sees use by the typical fullstack engineer. On top of my interest in making more use of math, AI is having quite a boom in 2023 and is such its high on my list of career paths I would like to pursue in the next few years. I've already started reading about different statistical learning methods and playing around with some models but have a few key subgoals to help myself make more progress:

Continue Learning Networking: My interest in networking comes from a desire to understand the underpinnings of how software works and is accessed on a deeper level. Before anyone was able to create and share meaningful code, we needed hardware to communicate it. My dad works in IT and has a lot of experience in this field and suggested a few things:

Create and Deploy Fullstack Projects: I haven't worked on many projects of my own lately, and the ones that I have been able to work on were relatively simple. To put all of these new skills to use, I'd like to:

Continue AWS Certifications: Since I have a lot of other things to focus on this year, I'll mostly be putting my ambitious goal of getting all of the AWS certification on the backburner for a little while. However, I still think studying for these exams and actually using that knowledge at work is very useful for both future projects and employment opportunities. After all, infrastructure is everything!

This is a hefty set of goals for myself, but I think its a challenging yet doable amount of work for the next year while still leaving some space to explore new things I will inevitable stumble across. I look forward to this second year in my software development journey and am excited to look back on these a year from now; good luck future Sam!