5 ms·
job offer advice needed
job offer question
Hello ycers,
I have a question for all of you.I have almost run out of money saved from a couple years of freelancing and as a jr. dev, trying to bootstrap a startup, so I needed some cash. Over the weekend I applied for jobs and interviewed at two companies. Both of them are heavy .NET C#/C++ houses, and they both offerred me 40,000/yr + benefits. But thats where the similarities stop.
The first company i interviewed with had a Tom Brady look-alike for a "technical director", everyone was wearing some variation of Zegna (might has well have been, but could have been Target), creative colored walls, and was essentially a profitable "product" company ( 10-12 employees ), with $1.2mm earnings on $3mm in sales. They do a bit of extremely expensive consulting ($200+/hr), but their bread and butter is in their enterprise product. Their adherence to OO and relational db principles was rigourous to a fault, as demonstrated by the robust 4'x 2' diagram of their db on the wall of the TD's office. They just seem like a perfect fit. The td ended the interview by saying that it would be a very steep learning curve for me to understand their system, even with my (decent) understanding of software dev.
The second company's contrast to the first was so profound, that during the interview, I was tempted to laugh at the many unprofessional attributes of the place. Having previously worked as a (gasp) VB dev at a small firm (~20 employees, mostly fix-it IT guys), I thought I was used to a lax environment. But this wasn't lax, this was sloppy. I won't get into the details, but suffice it to say that twice I had to jump out of the chair provided to guests to evade the live-in cat. Being a web development company with no proprietary product, they were not profitable, and still funded by who-knows and the few $40 - $80k websites that they developed . They were very folksy, and I actually laughed quite a bit during the interview. Taking 40k from them seems like a cakewalk.
I'll end by saying that I think I would learn a lot about complex software and whats right(wrong) with it/how to build it, or I could just take the easy job,hack in my spare time, and make enough money to get on my feet until i decide I have something good enough to show VCs/yc. But then, yeah...I was wondering if "run upstairs" applied in this situation.
So
As a 20yr old, cs dropout, self taught programmer and aspiring startupper, which job would you take?
I appreciate all advice
- brk 19y agoOption #1 all the way. Sounds like an opportunity to learn how things are done right, or at least close to right.
- german 19y agoI'd go with that option too, except you love cats :P
- ajkates 19y agoHaha, do what feels right. Still, there's always option 3: Find a team of talented young entrepreneurs where at least one has the cash to float a startup for a while. That way, you can avoid the "office job" entirely.
- cellis 19y agoYeah. I'm keeping my eyes open, but I haven't been able to meet any really talented ones yet. Hopefully I will now (moving to a bigger city)
- corentin 19y agoThere are two kinds of sloppy: sloppy because it's micro-managed by pointy-haired bosses (in this case, yes, run away!) and sloppy because they just don't know better. In the latter case, you can experiment as you like and bring improvement; it's an interesting challenge and it's rewarding. And if it's a relaxed and funny environment, it's even better! Or you could go with the guys that know everything and are so proud of their system (system that is sooo complex and hard to understand). In both cases you'll learn something valuable, anyway.
- mrtron 19y agoAs a young programmer, the most important thing you need is someone to learn from. Someone to show you what obvious stupid mistakes you are making, and how you can reach the next level in writing good code. The first place looks like it will be a bit of a hassle because it is so strict, but it will be meaningful to get that under your belt. The second place sounds sloppy, like you mentioned.
- nostrademons 19y agoA startup or small company is actually the wrong place to go if you want someone to learn from, because any master programmers you meet will be so busy with work that they don't really have time for mentoring. I was fortunate enough to have a series of pretty accomplished mentors, and I picked up some very valuable tidbits from them. However, tidbits (and the privilege of looking at their code) was all I got, because we had to ship product. Ironically, the only time a skilled programmer in a startup will have time for mentoring is if they're being marginalized by clueless management and can't get any of their own work done. Unfortunately, top-notch talent under bottom-rung management doesn't tend to stay very long...
- brianr 19y agoBased on my experience this summer as the third programmer at a small startup, I have to disagree. If you already have something of a background (i.e., you know enough to at least hack together something that works) and are willing to work hard, a startup can be an incredible place to learn. It provided 1) good example code I could conform to, 2) the knowledge that other people would be reading and working with my code, and 3) an environment where everything I did mattered to the product. For me, this was an unbeatable learning-by-doing environment.
- run4yourlives 19y agoNobody has time for mentoring. Even larger companies don't have people sitting around helping the young buck become better programmers. What I would argue the startup gives you though, is a chance to grow in an environment where someone will be there to bail you out in the worst of cases. At a startup, it's highly possible that you'll need to learn as you code, but you'll at least get a chance to work on something new. At a big shop, I can guarantee you'll be working on feature x forever because nobody will trust you to touch the other pars of the system, and BA's will tell you what new features are needed.
- nostrademons 19y ago#1 sounds almost exactly like my last employer, while #2 could be one of several places I interviewed or had friends work at. I won't give you advice - there's no conceivable way I could know enough about your situation - but I'll give you some additional questions to ask: For #1: 1.) How many customers do they have? An enterprise software company hasn't achieved "product-market fit" until customers come to them. Since enterprise sales often run $100K+, it's possible to be profitable without actually having a viable product: you simply agree to customize the product until it exactly fits the potential customer's needs. A company like this is effectively a consulting company, not a product company, though. 2.) How easy is it for a customer to stop using the product, and if possible, who are the customers? When I interviewed, I heard "We're profitable" and "Our software is a critical part of our customer's infrastructure." But I completely missed that "We sell to hedge funds" means "Our customers can blow up and disappear totally", because I had no idea how the financial industry worked. Then I read an article in BusinessWeek that named one of our customers as potentially impacted by the subprime collapse. (FWIW, none of their customers has blown up yet. But it was enough to make me nervous...) 3.) Does "a steep learning curve to understand their system" mean that they have an intricate platform that nobody understands? This will slow you down, particularly if they haven't attained product-market fit, and probably cause you a lot of frustration. Also, home-grown systems are not transferable knowledge; it's worthless to a future employer. For #2: 1.) How good are their technical skills? Some founders are lax because they're great hackers and don't have time to spend on mundane formal procedures. Some founders are lax because they're just sloppy. In my experience, the latter are far more common. However, if you can work with the former, it'll probably be one of the most rewarding experiences of your life. 2.) Are they a product company or a consulting company, and are they planning to become a product company in the future? I don't know anyone who has been happy working for someone else's consulting company: basically, you can expect them to take 50-90% of your billable wages, give you very little support, and make you put up with their bullshit. However, you do get to see a lot of other people's problems, and it's a decent jumping-off point for later jobs. For both: 1.) How focused are each of them? In my experience, the best predictor of success is focus. When I interviewed at a #1-like company, I heard "We have 4 products, so we don't need to score a home run or go bust. We can make a succession of base hits and grow the company incrementally." It sounded logical to me. After contributing 2 years and 2 products (out of their now 7, only 2 of which have paying customers), I'm not so convinced. Problem is, all those dead projects imposed requirements upon the core platform, which made it much more complicated than if it only supported one product. Complexity slows you down, and a startup really doesn't have resources to promote 7 products anyway. Really, if I have any advice, it'd be to learn as much as you can about both companies and where the founders are planning to go with them, and then sleep on it. Go with your gut. You have more information than anyone here. But understand that you'll probably be wrong. In my case, I went for #1 instead of an unprofitable VC-funded #2. In the intervening 2 years, the profitable enterprise startup is basically where it was when I joined (well, except that its existing customers like it better, it has 3 new products - only one of which has paying customers, and its technology platform is even more complicated). The unprofitable startup (where I played Foozball against the CEO during my interview) has since attained profitability on its one product, and has added a second product that's been doing very well. BTW, I think people tend to overestimate the amount of knowledge they'll gain from hacking on enterprise software. Much of it is incredibly poorly written, and much of the rest isn't much more complex than what you'll learn from reading through the LiveJournal source code. Enterprise software is complex because every customer has these arcane little quirks in their requirements, and then the product accumulates all these little special cases for all its cuomers. This isn't the type of complexity that expands your mind, though: it's death by thousand papercuts. If you want mind-expanding complexity, read SICP, learn Haskell, buy Building Scalable Web Sites by Cal Henderson and read through the LiveJournal source code, learn JQuery and read through the source code, and pick a fast open-source webserver like Lighttpd or Nginx and read through its source code.
- bluishgreen 19y agoIf possible go for the company with the larger number of people. Small companies have lots of work (because of less people) and even though its good for learning, as a startupper, you can use some spare time.
- brianr 19y agoAbout #1 you said: "They just seem like a perfect fit." I'd go with your gut.
- swhnorton 19y agoOption one sounds like it will put you near smarter people. If you want time to hack on the side, but are out of cash, move to India and live on 150 dollars a month and hack full time. Go with option 1 for sure.
- ajju 19y agoWhere do you live?
- cellis 19y agoMichigan. I was thinking of moving to SF, but right now I just don't have enough money to setup out there. Also, MI is pretty cheap. Why you ask?
- asdf-oo 19y agoDon't go for the suits. Enterprise software sucks the life out of people and give very little in return - as someone already mentioned you will deal with the wrong kind of complexity - the lots-of-stupid-little-details-which-fuck-you-up kind. A large db diagram doesn't mean anything, and if there is a steep learning curve you should be suspicious that the software is not so well engineered as they want you to think. "run upstairs"? Ok.... then... Take the "easier" job. Do your work in 2 hours every day. Use the remaining time for something useful for you. Learn.
- run4yourlives 19y agoYou have essentially 2 options: 1. Coast in the day job and work on your startup. 2. Work during the day and put the startup on hold (or at least, focus less on it) If you choose to do option 1, you should avoid the first company. You won't be able to coast there and the expectations would be that you are a fully functioning part of their team. If option 2 is the way you choose to go, you'll learn more and probably be more satisfied working for company A. My opinion, given your story is to go for Option 2. You're only 20, have no formal development experience, and have an opportunity to learn a great deal and possibly improve your financial standings. I would take the unpopular opinion that your startup can wait while you invest a little in yourself. Most of your peers are still in school. If you do this, it's likely you'll learn a lot that you'll need to learn at any rate. At least this way you'll discover these things on someone else's dime.
- cellis 19y agoWell, for better or worse, I'm going with the enterprise job. Thanks a lot for the advice, I took it all into consideration.