10 Tips From Year One of Working as a Software Engineer

Onymous Dev
8 min readSep 9, 2021
Photo by Zachary Olson on Unsplash

After four years of struggling through Computer Science coursework, you’re finally ready to start working full time as a software engineer…

Now what?

I was in your shoes not too long ago. After one year of employment, I’m here to share some of what I’ve learned along the way.

TL;DR — I like to write and hate to read, so here’s a table of contents for your troubles. Thanks for visiting!

1. Always negotiate.
2. Talk to your peers about compensation.
3. Work smart, not hard.
4. Get to know your boss.
5. You will write bugs.
6. Learn to write tests.
7. Invest in your work setup.
8. You may get lonely.
9. Consider withholding some taxes.
10. Learn from other engineers.

If you have specific questions, feel free to ask me in the comments section below. Or read the article, you know.

1. Always negotiate.

If you’re anything like me, you’ll see a huge number on your first full-time job offer. 😎

You’ll also take the first offer you get, without negotiating. This isn’t inherently a bad thing — you’re satisfied with what you’re getting and you’re just excited to be sought-after. You’re probably genuinely excited to be working at this company and you’ll have plenty of opportunities to upgrade your compensation later on.

Not so fast. You could be leaving substantial money on the table. Glassdoor estimates that “the average U.S. employee could be making $7,528, or 13.3 percent, more per year than his or her current annual base salary.” Putting off a simple request now could mean an even tougher negotiation six months or a year from now.

The good news: this negotiation shouldn’t be too hard. There is always a salary range for each position, including entry-level positions — and I’d bet my bonus that your new company didn’t start from the top.

Disclaimer: I didn’t negotiate a bonus, so I don’t get one.

There are also some practical and psychological reasons you have a good chance at a successful negotiation.

  • Good talent is hard to find. If I was a writer instead of a software engineer, hell, I’d take a three week coding bootcamp and throw my hat in the ring for six figures.
  • You got an offer, worth X. Odds are, there are other companies out there who would offer you the same.
  • Recruiting is expensive. An unfilled position can cost up to $500 a day. What’s a few thousand more to lock you in?

Scarcity drives demand; demand drives prices. Negotiate.

2. Talk to your peers about compensation.

I know, I know, more blabbering about money. Money is nice. Trust.

Asking your peers is your best way to know whether you are getting your fair share. Don’t be afraid to bring up the conversation with friends or coworkers. It’s in both of your best interests. Just keep it private from your employer and don’t push if someone you ask is uninterested in sharing. Be civil.

Please don’t be this guy (source)

3. Work smart, not hard.

Work is not college. You’ll do much better in the long run if you can be fully focused for a few hours a day, than taking two all-nighters to finish your first JIRA ticket. You want to be optimized for long-term performance, not burned out like a reused birthday candle—this isn’t accounting at Deloitte.

4. Get to know your boss (and coworkers).

Your manager is typically going to be your biggest ally in your work environment. They have a vested interest in your improvement and have the most insight into your day-to-day. They can make a bad environment feel supportive or a good environment feel miserable. They often have a say in who you’ll be collaborating with, what projects you are assigned, and when you might get a promotion. It’s a high-stakes relationship, and one you want to get right.

Your boss is going to try to help you succeed in your role. Don’t make them out to be an overseer breathing down your neck and cracking a whip over your head. They want you to feel motivated to do your best work — it makes them look good and makes their job easier.

Dwight Schrute from The Office jumping on a desk
Dwight is not my actual boss (source)

5. You will write bugs.

Don’t worry about it. Code is a liability. You’ll learn from your mistakes and be better prepared for the future.

The secret is not so much in writing bug-free code but in minimizing the damage that can occur due to failures in logic and syntax and learning to quickly identify and resolve the issue.

Debugging is your friend.

You’ll sometimes be tasked with high urgency issues that need to be solved quickly to unblock customers or cut losses. Having strong debugging skills will help you keep cool under pressure and avoid making the problem worse with a risky patch. This is what all those coding challenges were working you up to! Writing a hotfix is one of the more stressful experiences that you’ll face early in your career, especially when you are the one who pushed the critical error. No need to get down on yourself if that is the case. Ask for help if you need it and stay focused on the issue at hand. After you’ve deployed the fix, take some time to consolidate your learnings from the situation, and then, move on.

6. Learn to write tests.

The last point being said, nobody likes buggy code. We want to catch those bugs early on and ensure our code is as maintainable as possible. Bugs that reach production are costly, and a quick way to get your name to the payroll manager’s desk.

This is a controversial topic for software engineers in general, but I fall firmly on the pro-testing side. Testing is documentation. Testing is happy customers. Testing is the on-call wizard getting to sleep at night. The ability to write testable code is the biggest difference between entry-level and mid-level engineers.

Some companies don’t have a testing framework at all. If you are in this boat, take an afternoon to do some research. How hard would it be to integrate a testing framework and write a few unit tests? Come up with a solution and pitch it to your team. It might even help your team recruit a badass engineer (like me).

The ability to write testable code is the biggest difference between entry-level and mid-level engineers.
- A sound engineer

7. Invest in your work setup.

I worked from home almost every day of this year due to the pandemic. When I wasn’t, I was probably playing with my cat with a Zoom call in the background.

I worked on a tiny desk and a big chair with tall armrests, typing away at my laptop keyboard. I keep leaning forward to read the tiny text on my screen, but I need to keep my arms raised to type. After half a year of bad posture and equipment, my back was bent like a bow. I have to wear wrist braces and remind myself to stretch and straighten up all the time. Truly becoming a Wendigo.

A wendigo
An actual photo of me (source)

It’s not worth. Just buy yourself some comfortable peripherals to set up your workspace. You’re going to be doing this programming thing for a long time.

Pro tip: If you work from home, ask your employer to supply you with some basic work equipment — desk, monitor, keyboard, ergonomic mouse. Many companies will already have those in supply in the office, so you can easily borrow some for free.

8. You may get lonely.

The nature of the job is independent problem-solving. Some company cultures are more collaborative than others, but producing code is something you mostly do by yourself. Pair programming can be hit or miss; it’s definitely not something you do all the time.

So, you may get lonely. That’s okay. Your colleagues are lonely some of the time too (why do you think I’m typing to myself at 2 am in my free time?). Find some time in your day for some social activity. Chat with your coworker about something outside of work. Play more video games. Get a bunch of cats — actually, don’t. They’re miserable little devils.

cat glaring
Quarantine cat (source)

If you don’t do something to lighten up the 9–5 grind, it’s going to be the same rat race that office workers around the world have to cope with. There are a lot of privileges and perks to working in tech, but it’s up to you to take advantage of them.

Aside: If you are struggling emotionally to keep up, have suicidal thoughts, or are unable to enjoy the things that made you happy before you started working, do seek help. Here are some resources to assist you or someone you know.

9. Consider withholding some taxes.

If you are starting your new job late in the calendar year, you may want to withhold some taxes. As a W-2 employee (U.S. only), your employer will automatically save a portion of your paycheck towards income taxes. This portion is a percentage of your income determined by your annual salary income tax bracket.

If you are starting in January, this estimate will be pretty accurate for the most part. On the other hand, if you start working in August, you won’t need to pay as much in taxes for that year. Setting tax withholding tells your employer to give you the extra money right away, instead of holding it for Uncle Sam. The IRS provides a tax withholding calculator so you can estimate how much you will owe in taxes at the end of the year, and set your withholding amount accordingly.

Use this extra cash to buffer your savings account or pitch it into some investments. If I had invested my tax withholdings in BTC or GME, maybe I’d be writing an article about that instead.

10. Learn from other engineers.

Watch YouTube. Read articles. No need to reinvent the wheel. One thing I like about working at a medium-sized company is that I’m surrounded by mentors and more experienced engineers — people who have made a living by building valuable software and working in different team environments. Try to learn why these senior developers care about certain things and seem to gloss over others. Usually, there are lessons to be learned the easy way.

Ideally, after one year of software engineering, you still enjoy what you do and you’ve gotten much better at it. Then, you can come back to this article and tell us about the biggest lessons you’ve learned.

Thanks so much for reading until the end! I hope to write more about my decision-making and optimization in my career and financial life. Let me know what topics you’d be interested in reading about.

If you have specific questions about my experience or the tech industry, feel free to ask me in the comments section below.

--

--