Software Engineer Involved In Framework Development
Job Title: Software Engineer
Type of Company: The computer software that my company creates is used by mutual funds and other large investment firms to buy and sell investments. It helps them plan what they want to buy and sell as well as execute and track the transactions.
Education: BS, Physics, Carnegie Mellon
Previous Experience: After college, I started working as a software engineer at a small company. My first position was for a three-month contract on a trial basis. Potential employers were hesitant to hire me since my degree is not in computer science. I stayed with that company for nine years before moving to my current position. Along the way, I have held various management positions for software engineers.
Job Tasks: My primary job is to write computer software that's used as building blocks by other software engineers in the same company.
I write software to handle common and shared tasks that are needed throughout the product. Most of the common tasks are low level tasks such as storing data to the database, error handling, and communicating among dozens of computers. This type of work is frequently called "framework development."
The software developers who use the framework software are known as "application developers." They write software that handles high-level constructs. In my company, those high-level constructs would be representations of stocks, bonds, and other investments. The user interface developers create the windows, messages, and buttons that are displayed on the screen.
I typically work with application developers and user interface developers to help them solve a problem that afflicts us all. Generally, if someone has a problem others will have the same or a similar problem and it is best handled centrally. Suppose two users, for example, are looking at the same information on their computers and their computers are connected through a network. They both try to modify that information and save it to a database at the same time. Figuring out what happens and how to deal with it is a common type of problem that I solve.
Best and Worst Parts of the Job: The best part of the job is how interesting it is. I see some very difficult problems and have to diagnose what is happening. By the time I am alerted to the problem, several software engineers have already looked at the problem and failed to figure what had caused it -- either that or the problem was not in their field of expertise. Frequently these problems involve multiple computers trying to communicate and work together as one large software application.
The worst part of the job is having to build something that you know could be done in a better way. This happens when the best way technically to solve a problem is either too expensive or takes too much time to build.
Job Tips: There is no better teacher than putting in the time reading, writing and testing software.
There are many simple software problem sets on the internet that you can practice on. Search for code data on the internet for some good examples of software problems.