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:
- Assess what progress I made on the goals I set last year
- List and discuss what I've learned at work and on my own
- Articulate some learning outcomes for the next year
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)
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:
- Regular Expressions
- Data Architecture
- Site Reliability Engineering
- Networking Hardware and Protocols
- Machine Learning Basics
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:
- Buy some switches, hubs, and cables and mess around with different network architectures myself
- Read more into various networking protocols and common security issues with each
- Learn more about shell scripting
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:
- Update and redesign my portfolio website
- Get back into the startup groove by either rebuilding Layolay or creating a new monetizable project
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!
- Obtain at least one more AWS certification (SysOps Admin and / or Developer Associate)
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!