Software is cool
October 28, 2007 12:39 PM   Subscribe

Describe your software development job.

I'm at a fork in the road with my career, deciding if I want to continue doing software development (read: programming). I left university a few years ago all full of excitement about the cool software projects I'd get to work on. Alas, I work on a very boring project for which my CS degree is overkill... but the job pays well enough.

I'm just wondering what the software development landscape looks like. What's your project like? What languages/tools do you use? What's your team like?

I basically want to be convinced to continue doing software development--not only because it's the path of least resistance, but I think software is cool.

posted by mpls2 to Work & Money (28 answers total) 23 users marked this as a favorite
I don't have a typical software development job - the software I work on is open source, I use open source tools exclusively, my employer lets me work when and where I want (as long as I meet deadlines, of course) and I'm allowed to use any language that I deem the best for the task at hand - which is almost always C or C++. Right now I'm working 60 hours a week with a group of brilliant people on a project that is top-secret even within our company, but I can safely tell people that it is fucking awesome and it will become very well known when we choose to release it.

So find a job like mine - exciting and flexible, if time consuming, and you won't regret staying with software development.
posted by cmonkey at 12:54 PM on October 28, 2007

I'm an Actionscript developer. The coolest thing about my job -- besides the normal programmer, problem-solving stuff, which (to me) is the best aspect of programming -- is that I can write a few lines of code, deploy the changes online, and an hour later, thousands of people have already been affected.
posted by grumblebee at 1:14 PM on October 28, 2007

I develop embedded systems with C on VxWorks. The cool thing about embedded systems is that I occasionally get to make things whirr and move, and interface to everything from solenoids to thermal cameras. I also positively know that our equipment has saved lives, and that's fairly cool.

I also like that software development is so much more that programming. Configuration management, design, QA, testing and requirements gathering are also parts of my job.

Our team is comprised a nice spread of ages and backgrounds. In my experience this makes for a better work environment than more homogenous groups. No women, though, which is a shame (no, not like that).
posted by Harald74 at 1:26 PM on October 28, 2007

I'm an image processing software developer. I work in C, C++, and C#. I have the position "senior architect" and I have 3 people reporting to me today. I schedule the product release, help my peers learn how to estimate and design, and code as best as I can in the remaining time. After nearly 30 years of writing code, I still love it and the landscape has gotten so much better in terms of development tools and debugging tools. The difference with this job is that I'm doing a branch of programming that I love and that makes me even more passionate.
posted by plinth at 1:30 PM on October 28, 2007

I program a large, old, specialzed CAD application. Some days working on this behemoth is disheartening, but on the other hand I have some great co-workers, the company culture is more positive than negative, and the development department runs on Linux.

Then I come home and work on Free software that is genuinely interesting to me. Whether or not you work with software as your day job, you should continue to work on programming projects in your free time. I think this is what keeps the programming-loving spark alive in me.

cmonkey: I'm having trouble figuring out how your project can be open source, but top-secret within your own company. You mean that it will be open-source at the time of its public release?
posted by jepler at 1:31 PM on October 28, 2007

Day-job Application: C++, tcl, tk, python with heritage in Basic and C. Development on Linux, deployment on Win32 and Linux.

Hobby application: C, C++, tcl, tk, python. Development and deployment on Linux.

Python's my choice for simple throwaway programs and graphical applications: A choice of GUI toolkits, a great standard library, and freedom from low-level memory management that is still a leading cause of bugs in C++ software. Easy to extend in C or C++ for performance or to interface to new libraries. Of course, other modern languages also have these same traits..
posted by jepler at 1:35 PM on October 28, 2007

jepler: Yes, open source when it's released. Releasing early and often isn't always a good idea, especially when sales & marketing will get involved.
posted by cmonkey at 1:51 PM on October 28, 2007

I work as a programmer for a small (tech-oriented) business - in fact, I'm the only programmer there (although there are a few technicians and systems engineers with some programming experience, they typically don't really do programmer-ish things since I started there). The company atmosphere is very informal and laid-back - not at all a typical corporate culture. I consider myself very lucky for that.

Since the business is so small, and since we have a number of different projects at once, I always have several things to work on. Sometimes my projects are similar, sometimes radically different, which I like, since I get to work with a range of languages, tools, and environments. There is, as grumblebee mentioned, the enjoyment of being confronted with a problem and walking through it in your head until you have a perfect solution. There is also the occasional enjoyment of seeing my solution improve someone else's life - in my case, when one of the in-house tools I develop helps one of the systems engineers devote more of their time to creative ideas, and less to the same boring, repetitive crap that could be automated.

I was in your situation at the beginning of this year. I was hired on by a small contracting company to work as a full-time contractor for a large multinational company. I was basically told some little lies and some big ones - mostly about the prospect of actually getting to develop software. My job title was Software Engineer, but I was basically a data entry clerk who did some light DB scripting and UNIX admin on the side. I was flat-out told on my first day that if any real development opportunities came up, I probably wouldn't get them, since I was on the bottom of the totem pole. This is not the thing to tell a computer scientist with a passion for development. A few months later I got my current job and I couldn't be happier. If you can find a job that makes you happier than your current one, then I say go for it.
posted by Cassilda at 2:07 PM on October 28, 2007

If you're at all interested in videogames, consider a job in that field. Engineers are difficult to find. Not all videogame jobs are crazy-hours drudgery -- specializing in tool development is rapidly becoming one of the norms.
posted by Cool Papa Bell at 2:10 PM on October 28, 2007

Using primarily C++. Used MFC heavily for about 9 years at my old job, currently using Qt on a Linux platform.

After 10+ years I'm tired of working in a gray box staring at a computer for 8 hours a day. If you can get a window cube, it's not so bad.

Yes, it pays well, and I do like writing software, but I've come to realize that there's things I'd rather be doing. I don't want to spend the rest of my career in a gray box.

My advice, keep your options open. Stay up to date with the current technologies if possible. It's a volatile industry, so network with people so that if you find yourself laid-off, you have connections to explore.

Avoid large companies that surround everything you do with bureaucracy and multiple levels of reporting structure. Instead, try to find a pleasant, small company in an industry that interests you.
posted by hungrysquirrels at 2:13 PM on October 28, 2007

I hack Perl for a small, on-line gambling company. It's probably the most fun job I've had in my 24 years in IT. I get to use my skills and experience, do some maths and learn lots of new stuff too like Linux and advanced networking. I've never had a boring IT job but that's partly because I just love any kind of programming.
posted by denishowe at 2:15 PM on October 28, 2007

I'm a .net developer in a small development team. Therefore I could talk to my supervisor and make my own design decisions. This is something you will miss in a large corporation with a huge hierarchy.
posted by WizKid at 2:18 PM on October 28, 2007

I got my first real development jobs as a VB developer. Completely horrible, but it paid the bills. Now I work for a small consulting company doing a lot of everything, under Linux. My first projects involved developing applications with C, Java and Perl. Now I've shifted gears, and am using PHP to develop some very specialized websites. Although I have my daily gripes, I'm happier here than I've ever been before (but that's really not saying much, but still...)

I have freedom to (generally) do what I think is best. But my workplace isn't too small that there aren't enough people around to bounce ideas around with, and get some guidance from those who know more than me. It's also a really casual office - we can work for home a couple days a week, have a lot of flexibility in the hours we work, and heck, even bring the dog to the office if needed. But - the job still needs to get done, and sometimes that involves working 60+ hour weeks. And we still have clients (and even sometimes managers and project managers) who don't know what they want, keep changing their minds, make unreasonable demands on time lines and functionality, and just generally cause us developers to pull our hair out.

Overall tho - I'm relatively happy. I've worked for very small places, very large places, and this (a 20 person outfit) is the best of both worlds.
posted by cgg at 4:11 PM on October 28, 2007

I'm currently a Java developer for an energy retailer, but I've also wielded my coding skills in the financial and online advertising sectors.

I get to use my skills to make far-ranging changes to customer accounts, generally in good ways (fixing bad data, introducing recurring credit card payments, etc), but that's in the eye of the beholder (making it easier for the company to disconnect people who don't pay might not seem good to those affected).

I like being able to do stuff that people can see works. It helps to have the ability to be results-driven but not affirmation-driven (i.e. seeking the approval of others). I've found in most cases that customer happiness is inversely proportional to the amount you hear about a project post-implementation.
posted by lowlife at 4:39 PM on October 28, 2007

I'm a professional services engineer -- a semi-presentable developer who works directly with customers. My projects have ranged from 6 hours to 2 years in duration. There have been solo projects, small teams, and big teams. I do whatever tasks the customers want; these have ranged from coding to presenting a new architecture to C-level execs. I've written code in over 20 languages for customers (but the bulk in Perl, Java, and C++). I officially work at home but travel to customer sites around North America quite often.

The travel and pressure can get annoying at times, but there's always a new technology to learn and a new customer to work with, and I really like that challenge.
posted by backupjesus at 5:09 PM on October 28, 2007

I work for a large financial exchange writing the system that matches orders - basically "the market". Java based, high performance and fault tolerance requirements, and extremely high visibility. I quite enjoy it.
posted by true at 6:03 PM on October 28, 2007

I work for a very popular open source company. You've heard of it.

I use mostly C and C++ for most everything. My environment is anything I want, which is Ubuntu Linux on the right and OS X on the left.

We're spread out all over the place, over many many timezones. I work at home, and use (in order) IRC, VoIP, and then email to communicate with the handful of people I interact with often. Everyone I work with is amazingly smart and unusually nice. We do have spats internally, but they usually turn out alright.

This kind of work is pretty cool, but not as cool as is in the heads of people who see my business card.

Software is a decent field. I think it's worth a try. Beware that everyone needs some sort of programmer, so there's a huge range of jobs out there, and a few dozen datapoints from AskMefi won't necessarily apply to your own experience. YMMV. Everyone's M does V.
posted by cmiller at 6:09 PM on October 28, 2007

I started programming 20+ years ago as a temporary career. Sometimes I feel like Al Pacino in GodFather III: just when I think I'm out, they pull me back in.

I find programming interesting but no way is it my passion. That lies elsewhere. Sometimes my programming work helps me ($$$) with said passion, sometimes it gets in the way (time).

What gets me through the days and weeks are the people I work with. I've had plenty of jobs where the coworkers were idjits and those times have sent me to the emergency room on occassion. Now I focus far more on the environment than the projects or languages or technologies, since it all starts to look the same at this stage.
posted by trinity8-director at 6:33 PM on October 28, 2007

I also work in finance, writing the framework of a large risk management system. I work in Java. My direct team is very small but there are more than 50 other developers working on the code base our framework supports.
I find working in finance frankly far more enjoyable than my experiences in traditional tech companies. I still get to write cutting-edge code but I work very closely with my user base and am forced to know quite a bit about the business that I am supporting to better design my systems and communicate with those users. My coworkers manage to be both very technically savvy and good communicators (for the tech world, at least), and there is much more diversity among them (in terms of race, gender and background) than I have experienced elsewhere.
posted by ch1x0r at 7:12 PM on October 28, 2007

I've been programming embedded systems for 25 years now. I've only used high level languages for the last ten of those years (Modula 2 then C). Things are much more regimented now than they were back in the 80's. I've also found that it's still a good idea to know assembly language, even when programming in C - it helps debugging, especially with regard to compiler bugs !
I've also felt the kick Harald74 mentions about seeing something physical change in response to my programming.
posted by rfs at 8:29 PM on October 28, 2007

I work at a research lab right now. I don't work in the CS division, but rather as a CS person in support of another division. Most of my work is in C++, although I use Python to automate simple tasks and "glue" things together sometimes. I'm forced to work on Windows because of certain political things where I work, which causes me no end of grief when it comes to using the tools and open source things that could help me do my job.

The one thing that keeps me sane sitting in my litte gray box, is the people I work with. We all sit in a big gray box together, 5 of us, and we get along really well. They aren't programmers, and I feel important because they look to me when they have a programming question. The work I do is very applied, and that is very fulfilling to me. Right now I am doing work for a branch of the military, and it's cool, even though it's not what I want to do with my career.

Over all, my happiness really isn't as high as I feel it could be with my career, and I am going to go to grad school next fall as a result. I'm not sure where it's going to lead me yet, but I think that with more research credentials I can have a better shot of at least avoiding the corporate grind, and can move more into being a climate/ecology researcher who uses CS to facilitate new research. I personally need to feel like I'm making a positive contribution to the world, and I'm not really getting that right now. I know I certainly wouldn't developing in the corporate world, unless it was for certain specific applications.

It's a tough biz, software, because every dang job posting has 17 technologies they want you to have, and it's unrealistic. My advice is to network as much as you can, as early as you can, to get past the beast called Human Resources and their ruthless resume filing system (the trashcan).
posted by zhivota at 9:02 PM on October 28, 2007

I've been primarily a Flash developer for the last 6-7 years, though for the last year, I've been doing a lot of general web development using PHP, MySQL, JavaScript, etc. I've also done a lot of hobby game programming using Java.

In my case my, dad's an electrical engineer, who programs mostly in very low-level languages, and my uncle does database work in VB, and C#, so I'm probaby genetically predisposed to programming. I enjoy it, and I'm decent at it, so why not.
posted by fnerg at 1:45 AM on October 29, 2007

You like to code, which is great, but it's not the tools or even really the team that matters, it's the idea. Find an entrepreneur with a good product, and help them build it.

I'm the lead developer at a VC-funded start-up in Portland Maine, building a cellphone content-delivery platform using Linux, Asterisk, Postgres, Perl, Apache/mod_perl/Mason, and Amazon S3, EC2, and SQS. Our team is distributed and each programmer can use whatever he likes, which always ends up being OS X.

Whatever tools you learn, learn the Amazon Web Services APIs, they're changing the code + $ = product equation.
posted by nicwolff at 8:44 AM on October 29, 2007

I do web development for a defense contractor you've never heard of. Which sounds horrible, except that we're a Python shop, almost all our developers run Linux, our websites (though not public) use cutting-edge web tech, there's no business or marketing people, very few meetings, and our work is important, challenging and interesting. I've been shocked at how hip working for a defense contractor can be.
posted by gsteff at 9:47 PM on October 29, 2007

At the moment I write Java for medium-sized medical imaging company. Our software is used by radiologists for 8 hours a day, every day of the week. Our users are highly opinionated (in the best way) about what our software does and how it can be better. I personally find having that kind of user involvement very rewarding.

In a few months I'll be starting a new job at a well-known consumer internet company in Silicon Valley. They use a variety of languages (PHP, Python, C++) and teams have around 6 people. I'm most excited about the prospect of pushing a change out in the morning and having millions of people use it by the end of the day.

It sounds to me like you don't so much need a change in career but a change in workplace. Life's to short to work on boring projects. I don't know too much about the software industry in MSP but in general the software job market is quite good right now. If you're flexible on location Silicon Valley is a great place to be, but I'm sure there Minneapolis has lots of options as well.
posted by hupp at 5:51 AM on February 4, 2008

I'm working on electronic medical records software, which is great. Every employee flies out to a hospital to see health care providers using the software, so you get to see your product being used first-hand. The corporate culture is excellent, if more social than I'm used to.

I work in VB6 and an old, old language called MUMPS. That's the painful part.
posted by Jpfed at 7:39 AM on February 4, 2008

I write the code that drives the public-facing website of a major financial services company. It's cool because it has a high "I made that" factor. A half-million people directly use my code every day, and projects I've worked on generate millions of dollars of revenue per month. My parents can log in and see what their son does at work all day, compared to a backend programmer who slaves away all day on mainframe code that will only be seen by a few people inside the company, even though those projects are often as or more critical than mine.
posted by indyz at 8:50 AM on February 4, 2008

There's still a lot of fun to be had in software development, but it generally involves taking a risk and finding a niche where there are less jobs. Think Ruby, Python, Erlang, Haskell or Scala, not Java, for instance (or hey, even JavaScript - there's a whole new sector in server-side JavaScript about to blow up in the next few years!).

For my own part, I am no longer a standard developer working for clients as I cashed out with something I developed last year, but I still develop, and focus on semi cutting-edge Ruby stuff. The Ruby community is pretty interesting and extremely progressive / experimental compared to most others (even Perl!). I'm not into the whole Rails thing too much, but I know so many people who love and have lots of fun working with Rails developing and deploying little Web apps within hours.

I guess one part of the puzzle is to find out what makes you tick. Is it releasing stuff? Is it getting lots of visitors to a Web site? Is it solving extremely tough problems? Is it in discovering new techniques or algorithms? Is it compiler or virtual machine development? Is it graphics? Is it in daemon / protocol design? Once you get an idea, you can work back to the language / community.
posted by wackybrit at 12:16 PM on February 4, 2008

« Older RER open in Paris on Christmas Day?   |   Trans-Atlantic Wine Journey Newer »
This thread is closed to new comments.