Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Programmers, what are your min requirements? What is your utopia?
20 points by NullReference on Oct 10, 2014 | hide | past | favorite | 22 comments
This account is a throwaway as I wanted to ask this semi-anonymously.

I've been thinking over the past few years about what my minimum requirements are in a working environment and what my ideal would look like, but I honestly have no idea -- not really.

I've got 10+ years of coding experience at a major corporation -- non-tech -- and I'm getting rather bored. I'd like to do something new: it doesn't have to be new subject matter, but I'd like to do something different. But before I embark on my journey I need to define my parameters: what is the minimum I need to leave my current (cushy) position? What is my ideal working environment?

I honestly have no idea how to answer these questions - which is scary. So I open the question up to you, HN: what is your IDEAL utopia for a workplace, as a programmer? It could relate to the physical workplace, source control, programming language, IDE, agile, Goodness and not Evilness, whatever. It's entirely subjective. What is your MINIMUM baseline for a working environment for you to even consider working somewhere? Again: this is entirely open and unstructured. It might be "free snacks," it might be "lets me bring my dog to work" or it might be "doesn't engage in human sacrifice every week."




Not a utopia (no idea what that would look like). This is my bare minimum I set myself as I'm now on the market.

No open plan spaces or sharing. I want an office to myself or at least my own cubicle with full-height walls.

No mandatory overtime or hints at "we all work really hard." I expect to come in at 9 and leave at 5.

No waterfall process (yeah, it still exists)

SCM, reasonably recent toolset, clueful managers. The actual language or technology isn't that important as long as it's not trending towards obsolescence.

Market pay and benefits. I currently have 4+ weeks vacation and I just turned down a job where they said "everybody starts out at 2 weeks." F' that!


Waterfall.. Heh. That's what I do, only with agile buzzwords thrown in :( everything else about where I'm at is perfect. Amazing talented people, damned cool bleeding edge tech (for where I am anyway), and I'm left to play with new innovative stuff. So, my ideal place would be exactly where I am, only without waterfall.


Give me a product I believe in and a team that I respect and enjoy working with. After that everything else doesn't matter much to me. Because, with the right team and project it doesn't even feel like a job anymore.

When work starts feeling like work, that's when I start looking for a change. That's why I've always been drawn to start ups. It's usually a small group of talented and smart people looking to make a dent in the world.


I freelance but often a startup client will ask if they can hire me. To me it's not about lunches and big monitors, nor git and agile. These are my requirements:

- I want to keep working remotely.

- The salary should be competitive with what I'm making now.

- There should be proof the company is an ongoing concern.

- The company should have a good answer to how it can help me progress in my career, preferably without moving into management. (As far as I can tell most startups have never been asked about career advancement before.)

- There should be some upside beyond the salary, because owning my own consulting business already has upside from side projects and potential to grow into a development firm.

Those are probably unrealistic, so I'm still freelancing. :-)


To me, this is the best answer. I'll work for almost any company for a long, long time as long as they allow me to work remotely and always pay me competitively. The rest are just small, interchangeable details.


I agree with that. Pay me well and let me work remote and I can handle mostly all the other details that make me happy.


I am not going to present my answer as my ideal utopia but rather as a suggestion. You should try one of these things

1. Go Indie

2. Join a startup

These both options have cultural parameters that are weighing in exactly opposite direction to that of a major-corp. Doing this will help you learn about your own definition of an ideal utopia for a workplace. Having experienced both the cultures you'll be able to decide your ideal utopia - what team size you like to work with, at what pace, at what degree of freedom, in a flat hierarchy or well structured one, remotely or inside an office surrounded by colleagues and so on. I hope this helps in finding your ideal workplace. Good Luck :)


I need a place where if I really have something on my mind I'm free to take a day and explore it. If I think I can improve the quality and codebase I should be free to do so provided I dont break anything or I make all the changes required to implement it fully.

Example: I wanted to start to implement std::thread and use of auto. It required us to start using c++11. I should be free to do this, fix anything, make sure devs are set to compile correctly and start implementing. I can do it locally, demo it and then get the green light to merge.


I wouldn't spend time thinking about your minimum requirements. Seems like you've already something pretty close to that.

I recommend instead to think about what your ideal situation is, and then invest your energy in creating/achieving that. Make it something compelling enough that you'll put in the massive amount of effort to make it happen.

Hearing other peoples ideal work situations might be a source of ideas, but ultimately, it's up to you to decide what's important to you.

Personally, my list includes: high income, respectful clients, choice of languages and technologies, working on things that matter, getting paid to learn new technologies, smart colleagues, good process, autonomy, time freedom, location freedom, ability to bring in team members I select, low bureaucracy, low politics, and working with contacts high on the org chart.

As far as my physical work environment, I'm pretty flexible. I've worked from coworking spaces, cafes, Regus locations, hotels, 3/5/7-series BMWs, airplanes, restaurants, E/S-class Mercedes', dinner tables, beaches, boats, train stations, and occasionally even the offices of my clients. I do my best to pay attention to ergonomics and environmental quality. I carry an inflatable lumbar pillow and a yoga mat and like workspaces free of fluorescent lighting and chemical scents.


For me, I want the freedom to learn new technologies and try out ideas. A humane work environment, such that work is valued and respected - and everyone pulls their weight. The deadlines are reasonable and the management chain understands the tradeoffs inherent in software development and delivery. If I work on a big existing system, the problems still left to solve should be within my (and the team's) ability to understand but still stretching my current knowledge. Of course, that changes constantly because I am always learning new things.

For a while, I was really into Angular and badly wanted a job where I could just do that full time. I had been mainly doing backend Java stuff at work, but eventually was in charge of a completely green-field project so I wrote it using Angular/Java. However, I've quickly gotten comfortable with those technologies and now Clojure/Haskell/FRP excite me more. Not to say I would write big production apps with them right out the gate - but it would be valuable for me to learn more about them and understand the tradeoffs. I also still haven't written a lot of backend code for massively-distributed systems, so anything involving that would interest me right now (i.e. need for real-time stream processing, mapreduce, sharding, etc).

I also want to work on a team of really smart people - not arrogant programmer-types, but people that know what they're doing. I want to pair with someone and learn a lot from them. I actually like to impart the knowledge that I have while pairing, but I just don't want it to be a one-way street. I also don't want to work in isolation - so a project where I rarely interact with anyone gets boring for me (and especially if the technology doesn't excite me much) will end in me leaving for somewhere else.


If it's the right product and the right people I'll work in a sewer pipe...at night...in COBOL...

The creature-comforts only start to matter to me when I'm fundamentally unhappy with the job in some other way (not rewarding, incompatible culture, etc).

So my utopia is: A product I believe in, co-workers I love to be around. That simple.


The number #1 thing that i want: treat me like an adult. This means i will not follow any stupid workspace policies. Example:

- If i get a phone call that i consider important, i will answer it.

- If i am feeling sick, i will stay at home, don't ask me to provide a doctors note.

- If i come in late, i will stay longer, just don't write me some BS e-mail.

- Don't install a website filter or something similar.

- I will take my off-days when i desire, i don't know 6 months upfront when i need a day off.

... the list continues.

Somewhat minimum as far as the physical workspace and tools: a desk, a decent chair, a 24" screen, a custom-built PC and my operating system of choice with full control. I don't mind working in a open/shared space as long as it doesn't get too loud. A big bonus would be providing free snacks, drinks and meals - it is a cheap and easy thing to do and benefits everyone.


A few things actually. I only do my day job to pay for my lifestyle and hobbies. I would be happy to take a pay cut if it meant i could do something of significance. For me that is something that would have a positive impact in others lives as cliche as that sounds. It makes me get up in the morning, and makes my body tingle. For instance a recent ted talk on drones aiding aid/medicine drops to remote places off the world. That just excites me! Or i would love to work on games, which is my side project, that my day job pays for.

In terms of physical env, i don't care much. As long as i'm comfortable and i can do my work. Preferably i'd like to work at home, with little to no interaction with anyone. Working in the IT/Banking industry for over 14 years, has made be cynical on human interaction.


I am in the same industry and am looking for a change. But I have to define what would make me happy in a day job. My hobby is programming. My job is programming. But there's something soul-crushing about programming at a bank.


I know exactly what you mean - I was thinking the same thing when was making decision to start something on my own.

As of physical environment - stup below works perfectly for me: - 27'' double screen - proper headphones with noise cancellation and DVD's stack with my favorite music - proper ergonomic chair - big desk - non-membrane keyboard - big (0.5 liter min.) cup of something to drink (not necessary coffee since it usually makes it harder to focus)

As of tools I use: - operating system depends on work I do, however Linux Arch is my favorite - subversion as version control (old but still has something in it) - working with code - usually simple kwrite is just enough


I guess I am wondering more: what sort of work would make you say "hey, I want to go work there!"

I guess I'm trying to figure this out in reverse. I know I'd leave whatever I'm doing to work for, say, Google because Google (really: I needn't say more, right?).

But what makes Google so attractive? Some of it is the bragging rights but a lot of is that they work on cool things and give you free reign to do cool things.


I'm working on custom integrations tailored to specific project so for me each project is like a new job where I'm picking up tools and technologies that will deliver stable and maintainable outcome. New job, new people and new challenges - that keeps me sorta away from burning out. So I guess the main question is how much influence do you want to have? Do you want to craft specific algorithm that is somebody else idea? Or do you want to come up with your own ideas and bring them alive? I'm in second group.


I'd recommend getting a bit more specific. Your question is so open ended as to be unanswerable in any practical way.

First figure out which areas of "work environment" you actually care about. * location / commute time / remote? * if onsite then physical workspace ? * develpment environment (mac/windows/linux)? * technology stack? * personality of company? * social value (if any) of the company? * etc. etc.

Until you know what aspects of "working environment" you can't really define what the min requirements are. Also, everyone's idea of "utopia" is different. We all have different values.


My last gig and my current one are polar opposites but both filled needs. I code for a very large direct mailer. It is not interesting work, but the pay and benefits are great and it's super stable. My last gig was with a start up that never really got going. Lots of R&D coding, lots of trying new things - the work was very satisfying, getting paid weeks late, months in a row was not.

Ideally my next gig would be in the middle of these - stable but more engaging work.


I will only work at companies where I am peers with everyone, from the bottom to the top. Everyone makes good decisions and everyone makes bad decisions. If you're hiring someone you don't trust to make decisions or question yours then it's probably a bad sign.


- Wiliness to sit down and define requirements

- Clear strategic goals

- Continuous improvement

- Feasible deadlines

- Remote work

- Payment proportional to value added

This is the perfect project to me.

PS: An employee might be more interested in perks like iMac and free food. To me it's bull to keep people overworked and underpaid, hence why I consult.


A place where I can keep innovating, keep creating things that ship and get used. Where, if I know somebody who can help us, I can get them hired on.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: