Software Engineer For A Human Resources Company
Job Title: Senior Software Engineer
Type of Company: My company provides Human Resources services and related software application services. A corporation can hire our recruiters to find candidates for jobs or subscribe to our service we provide that allows them to do background checks, employee surveys and job candidate and employee skill assessments.
Education: BA, Computer Science and Psychology, Wellesley College
Previous Experience: I started as junior programmer in a mid-size software company after college.
Job Tasks: As a software developer my primary responsibilities are to write code using programming languages such as C++ and C# and to add new functionality to an ATS (Applicant Tracking System), a product on which I've worked for 8 years. As technology evolves, so does the product. When I joined the company, for example, many people sent their resumes, printed on paper, by regular mail, responding to job advertisements. These had to be scanned and transferred as data into our ATS system so recruiters could search for candidate information electronically. Now people usually apply for jobs online. They can click on the Job's or Career pages on the website of a corporation and see available jobs and apply right away.
These are some of the things I helped to create as a software developer. But my daily job involves analyzing requirement for new features from a product manager, deciding how these can be implemented and coming up with time estimates, what might or might not be possible to change in current products in the time allotted. Once that phase is done, I write a technical specification document specifying which sections of the code will be affected by change and what new constructs will be added. I often review such documents with colleagues. Then I actually write the code and test and de-bug it as if I were a recruiter or a job seeker.
Best and Worst Parts of the Job: My work is creative. I can decide how to implement functionality. There are a lot of difficulties solving and modeling the real world on a machine. When something doesn't work, I have to figure out where the logic of the code has broken down. I like that. It is very rewarding to see a finished product so quickly. I write some code and, presto! when I'm done people can use the program and do their jobs better.
Of course, when something does not work and there's a deadline looming, it can be frustrating to fix it, and the pressure is often intense.
Job Tips: This is a field where you always have to keep learning as technology moves forward. If you like learning, you will enjoy this field. Practice makes perfect. Programming is easy to try at home or at school. You might not use much math on your job, but what you will learn in math and science -- to think in a logical sequential way -- will go a long way in programming.
Additional Thoughts: As a senior member of the team I answer questions from co-workers about how things work in the product and where to find the corresponding code that does the work behind the scenes. People skills are needed on this jobs even though they're often considered unimportant.