- Denisse's Newsletter
- Posts
- 💯 The Algorithm of Success: Technical Talent in Venture Capital
💯 The Algorithm of Success: Technical Talent in Venture Capital
Day 3 : 1137. N-th Tribonacci Number

TLDR
Welcome!
Hello from the VC world with Julia Ianni!
Recommendations I live by!
Resources to check out - by Julia
Self hacks of the week - by Julia
JOBS & SCHOLARSHIPS
Hi and welcome back, brave human!
Today's post is very special!!!!! 🤩 🤩 🤩
Today, we're exploring Investment Banking and Venture Capital, and how software engineers fit into these financial worlds. While investment bankers provide financial advice to established companies, venture capitalists search for promising startups to invest in. Both understand how the financial success of the company is impacted by their tech stack.
And we've got an amazing guest who knows both worlds inside out!
Let me introduce you to Julia Ianni, whom I had the pleasure of talking with and asking some questions.
With a background as an Investment Banker, Venture Capitalist and Startup Executive, Julia brings her wealth of knowledge to an audience that spans from students to CEOs. She's known for sharing practical, no-nonsense advice on navigating the VC/ startup ecosystem and how to develop your mindset to reach your full potential!
Now, let’s dive into her wisdom!
VC is like a small, connected world
When Julia entered the Venture Capital world one thing that surprised her was just how much of a small ecosystem it really is. She explained to me that most people know each other and if you ever need an introduction, chances are, you’ll find someone who can connect you.
But here’s where it gets interesting. Because the ecosystem is so small, word spreads fast. That’s why Julia emphasizes the importance of investing in your relationships. Connections are everything!!, and building trust within your network is crucial for success.
So, for anyone curious about VC, and I would say especially for software engineers looking to break into this space, take note: relationships matter more than you think!
How to cut through the AI Hype?
Now it looks like AI is everywhere, especially in startups. But how do you tell the ones with real potential from those just riding the hype?
Julia tells us “one of the telling signs is if a product is just a GPT wrapper”. That means, the startup's tool or service relies entirely on ChatGPT as its core. The problem? These products have no MOATs (competitive advantage), lack differentiation and are easier to copy. Plus! The dependency on OpenAI / ChatGPT is a major risk.
Those that are creating proprietary technology, not just building wrapper tools, are the real game-changers.
Breaking into VC as a SWE
If you're a SWE thinking about transitioning into VC:
There's high demand for technical talent, especially at Seed and Series A stage funds, where understanding technology and developer pain points is key. So…
Work as a software engineer first: Julia suggests gaining a few years of experience to bring valuable technical insights to a VC fund. During this time you should…
Network with early-stage companies: Connect with other engineers at startups, as many go on to start their own companies or join others, creating deal flow opportunities before joining a fund.
Bringing technical expertise to the table makes you very valuable in VC!!!!!!
LeetCode problem
Day 3 : 1137. N-th Tribonacci Number
The Tribonacci sequence Tn is defined as follows:
T0 = 0, T1 = 1, T2 = 1, and Tn+3 = Tn + Tn+1 + Tn+2 for n >= 0.
Given n, return the value of Tn.
Before we get started let's take a deep breath…
It took me some good time to wrap my head around this problem, so let’s take it step by step!
⚠️ ⚠️ ⚠️ The most important thing is that this is not a Fibonacci sequence it is a Tribonacci sequence. ⚠️ ⚠️ ⚠️
This is a generalization of the Fibonacci sequence, where each element is the sum of the previous three elements.
This means that for our base case we will need the first three elements!
Alright, let’s break it down together before we dive into the code.
What are we asked? The nth element of the Tribonacci sequence
What do we need to calculate each element? Sum of previous 3 elements
What are our base cases? T0 = 0, T1 = 1, T2 = 1
Let's look at an example with n = 6
.
The sequence builds up like this::
We start with:
[0, 1, 1]
T3 = 0 + 1 + 1 = 2
T4 = 1 + 1 + 2 = 4
T5 = 1 + 2 + 4 = 7
T6 = 2 + 4 + 7 = 13
So for n = 6
, the answer would be 13!
If we recursively calculate each element by calculating the previous three elements it, we would get the job done 🤙 but suuuuuuper slowly and hit a time limit! But we are getting there!!
We will use dynamic programming to solve this problem. If you need a refresher from the last problem.
Top-Down Approach
There's a very basic template for most top-down recursive approaches!
Base case: Define when to stop recursion (at the smallest subproblems)!
Memoization: If computation was previously done and stored, just retrieve it!
Formula: If computation wasn't done before, compute and save result!
For example, with n = 6
: Break down the problems:
dp[6] = dp[5] + dp[4] + dp[3]
dp[5] = dp[4] + dp[3] + dp[2]
dp[4] = dp[3] + dp[2] + dp[1]
dp[3] = dp[2] + dp[1] + dp[0]
dp[2] = 1 (base case)
dp[1] = 1 (base case)
dp[0] = 0 (base case)
Build the solution back up:
dp[3] = 1 + 1 + 0 = 2
dp[4] = 2 + 1 + 1 = 4
dp[5] = 4 + 2 + 1 = 7
dp[6] = 7 + 4 + 2 = 13 (answer)

Top-Down Approach
public:
unordered_map<int, int> dp;
int tribonacci(int n) {
// Base cases
if (n == 0) return 0;
if (n == 1 || n == 2) return 1;
// Check if already calculated
if (dp.find(n) != dp.end())
return dp[n];
// Calculate and store in memo
dp[n] = tribonacci(n-1) + tribonacci(n-2) + tribonacci(n-3);
return dp[n];
}
};
Bottom-Up Approach
The only difference is we will build iteratively from the base cases to bigger problems until we have solved our main problem! So we start by solving our base cases, and up from there!
dp[0] = 0 (base case)
dp[1] = 1 (base case)
dp[2] = 1 (base case)
dp[3] = 2
dp[4] = dp[1]+dp[2]+dp[3] = 4
dp[5] = dp[2]+dp[3]+dp[4] = 7
dp[6] = dp[3] + dp[4]+ dp[5] = 2+4+7 = 13 (answer)

Bottom-Up Approach
class Solution {
public:
int tribonacci(int n) {
// Handle base cases
if (n == 0) {
return 0;
}
if (n == 1 || n == 2) {
return 1;
}
// Initialize dp vector with size n+1
vector<int> dp(n + 1, 0);
// Set base cases
dp[0] = 0;
dp[1] = dp[2] = 1;
// Calculate tribonacci numbers
for (int i = 3; i <= n; i++) {
dp[i] = dp[i-1] + dp[i-2] + dp[i-3];
}
return dp[n];
}
};
Recommendations
Level up your inbox by subscribing to what I am subscribed to!
Resources of the week brought to you by Julia 💗
“Venture Deals” by Brad Feld and Jason Mendelson. A great overview of how venture capital funds work and how deals might be structured.
“#BreakIntoVC” by Bradley Miles. A great guide to breaking into the VC industry.
Self-hacks of the week brought to you by Julia 💗
I truly believe you can gaslight yourself to success.
Follow your heart - Simple, yet so powerful. Like a guide toward what truly matters.
Jobs and Scholarships
Streamline your development process with Pinata’s easy File API
Easy file uploads and retrieval in minutes
No complex setup or infrastructure needed
Focus on building, not configurations
Cheers to you hacking your week!
Denisse
Reply