YDN: So how did you get started in development?
Julia GraceJulia: I started programming around age 11 on an old Commodore 64. I was writing very simple Fortran programs, then later took C++ in high school and that was it: I knew I wanted to study computer science. I was very lucky, my father is a theoretical physicist and he was very encouraging of all my computer endeavors. It never mattered that I was a girl. He was supportive in every way and when I started excelling in math and science, he said that was fantastic. I got an undergrad degree in CS, did some work in consulting, then went to grad school to initially study distributed systems and networking. I ended up taking several courses that touched on HCI (human computer interaction) and I was hooked. After grad school, I got a job offer from IBM Almaden Research in San Jose and I spent 4 years in their HCI group.
YDN: How did you decide to do a start-up?
Julia: So, I left IBM Research and I went to do product management at a mid-stage start-up that had just raised their Series A round. I could recognize great engineers and great engineering, but I wanted to learn how to be a great product person. So I went from a company with hundreds of thousands to 16 people. At first it was a culture shock, but I loved the hustle and bustle of the start-up. I quickly learned that everything you do at a company that small can have significant impact (good or bad), so you must spend your time very wisely. After that experience, I knew at some point, I wanted to be there at the beginning when the company is forming and deciding what it wants to be when it grows up. I wanted to start something.
WeddlineLovely logo YDN: How did you get connected to WeddingLovely?
Julia: After arriving in Silicon Valley in 2007, I realized what an amazing place this is, full of really brilliant people. So I made it one of my goals to meet as many of those people as I could. Im very extroverted and I gain a lot of energy being around people, so I just happened to have met Tracy Osborn, my co-founder, through friends a couple years ago. We kept in touch, talked on Twitter now and then, but in honesty our friendship started organically and not as co-founders. When I started to think about leaving my last start-up, I knew Tracy had started WeddingLovely and gotten into 500 Startups as a solo founder. She is a fantastic designer - her passion is building amazing user interfaces. I had been giving her informal advice about the business, product features, etc. She was looking for a co-founder but I wanted to be sure it was a good fit before I jumped on board.
Around January 2012 I quit my job and starting thinking seriously about starting something myself, or finding a co-founder. Starting a company by yourself is not to be taken lightly. I talked with many different people who were about to found companies at that stage. People who have not started companies dont understand that youre basically marrying this person - thus you should probably date first. There were a few people I was talking to and after a few weeks of soul-searching and thinking deeply about what I wanted to do next, I joined Tracy 7 months ago.
YDN: Congratulations! So, what are some of the first things you did as CTO?
Julia: I sat down with Tracy and talked about where we wanted to go as a company, meaning what are our goals, what is product road-map, how we are going to get there and whats holding us back. She built WeddingLovely in Python/Django, and I had never used either so I needed to learn fast. I built a few small features and fixed bugs to get my feet wet writing production quality code in this new environment. We are serving thousands of photos and we need to serve them very fast, so I rewrote how we handle photos and searches so that we are mindful of storage, space, and performance. Next I tackled the task of consolidating several our systems such that they use one, unified back-end. We can't grow and reach our product goals if the pieces of the puzzle are scattered. Code duplication was causing us a lot of pain when we implemented new features or debugged problems. It was a large re-architecture, but I know it will allow us to scale in ways we never could have before.
YDN: Sounds like youve been busy. Can you walk us through a typical day as WeddingLovelys CTO.
Julia: There are always a million things to do but everyday I try to only focus on the things that will really move the needle and make the most difference to our business. Everyday I write code, but if we are adding a feature then Tracy and I will talk over if we should build it ourselves or find another start-up/third party that we can integrate with to save us time. I also like to look at conversion rates, check in on our customer acquisition costs. How can we tweak the system to get better conversion? How do we optimize the flows through the sign-up? Making sure page-loading times are optimized. There are so many things you do for your business every day, but the key is to focus on the metrics that matter.
YDN: Can you share with us some of the thought behind the technology decisions youve made for your start-up?
Julia: Tracy wrote the first iteration in Python/Django. Our back-end database is Postgres and we run all our systems on Linode. I come from a Java/C++ background, but Python/ Django were working really well for Tracy when I joined, and admittedly I was excited to learn something new. Im actually giving a talk at DjangoCon in September on how to bring new developers up to speed in Python/Django based on my experiences. The talent market for engineers in the Valley is so hot right now that not every engineer you hire will necessarily know all the technologies used in your stack. I found that you only learn something when you need to produce production quality code that someone else (whether it be random end-users your friends, your family) will be using.
YDN: Have there been any surprise learnings in the past 7 months?
Julia: You come in and you think it's all going to be build, build, build (and there is a lot of that), but some of the most effective decisions I made were to simplify things. Is there anything overly complex that we are paying technical debt maintaining? Or anything that is repeatedly confusing our users? Looking at our sign-up process I realized we were asking users to do too much so weve made that more streamlined. We are trying to build very personalized profiles for the brides and grooms who sign up for WeddingLovely; this is to ensure we give them the most relevant and useful wedding planning advice. One way to solve this problem is to use machine learning, but before you employ complex algorithms that could require very large amounts of training data, think about simple ways that will get you 99% of the way there. That might be good enough.
YDN: How is working as a designer/programmer co-founding team?
Julia: Tracy is not only an awesome designer, but taught herself how to code and does a significant amount of programming. In working with her I have learned techniques of how to ensure more traditional engineers (those of us with CS degrees) work harmoniously with those who picked up programming later in life. I have found that these CS non-traditionalists often have different ideas, approaches, and problem solving techniques. Just as gender and ethnic diversity are very important in the workplace, I feel that having "technical diversity" will soon be just as important.
On a day to day basis I ensure, for example, the database queries needed to show the data on the pages Tracy designs can be executed quickly. If not, how do we get there? Does the schema need to change, should be we caching different information? Weve also seen tremendous growth, and sometimes you learn the hard way that what worked really well for 500 rows of data may not work well for 50K and certainly not for 1M. As I mentioned, she often has a very different perspective than I do, and that is absolutely invaluable in a start-up. You dont want to work with people who just blanket agree with you all the time. You want to be with people who challenge you to think deeply about the problems youre solving, and why the current approaches may not work, and why a different approach might be better.
YDN: What are some of your more challenging technology challenges and how are you approaching them?
Julia: A technology problem we are dealing with now is how to handle location data better to support international growth. At first you do whats cheap and easy (entering strings like San Francisco, CA, USA) because youre small and you just want to get it done. But then as you grow up you want to do more complex things with location that your current implementation cant handle. Then people outside the US want to use your product and your nicely formatted form for US addresses wont work. We have an online wedding planning application that helps brides and grooms plan their wedding by providing highly personalized advice, connecting them to small and local vendors. When a user enters a zip code or city we want to do a look-up in our vendor database and match the location (or locations) nearby. So now we are using PostGIS to help us handle location data.
YDN: What differentiates WeddingLovely from your competition?
Julia: We provide a one stop, all inclusive wedding planning application that simplifies the process for brides and grooms. The wedding industry is big, fragmented and messy. We wanted to create a better way to cater to engaged couples who are trying to navigate through all the options, without tons of advertising cluttering the user experience. Many other wedding companies provide only a wedding website, or only planning tools, or only a directory of wedding photographers -- we do all of these and more. Instead of using sites that provide to-do-lists that are hundreds of items long, we provide you with a solution that is more personalized and streamlined to what you really need to know as you plan your wedding, along with a very high-quality user experience. WeddingLovely makes wedding planning the fun, enjoyable process that it should be!