Coming soon!
Download
-- "Returning as an Engineer" is available for free download! --
Which format do you want to save it as?
140
68
x
Table of Contents
Anonymous likes this!
4/10/2014
Anonymous likes this!
3/30/2013
Fprefect likes this!
3/2/2013
Anonymous commented:
1/25/2013
so goood
Anonymous commented:
1/11/2013
You aren't an engineer.
Anonymous likes this!
12/18/2012
Dieting Hippo likes this!
12/18/2012
Msiedz commented:
12/11/2012
thanks man, and awesome feedback. a big part of this, I think, is going to be onboarding. something you didn't know was that you could use scroll wheel and arrow keys to navigate between pages, and in your case shift+right arrow takes you to the last page, etc. commenting is an especially powerful way to understand quality of work, so we want to emphasize that with the UI. we're still in private beta, so we're not going to put the signup button anywhere just yet. cheers!
Anonymous commented:
12/11/2012
Have you considered expanding the "book" area (what about a double spread?) and moving the comments section beneath it? It would give you more real estate for the text. I like the little arrows, though I wish there was one to jump back to the very first page (or the last). I didn't realize I could use the TOC until I started clicking all the icons. It might be helpful to spell out what TOC is too, for clarity. Finally, it would've been nice to have a sign-up feature somewhere here... I'm posting an Anonymous but I would've signed up if there was the option right here on the page! Great work overall though and very inspiring to someone who is trying to go on this same path...
Anonymous likes this!
12/11/2012
Henderston likes this!
11/14/2012
Anonymous likes this!
11/9/2012
Msiedz commented:
11/2/2012
I have a single HTML page available so far for mobile and IE (doesn't support css columns). Any idea what the request header is for that screen reader browser?
Anonymous commented:
11/1/2012
Not accessible with screen readers at all. Please post a single page HTML version.
Msiedz commented:
10/31/2012
I hide the visibility of the page at first because the story starts out as a JSON blob to be rendered. While for SEO purposes I may change this later, for now it's doing a lot of DOM rendering. Wonder if that Chrome version's JS engine is faulty somewhere to stop the code before full render (visibility=visible). What does console tell you about the JS?
Anonymous commented:
10/31/2012
Looks great here. Thanks
Anonymous commented:
10/31/2012
Sorry, I meant Chromium: 6.0.472.63 (59945) Built on Debian 6.0, running on Debian 6.0.6
Anonymous commented:
10/31/2012
Only the background is shown. No other UI elements. For some reason there is a scrollbar present. When I view the source the HTML looks intact.
Msiedz commented:
10/31/2012
What happens to it?
Anonymous commented:
10/31/2012
This page does not work in Chrome on Debian. I had to switch to Opera to see this page.
Msiedz commented:
10/31/2012
My roommate in college was studying mech engineering and let me know that they don't consider CS people to be engineers. So I can kind of understand.
Anonymous commented:
10/31/2012
I think he's using Engineer in the sense 'being part of an Engineering team,' or 'technical person.' Which is fine. Although I can see how it could piss off people who spend four or five years slogging through one of the hardest degrees you can take in order to become an actual Engineer.
rhymeswithkatherina commented:
10/31/2012
7. to design or create using the techniques or methods of engineering 8. to arrange, manage, or carry through by skillful or artful contrivance
rhymeswithkatherina commented:
10/31/2012
en·gi·neer   noun 1. a person trained and skilled in the design, construction, and use in any of various branches of engineering
Anonymous commented:
10/31/2012
hello
Anonymous commented:
10/31/2012
dont call urself an engineer since you just know how to program
Anonymous commented:
10/31/2012
test
Anonymous commented:
10/31/2012
Too narrow interface.
Anonymous commented:
10/31/2012
That must have taken a hell of a lot time to write!
Anonymous commented:
10/31/2012
The buttons are too close! Use more padding! But otherwise I'm excited to see the product :)
Anonymous commented:
10/31/2012
also, I think the comments should show up immediately
Anonymous commented:
10/31/2012
The side-scrolling interface really really hurts to use
Anonymous commented:
10/31/2012
dd
Anonymous commented:
10/31/2012
I guess usage of word "engineer" is pretty liberal on that text. So you fiddled with code for 2 years and you start calling yourself an engineer?
Anonymous commented:
10/31/2012
wtf
Anonymous commented:
10/31/2012
kokokoko
Anonymous commented:
10/31/2012
43
Anonymous commented:
10/31/2012
Good job :) Release pen.fm already please :P
Anonymous commented:
10/31/2012
asfsdaf
Anonymous commented:
10/31/2012
asdasd
Anonymous commented:
10/31/2012
Nice story.
Anonymous commented:
10/31/2012
ads
Anonymous commented:
10/31/2012
I cannot, in fact, navigate via scrolling. Edge clicking (like reading a book on a Kindle or iPad) would probably help.
Anonymous commented:
10/31/2012
peen
Msiedz commented:
10/31/2012
Scroll wheel / touch scroll / arrow keys all work for navigation
Anonymous commented:
10/31/2012
l
Anonymous commented:
10/31/2012
Thanks, just figure that out
Anonymous commented:
10/31/2012
Arrow keys work
Anonymous commented:
10/31/2012
Cool, now how the hell do I get to page 2
catsblood commented:
10/30/2012
Interesting stuff, i just assumed you were a coder from day one,didnt realise you were learning on the fly- impressed ! keep at it Mike you have something here
table of
contents
written by
Msiedz
download
Returning as an Engineer
Introduction

This is a short story about how I started Neovella, a collaborative online writing startup, without a shred of tech skills, ultimately crashed and burned, and then re-emerged as an engineer one year later with PenFM to tackle this space once and for all.

You can navigate through this story using either your scroll wheel, arrow keys, or just he paging buttons below. (For mobile devices, I cut out the interface for now and left you with text)

To learn more, or give feedback, contact Michael Siedlecki at mike@pen.fm.

Ideas and Execution

There is a problem with idea people and the implementation of their ideas. Ideas have to be communicated, shared, and implemented with passion that exceeds words. Often, the third step is where things fall apart.

When I started Neovella, I was fresh out of UCLA with an economics degree (newly disillusioned with the real world after months of failing to find degree-related work), and $5,000 in savings built up from my last bit of financial aid and a few months of temp work in sales service at a produce company. Coming from southern California, the rates for living in Silicon Valley were prohibitive. Luckily for me, a post on Hacker News turned up advertising a $400/month triple at a Hacker House in Palo Alto. When I checked it out, I was vague about my skillset, but assured them that I was doing a startup. A month later, I moved in.

The idea for Neovella emerged from a light-hearted hypothesis about the Internet. Could people enjoy writing together? Could legitimate stories be formed with all crew and no captain? I figured, why not?

When I reviewed my idea with guests at my Hacker House's pre Startup School party the weekend after I moved in, it seemed to have legs. Neovella stirred up the imagination, and for that reason alone I felt it would be worth pursuing even if it fell flat. Call it validation, or call it a joke, but without any skills, an idea was just as good as any other, and the more I thought about the idea, the more I thought it could become a big deal--but only if a community could be built around it.

Remember how I said ideas need to be executed by someone with passion for it? Well add time to that list, because the engineer for Neovella had passion, but little time to spare for it. Long story short about that, while I was told it would take a week, and then accepted that it would take a month to be built, it ended up taking half a year for a first release. In that time, lengthy as it was, an idea person doesn't have a very actionable list of things to do. Eager to spend my time helping out as possible, I took to design and implementing it in HTML/CSS. By the time I became sufficiently good at it, I had built out all of Neovella's assets and my design fueled the very first release. It wasn't a skill found valuable by employers without some coding behind it, however...

When Neovella launched, I somehow got it to the front page of HN for a while, and was hit by a lot of feedback that I really was in no position to implement on my own very quickly. 3,000 registered users over the span of a week later, I really started feeling how important it was to be able to implement my own ideas. While my engineer was willing to implement, it would take time--time my users were understandably not going to wait before returning en masse. Taken with the fact that Neovella needed users constantly present in order to fuel appreciable use of the service, it was not a good time. We hockey-sticked for maybe three days, and then flattened significantly.

Still, a community from the SomethingAwful forums continued to write stories together on Neovella. This worked because a community could be maintained at all. Neovella had no forum system or place where people could discuss and plan stories without being actually inside of them (where they had a chatroom). We set up email notifications for additions to stories, and that helped us continue with traffic and story-writing to this day. By those less fortunate means, we ended up publishing three short story anthologies and a single trilogy. End result? I made published authors out of over 100 of my users, and they really loved the Neovella experience.

By the time we released a new version with many requested features, it had been months later and traffic was already as flat as my checking account balance. Regrettably, I had to deadpool.

Loops and If Conditions

If Neovella had really taken off, I probably would have never learned how to code. If I had not been turned down after a TechStars NYC phone chat due to lack of dedicated engineers, I likewise might not have had to learn how to code. If I had not been rejected by a number of jobs where just light JS work was needed on top of my HTML/CSS skill-set--I'm going to stop right here. I had no choice. I never wanted to become an engineer. But I had to become an engineer.

People ask me how I got started. It was some mix of O'Reilly books, JavaScript blogs, and messing around in console whenever I wanted to verify an idea about something neat I could do with it. I started with JS because I had already played around with JQuery (this reason makes less sense to me now as an engineer than it did then), and I had no idea where to begin with data persistance (databases). The DOM of the browser was a readily-accessible playground/minefield where I could learn visually and understand immediately what my lines of code were doing.

When it came down to it, I found that programming, apart from navigating tricky native objects, was just essentially the art of loops and if conditions, with the occasional mapping of an object (for key in's). There is a lot more to programming, indeed, but the art of logic-arrangement comes down to automated decision making (conditions) and decision execution (iteration/transversal + function execution). Saying that without further explanation isn't going to help me get another full-time engineering job, or many fans in the hacker community, so as a footnote I'll admit that I'm really dumbing it down here.

Living in a Hacker House didn't hurt the process, either. Months after I began ingesting knowledge, my housemate encouraged me to go to the first Angelhack hackathon. 24 hours later, I came out with a scrappy, poorly-made API mashup that let you do twitter searches sorted by Klout scores to decipher (questionably) who knew what they were talking about. It won Klout's API prize, an iPad, which I promptly gifted to my father (the engineer behind Neovella) for Christmas. The positive feedback from that was a good morale boost, and ultimately what translated to my first full-time engineering job at SendHub, as employee #1.

Despite moving on into a career as an engineer, I was stil receiving notifications by email that Neovella users were still contributing to stories that I had been a part of. It really broke my heart that people really wanted to use a product that I couldn't maintain. I even had a user offering to buy ads for me (and he did!), but I had nothing really worth advertising. That left a mark on me.

Two months later, I left SendHub and found myself with some runway to continue my Hacker House bachelor-as-fuck life building out my own ideas to whatever extent I was capable. It was in this time that I found out about NodeJS, a technology which made server-side programming possible in JavaScript, and it was getting more popular by the day. Finding myself in charge of routing and pairing that up with MongoDB which used a JSON-like format, I was back in a groove, akin to my dumbing-down of programming--routing and data persistence were the new conditions and loops, concepts which, once abstracted, fueled my confidence.

So what did I do with these newfound skills? I flew to Boston for AngelHack II with my housemate, and spent a grueling 24 hours data-mining AngelList to win their API prize. To sum that hack up, I found that AngelList's API was mostly useless for third parties, but then realized that they store startups by sequential IDs. Loop upward, check if the entry is public/exists, and mine away! So I found their Klout/Facebook/Twitter, came up with an aggregate score, and placed them on a Bing Map sized accordingly to those scores. AngelView was fun, but a one-off hack for the hack of it kind of thing.

A month later, it was time to find a job again. I applied to just one company, Hyperink, and unlike previous interviews where I might have tripped up in glorious fashion, I seemed to hold my own, and I felt like for the first time in my life I was understanding this whole engineering job somewhat confidently, just half a year after first touching vanilla JavaScript. Since it was e-publishing, my work at Neovella helped, and I received an offer after my second interview.

I was at Hyperink for a total of four months, and while there was given more independence at a job than I could ever dream (short of work-from-home week-round). While they were a Python-based shop, they allowed me to do special projects in Node. I was eventually given permission to single-handedly develop their social "crowd" reader, providing them with an experience instead of their e-reader & PDF formatted offerings. The team was amazing, and the only downside was a daily round trip from Palo Alto to San Francisco (2 hours lost each day) to make it.

While I worked at Hyperink, I attended Angelhack III, where I put together three hacks: a social media feed dashboard for iPad (6 sources), a simplified cloud reader using Facebook & Pearson's APIs, and a silly iPhone app that tracks your location every 5 minutes to help you remember what happened when you were blacked out. I presented for all three apps, and the judges were pretty tired of me by the third.

I ended up winning Facebook's prize, using facebook comments to socially discuss and annotate literature, sentence by sentence.

To put a cherry on top of my awesome experience working at Hyperink, Hyperink is where I met my co-partner-in-crime for PenFM, Katherina Nguyen! It's always good to have an outside perspective on a project I've been working on for a while.

Here's us at Hack for Change, Kat's first hackathon, where we won 2nd place, filepicker.IO's prize (lunch with Mr. [O]G Tan), and 1k in hosting credit from dotCloud (where PenFM is currently hosted!).

Returning as an Engineer: PenFM

After Hyperink, I tried out some new technologies, played around with new APIs, and found myself with some runway and contract jobs to continue on that route for a while. I always knew the day would come when I would re-build Neovella into something much greater than it was, and I felt the time appropriate as any--especially as I had just purchased this pen.fm domain. Working at an epublishing company for a few months will teach you all sorts of new tricks and techniques based on open-source tech, especially how to not be intimidated by it.

At first, I thought I was just working on PenFM because I wanted to scratch it off my to-do list. Before I knew how to code, there was Neovella, written in C# and taking almost a year to come together. Once I learned, I wanted to rebuild it from scratch, in NodeJS, and make it real-time as hell like it deserved to be. It took me a week to rebuild the Neovella turn-based co-writing experience, and then the rest of a month to expand it beyond that. At this point, I let a friend and former Neovella user who loved the death out of the service know about it, and he was pretty impressed. And that was what it was all about: the users--and not just those from Neovella, but anyone who may be too intimidated to self-publish and get their work read. With these new technical powers, I want to make PenFM into something that can empower writers and aspiring writers to make their voices heard beyond the faded notepads on their desks.

Returning as an engineer is a bizarrely positive experience. It lets me develop with the user in mind, fearlessly. Before, I would care about the users but be unable to help directly. Now, I take a feature request and plug it within an hour or two. Will there be bugs to pay? Sure, but I get to make a difference every day, no matter how small. If there's anything that's more difficult now than before learning to code, it's being that helpless idea person.

1 of
Returning as an Engineer
Author
Msiedz 100%
Info
Genre
Non-fiction
Description
I started Neovella after graduating, naive and inexperien...
Origin
10/29/2012
Updated
10/30/2012
Stats
Readers
7033
Words
2174
Likes
140
Comments
68