Finding the probability of survival of an insurance company I was given as a homework exercise the following problem:

however, I came into a disagreement with one of my classmates. Given that the solution is not shown, I was wondering whether mine was correct. I performed a simulation of 1000 runs and obtained a probability of survival of approximately $0.931$, however, intuitively, this seems very high.
 A: Here is my take.  Using vectorization can make this a little easier.  Comments indicate my logic
import numpy as np
import numba

@numba.jit
def sim():

    # Draw the number of claims for the entire year in advance
    num_claims = np.random.poisson(lam = 10, size = 365)

    #Compute the cost of the claims
    cost_of_claims = np.zeros_like(num_claims)
    for i,day in enumerate(num_claims):
        cost_of_claims[i] = np.random.exponential(scale = 1000, size = day).sum()

    # Capital is where we start plus how much we gain/lose on the ith day
    capital = 25000.0 + np.cumsum(11000.0-cost_of_claims)

    # Any negative?
    return np.min(capital)<0

sims = [sim() for _ in range(1000)]

1000 iterations takes less than a second and winds up with 7.6% of the runs having an instance where the insurance company has less than 0 capital.
Here is a plot of the simulations

And here is one with a confidence interval

A: Your answer looks plausible to me. I got a similar answer to you when I did it in R; about a 91% of avoiding ruin (getting to $\leq 0$ capital). 

The plot above shows a few such simulations.
nsim = 10000
initcap = 25
dclaimrate = 10
meancl = 1
prem = 11
dpyr = 365

mincap = replicate(nsim,{
  nclaim = rpois(1,dclaimrate*dpyr)
  t.claim = sort(runif(nclaim,0,dpyr))
  claimsize = rexp(nclaim,1/meancl)
  cap = initcap + t.claim*prem - cumsum(claimsize)
  min(cap)
})
mean(mincap>0)

100K simulations took 83 seconds on my laptop, 1000 simulations takes just under a second. This operates in units of $1000. It make use of the connection between the Poisson process and the uniform.
