• Python Snacks
  • Posts
  • 3 Things I Wish I Knew Starting Out My Software Engineer Career

3 Things I Wish I Knew Starting Out My Software Engineer Career

What professional experience taught me about not coding.

In just 3 years, I’ve gone from writing code that just “works” to understanding what it takes to build solutions that matter - and along that way, I’ve learned some lessons.

For those who may not know me personally, I work full time as a software engineer working with real-time mission-critical environmental satellite data, ensuring it gets processed and sent to users.

As a side hustle, I write this newsletter and help small business grow and monetize their newsletters.

I want to share 3 lessons I’ve learned over the last 3 years. I could say “I wish I knew this when I started”, but in not knowing these things right out of the gates comes an invaluable opportunity to grow.

» In fact, I’m glad I didn’t know these things when I started coding professionally.

Programming is a technology tool to solve problems and create solutions for businesses

Programming is about solving real-world problems that have tangible impacts on businesses, users, and systems and creating solutions to support growth, efficiency, and meaningful outcomes.

Let me give you an example: my dad owns a distillery and his website has held him back from opportunity.

He wanted several updates done to his website, but one in particular stood out to me: he wanted to have users book distillery tours through the website instead of through a third party, as the third party service was taking over 50% of the profits!

I knew I wasn’t best fit for what he wanted, but I had a friend who I knew would be a great fit. Not only did his website get a well-needed facelift, but this specific feature is now live in addition to the other items that were needed.

He’s since seen results, and he feels as if his business has taken back control over his customer experience and revenue; it’s a weight that’s lifted off of his shoulders.

It’s success stories like this we all love to hear, especially if it’s a small business. Without knowledge of programming and how the technology the website is built on works, he likely would’ve never had these features implemented.

Automation is your friend

Automation helps software engineers eliminate repetitive tasks, reduce errors, and free up time for creative problem-solving. Whether if you’re coding, deploying, or building a personal workflow, automation becomes one of your best allies.

For example, I have an automation that runs once a month that gathers a listing of all of the commits in a repository, feeds the commit messages into a language model and summarizes the changes I’ve made in the codebase.

Then, using an email API, I’ll email myself the output. The email service provider I use for this newsletter, beehiiv, does not allow you to do this through their API, but Kit (formerly CovertKit) does.

My automation looks something like this:

Automation to summarize git commits

This automation has helped me stay organized and reflect on the progress I’ve made in the codebases. It ensures I have a clear understanding of what’s been accomplished each month and serves as a reference for reports.

I also have an automation set up for this newsletter: each time a new release happens for certain python packages occur, I get notified, to which then I can place it in this newsletter.

There’s many ways to integrate automation into your career:

  • Development automation (code linting, automated testing, code generation, static code analysis)

  • Deployment automation (CI/CD pipelines, infrastructure as code, containerization)

  • Workflow and Collaboration Automation (syncing tasks between project management tools, code reviews, documentation)

  • Outside of coding: data backups, CI metric dashboards, analytics and reporting (such as Tableau)

Know your audience, technical and non-technical

More on the interpersonal side, it’s extremely important to understand who you’re talking to: your coworker, project manager, or the customer, for example.

It’s very easy as a software engineer to get in the crux of the technical side of things: code, frameworks, algorithms, etc. However, at the heart of every engineering role lies the ability to communicate. This skill is arguably more important than maintaining clean code.

Here’s a different examples on how you can tailor your verbiage based on whether your audience is technical or not:

Comparison Type

Technical audience

Non technical audience

Simplify without Oversimplifying

“The app now uses a CDN to serve static assets”

“The app now loads faster because we optimized how it delivers images and files”

Using analogies and metaphors

“The new caching layer stores frequently used data, reducing the need to query the database repeatedly.”

“It’s like saving a shortcut—you don’t have to start from scratch every time.”

Focus on Outcomes and Impact

“We reduced API response time by optimizing database queries and adding indexes.”

“The app now responds faster, making it easier for users to get what they need quickly.”

Use visuals for clarity

“The architecture now follows a microservices design, decoupling core features for better scalability.”

“We’ve restructured the app, so it’s easier to add new features and handle more users.”

Explaining a bug fix

“The issue was caused by a race condition in our multi-threaded system, which we fixed by implementing a mutex.”

“We fixed a problem where actions were happening out of order, which was causing errors.”

Presenting a new feature

“We implemented OAuth 2.0 authentication for better security across third-party integrations.”

“We made logging in safer and easier, especially when connecting with other apps.”

Writing this newsletter is one of the best things I could’ve done to build this skill - I’ve had to explain complex topics to a broad audience of various skills and knowledge.

This newsletter has challenged me to think of topics I can write about and explain at a level that make sense for a large audience, all while providing content that is useful for you.

P.S. if you want to tell me more about yourself, fill out this form (less than 3 minutes) and let me know who you are!

📧 Join the Python Snacks Newsletter! 🐍

Want even more Python-related content that’s useful? Here’s 3 reasons why you should subscribe the Python Snacks newsletter:

  1. Get Ahead in Python with bite-sized Python tips and tricks delivered straight to your inbox, like the one above.

  2. Exclusive Subscriber Perks: Receive a curated selection of up to 6 high-impact Python resources, tips, and exclusive insights with each email.

  3. Get Smarter with Python in under 5 minutes. Your next Python breakthrough could just an email away.

You can unsubscribe at any time.

Interested in starting a newsletter or a blog?

Do you have a wealth of knowledge and insights to share with the world? Starting your own newsletter or blog is an excellent way to establish yourself as an authority in your field, connect with a like-minded community, and open up new opportunities.

If TikTok, Twitter, Facebook, or other social media platforms were to get banned, you’d lose all your followers. This is why you should start a newsletter: you own your audience.

This article may contain affiliate links. Affiliate links come at no cost to you and support the costs of this blog. Should you purchase a product/service from an affiliate link, it will come at no additional cost to you.

Reply

or to participate.