Database Developer In Financial Services
Job Title: Database Developer
Type of Company: They provide financial services to retail and institutional investors.
Education: BS, Computer Science, Merrimack College
Previous Experience: I had a co-op job while I was in college which gave me real-world experience where I could apply some of the concepts that I was learning in class. Having that, along with my degree, made it easier to find a full-time job after I graduated.
Job Tasks: I develop software which manages the information that goes into and out of large databases (which are large collections of related information stored on a computer). I check to ensure that the information going in is valid and correct, and I also write queries (which are like reports) which combine and relate the information together into something insightful and meaningful.
I also develop software which processes data. For example, I could write software which applies mathematical formulas (such as totals, averages, medians, etc.) to raw financial data, and either enters the results into another part of the database, or returns it directly to the person requesting the information. Sometimes, I am asked to look into a problem with existing software to see if it is working properly. If there is a problem, I need to identify the "bug" in the system and resolve it. Of course, if there is no problem with the software, I still need to identify the source of the problem.
To find out what the users of the system need or want, I often meet with them, either in person or on a conference call. The requests can be either very large or very small. Communication is important, so we also email each other back and forth regularly with questions and status updates. I also sometimes collaborate with my team members. It's important to be able to work independently (you learn best by researching an answer yourself), but it's just as important to be a good team member.
Best and Worst Parts of the Job: I love to create new software from scratch. It's a great feeling to be able to build a system from the ground up and say, "I've done that". It's also very satisfying to know that the system I helped develop serves an important purpose to the company I work for.
It's also interesting to fix a problem with existing software. I like solving mysteries, and finding the source of a bug in a system is a lot like solving a mystery.
In a way, though, it's a bit of a negative to have to investigate and resolve problems with existing software, especially if I didn't develop the software to begin with. It can be a real challenge to figure out the problem, since I may not be familiar with the author's style, and there is often no documentation about what the software is actually trying to do.
All in all, I take great satisfaction in helping the users of the systems I work on do their jobs more efficiently, and hopefully helping the company gain a competitive edge.
1.) I recommend a Computer Science degree. From there, you can take classes in a particular tool or computer language you are interested in if you want. A master's degree wouldn't hurt either, but there is no substitute for real-life work experience. Understanding concepts is important, but they are not much use if you don't know how to apply them to a real world problem. Obtaining an internship or a co-op job is ideal when you're first starting out.
2.) Practicing various aspects of a computer language in a sort of "sandbox" (where you won't interfere with anyone else and can feel free to make mistakes) makes it easier to implement them when your employer asks you to.
3.) Don't forget "soft" skills. It's important to be able to write and speak well, both to technical and non-technical people. A good attitude and work ethic goes a long way no matter what you're doing.
4.) And finally, don't give up! You may think you don't have what it takes, but as you get more and more experience, you get more and more confident.