5 year reflection of myself as a software engineer
I’ve been working full time since 2020, and it’s been 5 years in my professional career. I’m currently a software engineer at Amazon, and before that I worked at a startup. If you count my college years, when I interned at PayPal, I’ve been involved in building software for 8 years.
This is a personal reflection on that journey — what I learned along the way, what I’d do differently, and a few tips for anyone trying to get into the tech industry. I’ve tried to keep the technical jargon to a minimum; where I couldn’t, there’s a short glossary at the bottom.
College Era
I started at Iowa State University in 2017. Over the course of my degree I held both research assistant and teaching assistant positions, and worked on a number of small software projects on the side. The one I’m proudest of is Primer Server — a tool I built from the ground up to help biology researchers design experiments. I presented the research at the National Conference on Undergraduate Research and released the code publicly as open source.
That project ended up changing my trajectory. A recruiter from PayPal reached out after seeing it, and I spent the summers of 2018 and 2019 interning in Silicon Valley. The team I joined was small and focused on a specific problem: PayPal’s network engineers were creating firewall rules by hand, which was slow and error-prone. I built a web tool that let them generate those rules through an interface, cutting the turnaround time from a few days to a few hours.
A few reflections from college:
Take research positions if you’re an undergrad. The pay isn’t the point — building real things, learning to work independently, and having something concrete on your resume is.
Focus on business impact, not just technical correctness. My PayPal tool worked well and was being used in production, but I didn’t really understand at the time why it mattered to the business. That perspective came later, and I wish I had developed it earlier.
Don’t get comfortable. After my first PayPal summer I didn’t bother applying to other internships — I figured I had a good thing going. That was a mistake. Trying different companies, teams, and problem domains is how you figure out what kind of environment lets you grow.
If you’re aiming for big tech, practice coding interview problems early and often. Sites like Leetcode are full of them. Many people argue that this kind of problem-solving is unrelated to actual software engineering jobs, and they have a point — but at FAANG-level companies, the interview process expects deep proficiency in this style of thinking. Participate in competitive programming if your university offers it (my own experience).
Startup Era
After graduating, I joined a startup in early 2020 — partly because I wanted to experience all three settings: academia, big company, and now startup. I commuted into the office for the first few weeks, but then the pandemic hit and the rest of my time there was fully remote. The company sold at-home lab testing kits and had gotten its start on Shark Tank. The people were unconventional, the energy was high, and the company was riding a massive growth wave through the COVID years.
This was where I learned what production software development actually looks like. Code reviews, automated tests, deployment pipelines, system monitoring, feature flags — all the day-to-day craft that makes a team operate. Building testing frameworks in particular taught me a useful skill: how to think like someone trying to break the software. That mindset is a big part of being a good engineer.
I grew fast at this company. I started on testing infrastructure, then moved to the backend team that powered the lab and fulfillment operations. The core systems were written in Ruby and ran on AWS. It was satisfying to keep learning and to work directly with the people whose operations my code was supporting.
In mid-2021 recruiters started reaching out, and one of them was from Amazon. I prepped hard for the interview — I’d let my coding-problem skills get rusty, which was a lesson in itself: those skills decay quickly if you stop practicing. The interviews went well, I focused my answers on the business impact of past projects, and I ended up with an offer 70% above what I was making at the startup. Two takeaways: keep your interview skills sharp even when you’re not job-hunting, and learn to articulate the impact of your work, not just the technical mechanics.
Amazon Era
At Amazon I’ve worked on Last Mile — Amazon’s package delivery operations. It’s been an education in two directions: technically, I’ve learned how to build large-scale systems that serve global customers; operationally, I’ve learned how the physical mechanics of getting packages to your door actually work, and how much engineering goes into making it consistent.
On the technical side, I’ve worked with a wide range of Amazon’s cloud services: data processing systems that handle huge volumes of delivery data, workflow orchestration tools, event-driven systems, machine learning services for computer vision tasks, and monitoring and dashboarding platforms. The unifying theme is scale — both in terms of how much data flows through these systems, and in how the team thinks about building features. The pattern is: launch in one geography (usually North America), make sure it works, then expand to other regions like the EU and Japan.
A few things I’ve learned from working at this scale:
Impact is the currency. At a big tech company, your career advancement depends almost entirely on what you’ve shipped and what difference it made — the dollar amount, the number of users affected, the technical hardness of the problem. Many of the most successful engineers I know don’t work long hours; they’re just sharply focused on the things that move the needle.
Promotion is a process you have to drive yourself. I assumed for the first year that doing good work would naturally lead to promotion. It doesn’t. At big companies, promotions involve formal reviews by people outside your team, and you need an explicit case for why you should be promoted. Start working on your “promotion document” with your manager early — it forces you to track your accomplishments and notice the gaps in your record while there’s still time to fill them.
These things aren’t obvious, and no one tells you. A lot of how a career at a big tech company works is implicit. You’re given a lot of freedom, but you’re also expected to be independent — to figure out what to work on, how to make it visible, and when to push for advancement. Most engineers learn this slowly through trial and error. I wish someone had told me earlier.
Conclusion
Looking back at five years: the things that mattered most were focusing on impact, getting out of my comfort zone, keeping my interview skills sharp, and thinking backwards from the goal of the work rather than forward from the technology. Start early, identify what you have and what you’re missing, and then close those gaps deliberately.
Five years is long, but it also felt short. I hope to keep growing as an engineer. For anyone getting into this industry: learn to enjoy what you’re doing. Tech has a creative, impact-driven culture, and there’s real satisfaction in shipping things that make a difference. Stay curious and keep learning.
Glossary
- AWS (Amazon Web Services) — Amazon’s cloud computing platform. Companies rent computing resources (servers, databases, storage) from AWS instead of running their own data centers.
- Backend / frontend — In a web application, “frontend” is the part you see and interact with in your browser; “backend” is the server-side code that handles data, business logic, and storage behind the scenes.
- Big data pipeline — A system that processes very large amounts of data — too large for a single computer — by splitting the work across many machines.
- Cloud services — Pre-built tools (databases, message queues, machine learning systems, and so on) that companies like Amazon, Microsoft, and Google rent out, so other companies don’t have to build them from scratch.
- DSA (Data Structures and Algorithms) — The fundamental theory of how to organize data and design efficient procedures to manipulate it. Heavily emphasized in software engineering interviews.
- FAANG — Originally an acronym for Facebook, Apple, Amazon, Netflix, and Google. Used informally to refer to the largest, most prestigious tech companies.
- Feature flag — A switch in code that lets engineers turn a new feature on or off without redeploying the software. Useful for rolling features out gradually or quickly disabling them if something goes wrong.
- ICPC — The International Collegiate Programming Contest, a global programming competition for university students.
- Leetcode — A popular website with thousands of coding interview practice problems.
- Machine learning (ML) — Software that learns patterns from data rather than being programmed with explicit rules. Used for things like image recognition, recommendations, and language translation.