Reflections A Year Into My Career thumbnail

Reflections A Year Into My Career

August 21, 2025 David Teather

I graduated from college about a year ago and started working as a software engineer, primarily on go microservices.

This post is a mix of advice, realizations, and me yelling into the internet void. It’s not super organized—more of a brain dump from my first year in tech. Take what’s useful, ignore the rest.

Time Flies

“The days are long the years are short” has never felt so real.

Work Hard But Not Too Hard

I’ve had this mentality for a few years now but it mostly comes from

  1. Preserving yourself and preventing burn out
  2. I think on average the RoI of work work is lower than learning for fun on the side.

Do Good Work

Don’t take the previous point as being lazy. Do good work, learn, push yourself, and don’t be lazy, but your salary is set.

Don’t Let Work Become Your Life

CS Competitions & Events Just Don’t Really Exist Outside of School

I participated in a lot of these during university, including organizing a hackathon, MIT battlecode contest, IMC prosperity contest, organizing a GitHub Field Day, and there just seems to be way less opportunity for this kind of stuff after graduating.

Even if there were more of these I don’t know if I would have enough time to meaningfully participate in these (and I don’t even have children).

Way Harder To Learn Unrelated Things To Your Job

I think this is just because there’s less time to explore for the sake of exploring, partially made worse by remote work. In undergrad I was part of the UPL which was a great space just to sit and just absorb whatever things people were talking about in an area of tech that I would have never heard of before. The silo-ing into your specialization is much stronger.

24/7 tech in-person 3rd place spaces like this either don’t exist or are hard to find after graduating.

Get A Mentor (At Least At Work)

If you don’t have one at work, advocate for it.

I think it’s an important part of not becoming too complacent.

Avoid Stagnation / Complacency

I’ve noticed it’s really easy to slip into your ways at work, whether it’s the day to day, the processes, or just the general status quo of doing things.

Try to actively be a little bit “experimental” poke around, see what you’re doing, compare it to best practices, see how you can improve. Question existing processes, see if you can improve them.

Learn On The Side

This kinda goes back to an earlier point. But don’t just rely on work to teach you things, learn a new language, skill, technology, concept, etc.

If your company lets you do a personal development goal and dedicate work time, and if they don’t mind it’s completely work-unrelated this is a great time to learn some new things that you might not have dedicated time to do otherwise.

Make Artifacts Of Your Work

Don’t just write code, try to document what you did, its impact, and when you did it in a personal document somewhere.

Use Statistics To Demonstrate Your Work’s Impact

Try to pull statistics about your work during performance evaluations some examples: number of page views on internal documentation, number of PRs put up, number of commits made, number of PR reviews given, etc. Even if existing tooling doesn’t exist to pull this internally, you can probably get a quick script thrown together.

Metrics obviously aren’t anything and maybe better expressed as a % of your team’s total for each metric. Just don’t let metrics become all you care about.

Find An Easy Team Quality Metric To Beat

Check your team’s choice of code quality tracker and see what you can improve on. Does your team have abysmal unit test coverage, no integration tests, no alerting, or anything else like that?

If so, when you write code have a metric in mind to beat. During evaluation you can show that you’ve demonstrated that you write better and more reliable code than your team on average which hopefully includes people higher in level than you.

Temporary Fixes Become Permanent Fixes

Use AI In A Balanced Way

I personally do like to use AI, but I’ve noticed cases where I feel like I’m using it more like a crutch than actually learning.

A good example of this is that I had to learn opensearch and I started off frequently asking it to write me opensearch queries, even if they’re simple operations like looking up by ID. Instead of learning it myself I’d just keep asking AI.

If you’re not forced to use AI to meet rushed deadlines, I think learning new technologies without AI teaches you a lot that if you use AI with the “it’s good enough” mentality and you’re more likely to develop real opinions on technologies and understand them deeper.

Job Security Doesn’t Exist, Your Skills Are Your Job Security

Tech layoffs are often out of your control, even when performance isn’t the issue, so the best and only job security is in continuously growing your skills.

Stay Fresh On Interviewing Skills

Related to above, or if an amazing opportunity pops up out of nowhere, you’d want both your technical skills like leetcode and interviewing skills themselves to be pretty sharp.

Find A Tech Community

Find a group of people who will push you to learn more and introduce you to people / opportunity / knowledge that you would’ve never known without them.

Find Pain Points on Your Team And Solve Them

Think about quality of life things: automatic syncing between clouds, alerting, logging, metric reporting, shared abstractions. These are all quick and easy things to make an actual impact on your team.

Do Things For Other People

Actively say yes to doing things for other people on your team or just in life. You don’t want to be someone who only asks for other people to do things for you.

If You Think A Decision Is Bad, or Makes You Uneasy, Raise Concern

Just because you’re a new grad, you’re not stupid. If you feel like your team (even if it’s someone more senior) isn’t making a great decision, especially if it’s likely to require more work to fix later, raise it to your manager.

Raise concern in a nice way, the “worst thing” that could happen is you get an explanation of why. And a little learning never hurts. “Best case” is when you’ve called out a pivotal design flaw.

Own Your Mistakes

High ownership in success and failure.

Don’t Blame Others For Mistakes (Even If They Made Them)

Succeed together as a team, fail together as a team.

Respond To Feedback Quickly

Don’t let people tell you on PRs or other feedback on the same thing more than 3 times. Quickly adapt to feedback and incorporate their changes.

Vocalize Not Meeting Deadlines

If you feel like you might not make a deadline, raise that earlier than later. My manager’s seen a lot of new grad engineers leading projects for the first time and say they can make the deadline until a week before.

It’s scary and feels like you’re letting someone down, but transparency is king. Last minute updates are a worse look.

Have a Future Vision For Your Project/Feature

Don’t just be led and assigned tickets. Have a vision of areas of improvement, this might take awhile to build intuition around it.

Travel Around, Visit New Cities, Crash On Couches (remote work)

Especially if you’re remote, just kinda go explore if you can afford it. Plane tickets are relatively affordable if you go at odd hours, and try to crash on couches or stay at hostels.

This is something that I wish that I would’ve done more.

Pick a Tech City (remote work)

Might be controversial, I don’t think you need to do this. I think being a remote worker though, I’m at a disadvantage in a non-tech focused city (Chicago). I feel like following advice earlier to find a tech community to push me is harder here than it would be in a: SF, NYC, Seattle.

Don’t Work From Bed (remote work)

Do not work from your bed. Separate out bedroom for sleeping, work desk for work, and couch for relaxing or whatever. Whenever I break this my mental health definitely starts to crash.

Try Out a WeWork (remote work)

Especially if your company would pay for it, but honestly the monthly pass might be worth it. It really helps getting rid of the cabin fever and seeing other people actually exist.

Work From Outside (remote work)

I haven’t done this yet, but one of my friends will just remote work from a hammock in the park sometimes. You can just have some fun.

Do Important Things, But Have Fun Doing It

I interviewed at a company, and the interviewer said the title of this section. Then he said “if nobody laughs at standup for a month I quit, and I’ve actually quit places before because of that”.

Work isn’t everything, it’s not amazing all the time, but you can do serious things and still have fun with it.

On Call Is Stressful But Rewarding

You likely won’t learn all the intricacies of your system before being involved in a few incidents.

Wow My Presentation Skills Have Atrophied

“The Best Software Engineer Is the One Who Has The Most Fun”

My teammate said this, I think he was quoting someone but I don’t know who. Just play around, experiment, have fun, design some things, and you’ll become better for it.

Take A Deep Breathe

Just remember it’s not that big of a deal, you’ll make mistakes, you’ll learn, and you’ll make it through as long as you keep on persevering.

breathe out…

Back to blog