Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> There's a joke that every web developer makes a personal page by first writing a custom bespoke CMS over a couple of months and then only using it for one "Hello, World!" post

I might be able to top that. About eleven years ago, I went through this process:

1. I wanted to redo my web site. But I hated using PHP which is all my shared host allowed.

2. Maybe I'll design a little programming language that transpiles to PHP. Then I can program my site using that.

3. I have the parser working and producing an AST. You know, writing a little interpreter that walks that AST is practically trivial. I'll do the PHP backend later, but let's give that a try.

4. Whoa, I have a working language! Neat! But, man, that tree-walking interpreter is slow. Maybe I could translate the tree to bytecode and write a little bytecode VM...

5. Bytecode is so fun! But I'm relying on the .NET VM for most of the heavy lifting like the GC and object representation. I wonder how that stuff works. Maybe I should try writing a little VM in C++...

6. That wasn't as bad as I expected. I learned a whole bunch. Maybe I should write some of this down.

So, uh, now I work at Google on a programming language and wrote a textbook on building interpreters [1]. I never did finish that website. (I just ported my blog to Jekyll at some point instead.)

[1]: http://craftinginterpreters.com/



That's one hell of a story! Myself, I only got as far as implementing a CMS with a virtualized filesystem with symlinks (and I think it was even rudimentarily distributed); lots and lots of pointless wheel reinvention, but I've learned tons of stuff and ultimately managed to use it to skip a subject at university. What I didn't manage to do is to use it to build my website (ended up keeping my Wordpress blog, later replaced by a DIY static site generator).

I've seen you around here a lot and enjoyed your comments, but until now, I never realized you're the author of "Crafting Interpreters" and "Game Programming Patterns"! These are some of the best resources I've ever read on-line! Thank you for doing those!


> These are some of the best resources I've ever read on-line! Thank you for doing those!

You're welcome! :)


You must have really hated PHP.


Literally laughing out loud now. Yes, this is a pretty fair observation.

I read once that a famous author got started because they read some trashy novel and was so incensed that it had been published that they decided they could do better.


> I read once that a famous author got started because they read some trashy novel and was so incensed that it had been published that they decided they could do better.

Jim Butcher with Dresden Files, or someone else? Because that pattern-matches to "highly promising book recommendation" for me.


AIUI the scenario with Jim Butcher and Dresden Files was that he was _trying_ to write some "genre hack" novel, and succeeded despite himself: https://www.tor.com/2008/07/25/sdccjimbutcherinterview/

"... struggled mightily until deciding (out of frustration) to reverse course and follow Chester’s rigorous writing techniques to the letter, doing all the plot outlining and character background sheets and so on that the English literature folks often scoff at as the workmanlike tools of genre hacks."


I want to say it was Richard Matheson who said that, but I could be misremembering.


well, isn't that a great story.

    - So, tell me, how did you land a job on Google?
    - Yeah, I was trying to redo my website...


My "how I got a job at Google" story is even more bananas.

Roughly around this same time, I was a very burned out game developer at EA. My job was doing data analytics on telemetry data reported by games. Basically, any time you started a game of Madden, the game would phone home to an EA server and tell EA which stadium you picked, which teams, game mode, etc. EA wanted to use that data to know what to prioritize in future versions. I was working on some rudimentary code to scrape those log files. Nothing that felt like making games in the least.

At the same time, my employment contract prevented me from doing game stuff on my free time. Most game companies essentially own your brain and don't let you do your own game-related stuff on non-work hours. So here I was nominally in the game industry and because of that, I was doing less stuff that felt like making games than ever before. It sucked.

In a fit of pique, I made a throwaway account on Reddit to whine about this. A complete stranger saw and said, "Well, if you know C++, Google is hiring and I could give you a referral..." I already had an interview lined up at ArenaNet in Seattle at the time. The recruiter for Google rushed to get an interview with Google going while I was in Seattle. I wasn't super interested because what the hell do I know about working on search engines and server stuff? However, I wasn't about to turn down the opportunity to see a Google office. My plan was to stay in games.

Then I bombed the ArenaNet interview because the interviewer didn't know what amortized complexity was and I couldn't do a good job of explaining it. (They asked what the cost to append to a growable array was and I said "constant time on average" and they looked at me like I was an idiot.)

Somehow, I managed to squeak through the Google interview. I had no idea at the time how few people get offers. If I did, I probably would have been a lot more nervous and fucked up the whole thing.

So, yeah, I got a job at Google and moved across the country because of a whiny throwaway account I created on Reddit.


I too got a job from posting too much on Reddit. Another user told me to apply to work with him, and that became my career when academia didn't work out.


that's really cool. After some code I posted here on HN got featured on top 10, another Brazilian guy from Google asked me if he could refer me. I accepted right away. Stopped everything I was doing to study for the interview. I Applied for 3 job openings using their internal tool (two outside Brazil and one here), but never got called to an interview. Probably for the best, I suck at programming with a timer on.


I haven't progressed that much in my CMS, :-) still in-progress. It is not as simple as I think. In addition to the typical blog implementation, I also add extra features.

For example, I included multi-lingual functionality as I wanted google to give me better result when people searched the keyword in my city.

As I had never been satisfied with my design, I found a way how to safely separate content and layout /color/etc. Then I was curious if anyone visited the website, a simple analytics was built. Wait, I also wanted to know in real time of any visit, so I set mobile notification if anyone visited the page or clicked on specific button. This list keeps.... haven't mentioned about my form builder, dynamic popup, and chatbot.

Thanks for sharing the experience, I thought I was that unique.


Awesome story. Thanks for sharing! Checking out your book.


thank you for sharing knowledge




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: