On this page

Congratulations to me! I’ve officially hit 1 year as a Software Engineer! If you’re my boss or one of my coworkers reading this post: thank you! I could not have done it without all y’alls support. The past year has been a crazy one in the software field, and for me, so I figured it’d be fun to reflect and share my thoughts on what’s next.

The importance of IntelliSense

Believe it or not, this was the first year I consistently wrote code in environments without IntelliSense. That being said: wow…I don’t know if I’ve ever missed anything more. Ctl-Click (or Cmd+Click :) ) follow, hover-docs, auto-complete, caller-callee trees, program outlines, etc., I never knew how much I took them for granted. When I was finally able to fix my dev environment setup (actually a skill issue and my own fault), I swear my productivity 5x’d and I felt so much more at ease. But I guess it speaks to the importance of a familiar dev environment, while at the same time not relying on a specific IDE or text editor too much. On the bright side: I “learned” Vim!! In probably the worst decision 9th grade CyberPatriot competitor me ever made, I’ve always been a Nano user because I couldn’t figure out how to type in Vim…Embarrassing to say the least. Anyways, now I can put Vim on my resume and browse a file in the terminal approximately 2.5x faster! Speaking of which, I have a newfound respect for Vim-wizards everywhere. Maybe by next year I’ll have mastered tmux! Lesson: Appreciate VSCode more.

I’ve always written bad code; I just didn’t know it

The Pragmatic Programmer has changed my perspective on so many things, which makes it a shame that I only read it for the first time a month ago. The moral of the story is: I’ve written a TON of bad code. I’m not really talking about code that didn’t work per se, more so code that was overcomplicated, over-nested, poorly named, patchwork/band-aid, and every other adjective you can think of. The book really changed my perspective on coding practices (to be fair, it’s not like I had much knowledge to begin with) and made me want to refactor almost everything I’ve ever written (scope creep!). As I’ve shifted gears towards Rust as my primary, it’s been super beneficial in helping me avoid unnecessary complexity and think less about over-relying on stateful classes for everything. Lesson: that hyper-nested for loop or 5 case if-else is probably NOT the best way of solving the problem.

Prompts > Everything else for Agent Effectiveness

Probably a controversial take, but hear me out. I’m someone who lives with the dream of hyper-specific and hyper-customized agentic setups (and software); I love Pi partially for that reason (kind of counter to the harness…, but I digress). What if we could build the best agent (or software!) for X-Specific task? As a result I’ve tried a lot over the past year: Obsidian vaults, attempts at persistent memory, 40+ Pi plugins, customized subagents, Claude skills, project-specific RAG/semantic search, and whatever the latest Medium email tells me to, but nothing has been as effective as just prompting better. It’s easy to get lost in the sauce and hypotheticals (memory is a super-cool open-ended problem after all), but nothing can every replace the context-efficiency and directness of a good prompt. And with Whisper/great TTS algos on every major provider: prompting is up to 3x faster with your voice! I love a good markdown file (or 5) as much as the next person, but a lot of the times an extra paragraph in the prompt can cover 85% of the same info.

Quick Fire

Lots of random thoughts that have crossed my mind over the past year:

  • Cognitive Debt is the new Tech Debt: Could write pages on this but I’ll hold off for some (hopefully soon) future posts :)
  • Most software should no longer be bound by the original software/frameworks it was written in
    • Refactoring/Porting to other languages is easier than ever before
  • I think we might see a gradual convergence towards the same couple industry-standard tools for everything
    • Is this good? bad? who knows
    • Rolling your own library has never been easier, but also less worthwhile?
  • I don’t really like React anymore
  • Contract validation pre-function execution is awesome
  • There is 0 excuse for bad UIs now
  • When I took Computer Security in College the professor’s lobbied hard to convince us to vote for it as a mandatory course for all C.S. majors, this is more true than ever before I feel
    • Even just a broad-spectrum overview/knowledge can save so many dangerous decisions
  • Astro, lower bundle-sizes, and non-reactivity makes sense for a ton of sites
  • It is now easier than ever to build the Minecraft mod of 7th-grade-you’s dreams

Conclusion

I’ve learned soooo much this year, it’s been truly incredible. This is such an exciting time to be a software engineer, and I’m especially grateful for such a supportive work environment and the opportunity to grow every day. Here’s to many more! Thank you for reading this far!

While I frequently utilize AI for a variety of tasks, including maintaining this site, all of these words are my own and I did not use AI to generate this post.