In poker, there's a strategy that goes beyond playing your cards well – it's about choosing the right table. The idea here is clear: why struggle against the best when you can excel among the rest?
This can also be applied to navigating a career in software engineering. Why not play smart by picking your battles - or in this case, the company, project, and team that aligns with your strengths and goals?
Choosing the Right Company
Starting a career is like stepping into a casino full of tables. You need to pick the one where you can play your best game. It's not just about avoiding tough competition; it's about discovering a culture that amplifies your strengths and aligns with your values.
Do you thrive in a collaborative environment, or do you prefer a high-pressure, competitive atmosphere? Are you drawn to companies that align with your personal ethics?
Some avoid fields like advertising, crypto, surveillance, gaming, or streaming despite lucrative offers, preferring to work for companies whose mission and products align with their personal beliefs. The key is to understand that a company culture plays a massive role in your career trajectory and job satisfaction.
Pro Tip: If their mission statement makes you roll your eyes, walk away. Trust me.
Projects vs Products
Projects or Products? There's no universal "better" choice here, just two distinct flavors of work. Which one's right for you? It all boils down to what gets you out of bed in the morning. Let's break it down.
Project-Based Work
Project work (contract or freelance) is like playing quick, high-stakes poker games. The primary focus is on completing a specific set of requirements within a defined time frame. It involves working on short-term, often varied tasks and goals. One week you're writing an ML model to predict dog breeds from photos (why? Who cares?). The next, you're setting up cloud infrastructure for a retail company panicking about Black Friday.
You're in, you deliver, you're out. You're the problem-solver-for-hire.
It's exciting. It's diverse. It's the kind of work that throws you into a dozen industries and technologies, forcing you to stay sharp. Perfect for people who thrive in fast-paced environments or want to build a diverse skill set.
However, this type of work isn't without its difficulties. Hustling for new clients and projects is also work. For many, the constant search for clients and the endless self-marketing are exhausting. And while you might build cool things, the lack of long-term ownership or impact can leave some engineers feeling unfulfilled.
Product-Based Work
Unlike project-based work, product-based work involves contributing to a long-term, vision-driven mission. Maybe it's revolutionizing payment systems or making the perfect task management app (because apparently, none of the 12,000 out there nailed it yet). It's more like sitting at a single poker table for a long, strategic game, where success comes from mastering the nuances, studying the players, and understanding the dynamics over time to tip the odds in your favor.
In this world, you're no longer a generalist. You're a specialist. You're going deep into the tech stack, optimizing every last detail until you're dreaming about container orchestration or Java factory names (hey, no judgment). The focus here isn't just on building but on evolving — refining the product, responding to user feedback, and making something better with every iteration. It's immersive, and that sense of ownership is hard to beat.
Stability is another perk. You're not constantly chasing the next gig, and you get the time and space to develop deeper expertise. Plus, being part of a team driving a product to success can offer a sense of purpose and accomplishment that project-based work sometimes lacks.
But it's not all sunshine and rainbows. That long-term vision can start feeling like a treadmill by year two (or month six, it depends). Bureaucracy creeps in, priorities shift. The product that felt exciting at first might become just another grind, especially if you're someone who craves novelty.
Choosing between project and product work isn't about right or wrong — it's about what kind of engineer you are. Do you love the rush of new challenges, the thrill of variety, and the chance to flex a wide range of skills? Then projects might be your playground. Or do you crave depth — a chance to dig in, master a domain, and see your fingerprints on something lasting? That's where products shine.
And don't forget — you don't have to pick one forever. Life's messy, and careers don't follow a script. Maybe you start by jumping from project to project, building a killer resume and learning every technology under the sun. Then one day, you find a product you believe in and decide to settle down. Or maybe you mix it up, alternating between the two to keep things interesting.
Startup vs Big Tech
Choosing between a startup and an large tech company is the ultimate "Risk vs. Opportunity" dilemma. Both paths offer unique experiences, and the right choice depends on what you're looking for at this stage in your career. Let's break it down.
Startups are the land of opportunity — and unpredictability. The teams are small, the pace is fast, and you'll be juggling everything from product ideas to bug fixes. You're close to the action, working directly with the product and (if it's going well) customers, and you'll quickly see how the business side of things fits into tech. Want to feel like you're building something real from scratch? This is where you'll get that.
There is a catch: it's risky. Job security is shaky, and if the market takes a nosedive, so might you. Also, often startups lack experience in scaling their product. Who needs those when you're putting out fires every other day? Still, if you're the kind of person who thrives in chaos, okay with risk and wants to grow fast, startups can be an incredible experience.
Big tech companies are the opposite — they got money, infrastructure and a system for everything. You'll benefit from that stability and structure, and if your goal is to work on products that touch millions (or billions) of people, this is the place to be.
But here innovation can move at a glacial pace, and you'll probably spend time wading through layers of bureaucracy just to make small changes. Many large companies also expect you to figure out how to make your work impactful and business-relevant among other initiatives. If you're not careful, it's easy to feel lost in the machine.
I would say the choice between startup and big tech may depend on the phase of your career, but that is my opinion — decide for yourself. The balance you choose, again, should align with your career goals, risk tolerance, and personal goals. Whether you opt for the dynamism of a startup or the steadiness of a big company, ensure it aligns with your long-term goals.
Compensation
Let's talk about the paycheck, because — let's be honest — it matters. Compensation in tech swings wildly depending on whether you're at a startup or a FAANG, and there are trade-offs to consider.
Big companies usually come with big salaries, cushy benefits, and predictable performance-based bonuses. Stability and scale allow them to offer those shiny compensation packages, including retirement plans, healthcare, and perks like free snacks. If you like knowing your work will reliably pad your bank account, Big Tech is where it's at.
Startups, on the other hand, don't always have the deep pockets to compete on salaries. You'll probably earn less upfront, and probably don't count on bonuses. What they do offer is equity — those magical stock options that could make you rich if the company takes off (keyword: if). The earlier you join, the more significant that equity slice might be, though it's still a gamble.
Compensation isn't just about company size — it's also about the sector you're working in. Engineers in high-revenue industries like finance, gaming, or AI can bring more dollars than their peers in less lucrative fields. If maximizing your earnings is a top priority, this is worth factoring in.
No matter where you work, understanding your market value is crucial. Research the going rates for your skill set, experience level, and location, and don't be afraid to negotiate. Senior engineers tend to command higher salaries, but only if they can articulate their value effectively. Experience pays — literally.
Picking the Right Work
So, you've picked your company — great start! Now comes the next move: choosing the right project or product area. Think of it like picking a poker hand. Sometimes you'll score pocket aces; other times, you're stuck with a lousy 2 and 7. Let's make sure you're stacking the odds in your favor.
It's tempting to dive headfirst into the biggest, flashiest project out there, but be realistic — you've got to walk before you can run. Pick something that matches your current skill set so you can make meaningful contributions and build confidence. Once you've nailed that, you'll have the experience and credibility to solve more ambitious challenges.
It's also wise to assess the project's strategic importance within the company. Not all projects are created equal. Some are at the core of a company's strategy, while others are side quests no one will remember in six months. If career growth and visibility are important to you, aim for work that's central to the business. These projects tend to get more resources, higher-ups pay attention, and your impact will be much easier to showcase.
My tip: learn the difference between profit centers and cost centers. Projects tied to profit centers — things that directly make money for the company — are often more visible and critical. Cost centers (like internal tools or compliance) are still important but don't usually get the same level of recognition. Choose wisely.
Selecting the Right Team
Your team is just as important as the work you do — maybe even more. Like picking the right poker table, the people sitting with you can make or break the experience.
No matter how exciting a project might be, steer clear of teams with toxic or overly competitive cultures. If the culture feels cutthroat, you'll spend more time watching your back than actually enjoying the work. Instead, look for teams where challenges are treated as opportunities to grow together, not as chances to one-up each other. A supportive team encourages risk-taking, learning from failures, and celebrating collective wins — a recipe for innovation and personal growth.
Probably one of the best things you can do for your career is work with people who are smarter, more experienced, or just plain better at what they do. Smart people who are generous with their knowledge can boost your growth, offering you insights into best practices, honest feedback, and a chance to learn skills you won't find in a tutorial. A great mentor doesn't just teach; they help you see the bigger picture and inspire you to aim higher.
In these environments, you'll not only grow faster but also feel more supported and connected to your team. My tip: if team members see each other as collaborators, not competitors, you're in the right place.
Diversity in a team is also important. Diverse teams — those with a mix of backgrounds, experiences, and perspectives — are where the magic happens. They spark creativity, foster better problem-solving, and make the workplace far more interesting. A team that values inclusion isn't just good for innovation; it's good for you, offering the chance to grow by learning from others' unique insights.
Conclusion
Success in software engineering isn't just about tackling the toughest challenges; sometimes, it's about strategically choosing paths that allow you to shine and grow. With the right company, project, and team, your career in technology won't just be about work; it'll be a journey of meaningful impact and personal fulfillment.
In my opinion, when you're at the junior to mid-level level, it's crucial to focus on gaining experience and working with people who are smarter than you on complex projects. Forget about the money and be willing to work even for minimal compensation to accumulate valuable experience. As you progress to a senior role, you can start thinking about compensation, but it's advisable not to compromise your interest in the work. When you reach the staff level, you're expected to have a deep understanding of your field. A career is a journey where you initially work to build your skills and experience, and eventually, your reputation and expertise will work for you.
But, at the end of the day, work is about what makes you tick. There's no "right" choice, just the choice that fits where you are right now.
P.S. I have my personal decision form for choosing the project, maybe you find it useful: decision.luminousmen.com.
Additional materials
- The Staff Engineer's Path by Tanya Reilly
- Soft Skills: The software developer's life manual by John Sonmez
- Drive: The Surprising Truth About What Motivates Us by Daniel H. Pink