Aimee Sunshine-Hill and Charlotte Gapasin are Ninthlink’s beautful goddesses of Code Writing. Here, in their words, are some thoughts and musings about the balance between life and code.
What does it mean (to you, to the online world in general) to “Author” thousands of lines of code to create functionality?
Aimee: I’ve heard of programming compared to writing a novel. Honestly, when I’m coding, it feels more like playing sudoku or doing some other logic puzzle. I get so wrapped up in the challenge I’m trying to work out that I don’t notice the sheer mass of code I generate until I finish it. That’s actually one of the things I love about code; I can spend hours coding and not notice that time has passed. Then I take a step back and notice that it’s dark outside and decide I should probably go home. This may sound odd, but I feel somewhat maternal toward my code. I work so hard to pull together functions and variables and turn them into something that actually DOES things. Once I’m done, it’s hard not to feel a little protective of it. There are only a few people I would trust fully to work on my code without being tempted to immediately examine each line and make sure they didn’t break anything. Luckily, one of those people is Charlotte. The author Douglas Adams once likened programming to evolution. Small, simple things work together to become slightly less small and simple until they’re full organisms capable of really complex behavior.
Charlotte: A: First of all, I don’t think the outside world really knows how much thought and preparation can come into writing code. There are different ways of writing a particular functionality, but there are a few that are written “correctly”. Which brings up Object Oriented Programming (also known as OOP). I think OOP is the core practice of writing good code. This programming paradigm includes techniques such as polymorphism and inheritance, which I think are very important for cleaner code, reusability of code and performance.
What is your typical day of writing code?
Aimee: First thing, I check my email to make sure that no new requests came in the night before. Then I open up Homesite 5 (the text editor I use) and Firefox and I go at it. I generally prefer not to break for lunch, since it would throw off my programming groove (and it gets me out of work in time to see some sunlight). Requests often come in throughout the day from clients. I look at the requests, consider whether or not they’re a good idea, consider methods of accomplishing them if they are a good idea, and create the changes that will make them work. There’s a lot of testing involved in this process. Each change can affect other parts of the system, so you have to
test each piece a change may touch.
Charlotte: In the beginning of my day, I usually write a list of tasks that need to be completed in order of priority. If other tasks come up during the day, I try to fit them into my schedule. I also follow up with clients (or the account manager who manages the clients), by sending them emails or talk to them on the phone to discuss the status of their current issues. Each client is handled differently so knowing the contract agreement for each client is important. About 90-95% of my day is coding, thinking of ways to enhance code and/or preparing for new issues by creating a blue print on how the functionality needs to work and what kind of dependencies follows it so that it doesn’t result in bugs (code errors).
What are your current projects?
Aimee: Most of my time is spent working on LawInfo, which is turning into a very cool site. I started working on it when it had already been started by another coder, so it was tricky at first. It’s never easy to work on someone else’s code. I’ve now been working on it for a while, though, and now feel completely comfortable around it. I’ve also been working somewhat on PlanetIllogica, which is a pretty exciting new social networking site. If I find myself with extra time, I work on a website generator tool that’s given me a host of new puzzles to figure out.
Charlotte: The current project I have at the moment is with a client that I have been working with for a little over two years now. They represent publications (i.e., newspapers and magazines) and deal with Agencies who want to publish their ads in the best publications that fit the market criteria they need to reach out to. I have also been doing some work for a couple jacuzzi websites that find dealers in the zip codes/city/state that they select.
What projects are you most proud of?
Aimee: LawInfo is definitely up there. I was testing it the other day, and it really hit me how much functionality it’s capable of. I’m a bit of a perfectionist when I code, and I love how much I’ve been able to put into this project. Another project I’m still quite proud of is the first one I ever made. Looking back, it’s probably horribly coded. I was working as a researcher at a psychology lab, and ended up creating an online system for the lab that allowed participants to participate in our research studies from anywhere. That was the first time I’d ever programmed and it was almost impossibly difficult to teach myself. Nevertheless, I managed to pull it off and
create a functioning system.
Charlotte: The project I have been working on for over 2 years. We have took their entire business process and condensed it into a backend website where they can update different kinds of important data, create proposals to send out to agencies, create insertion orders to email to publications, create PDF and Excel spreadsheet reports on the fly, create maps of the demographic market depending on the zip codes selected for a single proposal, create proposals to send out to agencies, create insertion orders to email to publications, create invoices to send out to agencies and import all of their accounts into QuickBooks. For a process that used to take 3 weeks or more to do, it now only takes them a few hours.
Do you dream in code? Have code nightmares?
Aimee: Yes! All the time. It’s not even just dreaming about coding; my dreams are
actually organized into functions and arrays. I don’t have them all the
time, though. They’re a good indication that I’ve been working too much.
Charlotte: Actually, yes I do. Sometimes at night, I wake up and all of a sudden I get an epiphany on how to fix a bug or figure out how to code a functionality that I’ve been struggling with that day. I’ll wake right up and have to write it down so I won’t forget the next day. It’s really weird! One of my personal goals was to separate my work life with my REAL life. I still have to work on that. But I guess if programming is my passion, it may just OCCASIONALLY be part of my REAL life?
What do you do outside the world of code?
Aimee: My background is in theater and psychology, so I’m actually a fairly normal person once I leave the office. I don’t act in plays anymore, but I still love to watch them. I have a close group of friends who I spend much of my time with. And if I’m lucky, I sleep from time to time.
Charlotte: I usually do boxing and kickboxing 3-4 times a week. On the weekends, I usually hang out with my family, friends or my dog. But during September through January, I’m all about FOOTBALL. GO CHARGERS!
What do you see as the future of Open Source and Online Software —
Collaboration, Community, Trends…
Aimee: The future of online technologies is pretty exciting. The internet allows
us ways of interacting that have never been possible before. Open source
projects are particularly exciting because they’re an impressively massive
amount of technology built by a community of people who are passionate about
what they’re doing. This is how all technologies ought to be built in order
for them to reach their full potential.
Charlotte: Right now, I see that the Community trend is taking off. Facebook is now doing some Craigslistfunctionality. There are so many ideas out there and all we need are creative programmers!