Ask HN: How to make the most of a slow job?
I'm in my late 20s and I've been doing web development, back end mostly, for a couple of years.
I just moved back home to Virginia, where I've just started a new job at a university. I'm worried because it seems like a little bit of a backwater.
For example, there's no version control, and no bug tracking system (all requests made via email). I was told this was because it's such a small operation -- only two of us writing code. My boss doesn't seem to be resistant to those practices, but they're not implemented yet. The applications being built typically have very few users (maybe only a hundred or so). It's all ColdFusion, which I don't know much about. The pay isn't great but it's enough to live on and save a little.
There are some upsides. One is that I think I'll have a lot of free time and choice in how I spend it.
Later, I might be able to take advantage of steeply discounted tuition at the university. I don't have a CS degree and this one would be pretty cheap as they go.
How can I make the most out of a situation like this? Should I be looking for a more sophisticated workplace now, rather than sink time into this one? Should I hang on for the sake of the tuition? Or just loaf around drinking coffee and reading HN?
Also please let me know if I've left things out, I've tried to be brief.
Thanks!
18 comments
[ 3.2 ms ] story [ 39.9 ms ] threadIf it does not work out, you can always look for a new place.
You should at least use version control for what you are working on. Even if it is just a local Git repo (that you keep backed up, of course). Same with ticketing, either pick up one of the open source ticketing systems just for your own sanity, or take time to create your own ticketing system if there is that much slack time.
If I were you I'd start out by attending some interesting classes and if possible sign up for them.
It sucks to change jobs but trust your gut.
I must get a new pair of glasses.
http://vimeo.com/2723800
For example, if you want to work for a SV startup, I'd move out there asap, as the skills they want are decaying right now.
Or, if you wanted to teach CS, or even IT, at the college level, you should take classes and get a MS or PhD in CS.
Or, if you want to do webdev and support for local companies and ColdFusion interests you, you could learn the ins and outs of ColdFusion, learn project management and estimation, and set up some of the basics of the Joel Test ( http://www.joelonsoftware.com/articles/fog0000000043.html ) for your current job, and learn a ton.
Getting a CS degree on the cheap seems like the big pro here and would help you down the line. Even though its possible to get a developer job without a CS degree, it certainly helps. Many companies screen out anybody without a CS degree altogether.
If you have a lot of downtime you might be able to pick up some consulting work as well and broaden your exposure to some other technologies.
My suggestion:
1. Learn the existing CF system, with full knowledge that CF is not a "marketable skill". (Even though there are a ton of legacy systems written in CF out there.)
2. Institute the process changes (source control, bug tracking, testing, etc) yourself, just to learn them and experience the problems in implementing them.
3. Use the free time to build a complete replacement for the existing system in a currently marketable stack (Node / Javascript, Elixir, Clojure / Clojurescript, .Net, etc).
4. Socialize / network with other developers at meetups and conferences.
5. Start the CS degree (and possibly explore options for transferring).
Extra Credit: Start a side business as a web dev consultant or, even better, a product. The education market is full of niches that can be better filled, and you have a front row seat.
Your in a place that needs some renovation and your the chosen one to do it.
1st Phase: Doing an survey on what can be implemented to improve the work environment. From what you have listed the first thing I would recommend is setting up Git on your machines to implement modern version control. Then setup a testing, staging and testing environment. You can then setup an integration server and run ColdFusion tests in the staging environment before you deploy your code to production. This will add development, automated continuous code integration and source control management to your resume.
2nd Phase: Setup a ticket system for all requests for bugs, features, etc. to be funneled through to decrease email support.
3rd Phase: Build analytics into the system, first start out with setting up monitoring for the web and database servers. If you only have one web server create a new server to put the database on to enhance security. Have the database server only accessible internally. Then duplicate the same to your staging and testing environments. This will help increase security of the overall infrastructure if this is not done already. For you this will allow you to add designed secure muli-tiered server infrastructure, infrastructure monitoring and analytics.
4th Phase: I am not sure if you are able to change what your running as a server side language from Cold Fusion if not I recommend that you master Coldfusion, also not sure what version of Coldfusion you are running but if it is the enterprise edition there is a nice bit for you to learn.
If you are able to change the language I would recommend doing a survey to see what features you currently have in the site and then choose a language that you can migrate the system too and get industry certifications to help you become more marketable.
If you choose Java you can get certified in Java SE, Java EE, 11g,12c, etc. use this until you get all the way up to expert level for each cert if possible. If you do not see this as a route due too the required class costs you can choose an alternative from a highly demanded programming language or framework like Ruby, Ruby on Rails, Python, Django, C#, ASP.NET MVC, NodeJS, Go, Closure, ClosureScript, Scala, Dart, etc. Then setup the frontend in AngularJS and create a WebAPI to interface with the website.
5th Phase: After you have a strong site setup you can use the API to interface with mobile applications you create for iOS and Android to add both to your resume. I
This should help you add some meat to your resume and if your going to be working somewhere for 8 hours a day you might as well make it work for you and get your experience and certifications. Check with your manager, admissions and HR to see if there are any opportunities for you to get a B.S. in Computer Science fully paid. You might even be able to move up the ranks over time to higher positions within the company or start your own consulting company.
I am also sure you probably see a nice bit of variation of people at work. Get to know them go out to eat from time to time. They might be a very good contact or business associate for you in the future. You could become friends with the next Mark Zuckerberg or become the next Mark Zuckerberg and might need some college buddies to help you get things started up.
Once you have done what you feel has fulfilled you there it will then be time to spread your wings and fly to a new job. If you can get the B.S. in Computer Science degree that would be nice but don't let that hold you back.
CF isn't the most popular language but you could gain skills setting up version control and a testing/deployment system.
A ticket system would be nice as well.
I would recommend giving startups for the rest of us a listen and see if creating your own products or apps is a good fit for you to start working toward now.
It's nice being close to family and picking up a discounted degree is a plus too. It might be a nice job to relax in, get a degree and start building your own products/SaaS app.
Good luck.