Text

Potential

Remember my success equation? Success = potential + opportunities.

I wanted to share my thoughts on potential. As I mentioned before, potential is everywhere in an academic setting. It’s hard for me to not think about it.

Potential is necessary for success.

A simple example is a math test. You build up potential by studying the material, doing practice problems, and understanding key concepts. You’re given the opportunity to succeed when you’re given the test, and you’ll succeed given that you had enough potential to do so. The definition of success might vary but the general principle is the same.

Potential opens up opportunities.

Chance favors the prepared mind.

— Louis Pasteur

Whenever I think about this stuff, I remember what Joe Satriani mentioned in a video on YouTube. He says something like it’s important for guitar players to know all of the modes in every key all over the guitar. He says it’s important because once you know them and you’re listening to some other player you can immediately go, “that’s Aeolian!” or “that’s Phrygian dominant!” and you get more out of listening to what the person is playing.

The more potential you have, the more opportunities you get. If you learn a new scale on an instrument, that’s a whole new avenue of creativity and improvisation. If you learn a new programming language, you’re suddenly exposed to a bunch of new opportunities like internships or projects.

Finding opportunities is hard for some. For others, it’s a simple email away. If you want to be successful, aim to maximize your potential. Seriously, if you have enough potential, you won’t even have to try that hard. Think of it as fishing in the ocean with a net. the bigger the net, the more fish you can capture. If your net is big enough, fish will just end up in there one way or another.

Potential means a lot of things.

You build up potential in many ways, and the idea of “potential” is multifaceted. Just because you can pull an all-nighter to study for an exam and build up your potential for success doesn’t mean that’s the only way to do so. Getting enough rest also builds potential. Taking breaks is just as important.


Make it genuine.

Sometimes I look back at my resume and notice that I started to learn some of the things on there when I was in elementary school. Back then, I probably didn’t even know what a resume was. I installed my first LAMP stack because I was genuinely interested and curious about how websites worked. I know it’s tempting, but try to avoid learning things for the sake of learning them. Be genuine.

I asked myself in a thought experiment recently: “Why do you spend hours working on a project that you don’t get paid to work on and no one told you to do so?” I’m working on a Go database driver for FoundationDB, and it’s rather complicated. My answer is: I don’t know, but it’s fun and I’m learning a lot. I literally spent hours trying to figure out how this thing works. I could be watching TV shows or playing video games, but I’m trying to solve a problem that I made for myself. I wouldn’t say it’s fun, because I get frustrated and start thinking about it non-stop and it becomes an obsession. At the end of the day, I know I didn’t waste my time even if I scrap the entire project. The knowledge (and potential) I gained by working on it make it worth it.

I think in college it’s very easy to get sucked into thoughts like “what am I going to do after I graduate?” This is the time when you really have to try to commit to a major and career path. Often times people have absolutely no idea what to do, and it gets stressful for them. The only piece of advice I can give them is the following: “Find something you like to do, get better at it, and do it better than anyone else.” I’m not sure if you’ll be successful that way, but hopefully you’ll be happier along the way.

Text

Thought Experiments

I’ve been doing this for a few years now, and it’s an interesting process.

It’s pretty much exactly what a thought experiment is:

In its broadest usage, thought experimentation is the process of employing imaginary situations to help us understand the way things really are (or, in the case of Herman Kahn’s “scenarios”, understand something about something in the future). The understanding comes through reflection upon this imaginary situation. — Wikipedia

In my “thought experiments,” which generally occur in the shower or when I’m shaving, I assume I make a certain decision and then I fast forward into the future. It could be a few weeks or even years — it all depends on the context. Then I start asking myself questions. I pretend like I’m being interviewed and I try to think about important questions to ask myself.

Here’s an example: I decide to major in math and think about where I am in 2016. I would ask myself questions like, “what career opportunities are you considering?” or “what’s the biggest impact you can make using the skills and knowledge you’ve acquired so far?” It’s hard to put these things into words. Often times thought experiments are more about feelings rather than concrete, coherent thoughts.

I like doing this because I can think about possible outcomes and the decisions I have to make to get to those possible outcomes. If I like certain outcomes, I’ll choose to make certain decisions over others. I think about decisions a lot, and I often think about failing and what I would do as a result of failure. As they say, failing to plan is planning to fail. I would go a step further and say that planning on failing is a must-have. Start things off right — don’t misframe.

Quote
"Which of my photographs is my favorite? The one I’m going to take tomorrow."

— Imogen Cunningham (via bijan)

Text

Majoring in Math

It’s May. I have a few finals left before I can say that I’ve completed my first year of undergrad. You could say that I’ve changed my mind a lot about what I wanted to accomplish over these four years, but you could also say that I haven’t. As for my major, I think I’ve landed on something. I want to major in mathematics.

I applied to the School of Engineering and Applied Science (SEAS) at UVa, also known as the E-school. To be honest, I didn’t think about this at all. I saw “engineering” and marked the box, essentially. My focus was on getting in. After I was accepted, I started to think about what I wanted to do.

I didn’t want to do computer science. My thought process was, if I’m going to continue managing a web hosting company and develop cool products, I don’t need to spend money to learn things I was already learning. For almost a decade, I’ve been learning about technology almost exclusively from the web. I can continue doing that. So to maximize my value, I thought perhaps the commerce track was the way to go.

The McIntire School of Commerce was one of the major reasons why I chose UVa. It’s the second best undergraduate business school in the nation. Since I live in Virginia, I also get in-state tuition. That sounded amazing. I did some more reading and came to the conclusion that it might be annoying to satisfy both the E-school prerequisites and those for pre-commerce, or pre-comm. I requested to transfer into the College of Arts and Sciences (CLAS), also known as the College. This was still over the summer, so I didn’t have any issues. Eventually it was time to select courses, and I started my pre-comm trek.

I got really bored during my first semester. My only STEM-ish (if that makes sense) classes were statistics and astronomy. I don’t really know how to put this. Doing problem sets for econ didn’t seem useful. I wasn’t interested, and I didn’t get a chance to figure out what I was going to learn if I continued taking econ courses. I didn’t want to keep going. I also hated writing around 25 pages about E-books for English.

The next semester, I took things to another level. I signed up for 12 credits worth of technical classes. Three math and a 1 credit Haskell course. People are sometimes surprised when they hear I’m taking three math classes. It doesn’t really make sense. They’re still different classes, but they just happen to be in the same department. In short, I had to do a lot of math homework this semester, I got better at math, and (more importantly!) I wanted to do more math.

So, here I am. I want to major in math with a concentration in financial mathematics. I still have to take a couple of econ/comm courses, but that’s fine with me. I might want to check out Wall Street if I can. I’m still avoiding CS since I find that focusing more heavily on math will be a better investment of my time (and money) and it will complement my IT skills well.

So why math? I’m bad at it. I want to get better. I’ve never been good at math. It was my worst subject in high school. I used to say, “what’s the point of this?” But last year, something changed. I stopped asking that. I took a course called Advanced Math Techniques for Scientists and Engineers. It was more of a survey into different fields of math. It was a preview of what to expect. I liked it. A lot.

Picking a major isn’t really a big deal for me. I’m not sure what I’ll do after undergrad. It’ll probably something in IT. I’d love to start a company, get funding, and tackle a challenging problem in the world. Anyway, I’m not letting my major limit the scope of my future. If anything, it’ll make it more interesting by giving me more potential.

I asked Hacker News what I should expect in the future. I wish I got more responses, but “it is what it is…!” I liked this response the most:

The cool thing about IT is that a lot of people don’t care what your major is (though admittedly there could be some “must have degree” at large companies). There’s CS people, Information Technology, Infosec, Information Management, and more. There’s not just 1 major. I worked with a Linux admin with a masters in Physics, and was entirely self taught.

There’s a bunch of neat things you can do with a math degree in IT. Off the top of my head, anything involving statistics. Most people can’t do any statistics at all, and the ones who can are limited. There’s a lot in the areas of business intelligence that requires math majors. I think my company employs a few.

Another area is algorithms. There’s a lot of algorithms to be had - spam filters, job schedulers, search, etc. It could be a good fit for you if you’re into that area.

Tags: math major
Quote
"Writing is thinking. To write well is to think clearly. That’s why it’s so hard."

— David McCullough (via writingquotes)

(via hiimtestudo)

Photo
Workstation

Workstation

Photo
#tea #uva

#tea #uva

Tags: tea uva
Text

Mastering the art of context switching

In computing, a context switch is the process of storing and restoring the state (context) of a process so that execution can be resumed from the same point at a later time. — Wikipedia

Essentially, context switching means you stop what you’re doing, do something else, and then go back to what you were originally doing. Context switching is important in computing, but it’s also important for people. We do many different things in our lives, and that involves playing different roles. In order to do well in these roles, I think we have to be dedicated, and that often times involves a certain mindset. I’m trying to get better at changing my mindset. I’m trying to master the art of context switching.

When you have to run a web hosting company, you have to keep checking emails. There’s no way around it. Clients might have issues and they need to have them addressed as soon as possible. Occasionally I find myself working really hard on something school-related, like a problem set, and I get a support ticket email. I stop being a student, play a sysadmin role, and then go back. For trivial issues, the switch is immediate. For more complex issues, however, I find that there’s more mental inertia. I have to think about things more in order to find a solution to a problem. In that case, I stop being focused about my school work. Even if I’m working on it, part of me is thinking about the support ticket.

Juggling business, school, and social roles sometimes gets annoying. Context switching sucks. I sometimes find myself not doing anything for hours. It takes me a while to stop thinking about some things and start thinking about others. That’s what I need to work on. How do you get better at something? Find your limit and do as much as you can push it further.

Link

Text

/etc/shadow passwords with Go

Here’s how you can create hashed + salted passwords for use in /etc/shadow. I’m using libcrypt.

package main

/*
#cgo LDFLAGS: -lcrypt
#include 
*/
import "C"

import (
    "fmt"
)

func main() {
    fmt.Println("Hashed:", C.GoString(C.crypt(C.CString("password!!!"), C.CString("$6$Vi.DuMQS"))));
}

The output should be…

Hashed: $6$Vi.DuMQS$3hoKGTZ4ym8W3VHhLith2rGnChBtEobC3h07MVfdzk/0GxnWlkAUZ7/msJ1t93ekA8qc7jzVfP./8fnkfk/e6/
Photo
Fun with a CCTV lens. 25 mm f/1.4.
http://www.flickr.com/photos/preetamjinka/7553303126

Fun with a CCTV lens. 25 mm f/1.4. http://www.flickr.com/photos/preetamjinka/7553303126

Photo
Tags: ducati
Photo
Mocha.

Mocha.

Text

Working and growing up

My first internship.

In July 2011, I joined a company called 25K Digital as a software engineering intern. I just finished my junior year of high school, and I was excited. It was my first internship and I was ready to apply those impressive skills I had acquired over the years. I was ready to make some cool things!

25K Digital is a digital media agency. Most, if not all, of their work is client-based. They get clients with certain requirements and they design and build a solution that fits those requirements. I learned rather early on that this gets boring really quickly.

The lone intern.

At 17, I was the youngest person there at the time. Everyone else was in their mid-20s and beyond. It was really hard for me to relate to anyone else there. I remember spending most of my lunches watching the Linux Action Show or TechSnap. Even if we did go out together for lunch, no one would want to talk about virtualization or whatever else I was interested in at the time. The company culture wasn’t something I liked. I guess that’s what you have to learn to deal with as you get older. Once you’re out of the “social bubbles” of school or college, you’re pretty much on your own.

Different interests.

At the time, I was interested in distributed computing. That’s what I proposed for my senior research project, and that’s what the computer systems lab directors at TJHSST approved. I wanted to build large, distributed applications because that’s what I envisioned as the future of computing. Instead of building and researching innovative things, I was stuck in a rather small room working on a WordPress site for a local construction company. Really?

I told Dave, my boss, that I wasn’t really interested in what I was doing. He clearly understood what the issue was but there wasn’t much he could do about it. The work still had to get done. I signed up to do it, and I could do it, but I always felt that my time would’ve been spent doing cooler things.

Overall, that was an interesting summer. I’m glad I experienced that side of tech industry, because I now know that I never want to get involved in client-oriented projects again. I’m also not touching client-based web development again.

Internship searches.

After two summers of interning, I realized that I’ve become picky about internships. Last summer, I interned at FoundationDB. What an experience! To some, an internship might be about making money. While I also consider compensation to be important, I think the amount of knowledge gained and the professional connections made trump however much one makes in a summer. At FoundationDB, I realized how thrilling it is to work on a beautifully designed product that brings something new to the table. I realized that I learned tips and techniques that I probably wouldn’t have learned in school. Even more importantly, FoundationDB started me on a journey to learn more about databases and transactional systems, and even got me to create a key-value store.

For this summer, I wanted to try to get an internship that would be as lucrative as FoundationDB was. I think I found one. I’ll be working in Charlottesville for another database startup. I’m excited to learn more about what they call adaptive fault detection.

I’m honestly scared that after working for startups so much, I’ve alienated myself against larger companies or government contractors. Eh, we’ll see where things go from here.

Photo
Tags: helvetica nyc