To solve this problem, we can break it down into a linear programming formulation and then translate that into Gurobi code in Python. The goal is to minimize the total labor cost while satisfying all given constraints.

Let's denote:
- \(x\) as the number of computer engineers.
- \(y\) as the number of software engineers.

The objective function (to be minimized) is the total labor cost, which can be represented as \(1000x + 800y\), since computer engineers earn $1000 a week and software engineers earn $800 a week.

We have several constraints based on the problem description:
1. The startup requires at least a total of 50 engineers: \(x + y \geq 50\).
2. At least 10 must be computer engineers: \(x \geq 10\).
3. The number of software engineers should be at least twice the number of computer engineers: \(y \geq 2x\).

All variables are non-negative since you cannot hire a negative number of engineers.

Here is how we can translate this into Gurobi code in Python:

```python
from gurobipy import *

# Create a new model
m = Model("Engineer_Hiring")

# Define the variables
x = m.addVar(vtype=GRB.INTEGER, name="computer_engineers")
y = m.addVar(vtype=GRB.INTEGER, name="software_engineers")

# Set the objective function (minimize labor cost)
m.setObjective(1000*x + 800*y, GRB.MINIMIZE)

# Add constraints
m.addConstr(x + y >= 50, "total_engineers")
m.addConstr(x >= 10, "computer_engineer_min")
m.addConstr(y >= 2*x, "software_to_computer_ratio")

# Optimize the model
m.optimize()

# Print out the results if the model is feasible
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Computer Engineers: {x.x}")
    print(f"Software Engineers: {y.x}")
    print(f"Total Labor Cost: ${1000*x.x + 800*y.x:.2f}")
else:
    print("Model is infeasible")
```