Software Engineering Priorities for Early Stage Companies: Put the Team First

Team first.

Earlier this week I made a pilgrimage up to the Bay Area to visit some mentors – I came seeking advice from entrepreneurs who’ve done work relevant to our interests at MarkedUp, mostly to learn how to address some “known unknowns” that have been keeping us up at night.

One of the people I had a chance to speak to is an experienced CTO and we started talking about development priorities in early stage companies like ours. Mid-way through our meeting we had the following exchange (paraphrased:)

Me: so I’m trying to figure out my priorities in terms of what I personally spend my time working on – I have to juggle recruiting, product, fund-raising, customer development, project management, and working on the actual codebase all myself until we start expanding our team.

CTO: what have you been working on...

Read More

ASP.NET MVC4 Gotcha: Embedded Views and Razor Pre-Compilation

In the course of some of our work on MarkedUp, we discovered an interesting gotcha with MVC4, embedded views, and ASP.NET pre-compilation.

A little back-story:

One of the things we did as part of a major refactoring recently was to pull all of our email templates out of the main MarkedUp MVC4 project and stick them into their own independent assembly – we did this because we anticipated that these templates would have to be shared across multiple web distinct web applications running behind our firewall.

We use ActionMailer to generate our text and HTML emails from Razor templates, and one of the things that broke with MVC4 is the RazorEngine project which was used by ActionMailer.StandAlone to parse Razor templates in non-MVC4 assemblies.

So, what we did in this instance was embed our Razor views directly into the child assembly and wrote our own VirtualPathProvider...

Read More

Seven Unproductive Habits of Startup Founders

Now that I’m running my own company and no longer speak on behalf of Microsoft or anyone else, I feel like I can speak a little bit more freely about some of the things I’ve observed about people at startup companies over the past couple of years.

I worked with close to a hundred companies in some capacity as a Startup Developer Evangelist – some much more closely than others, but nonetheless had a chance to live vicariously a lot of different companies in different markets run by different types of teams with different types of people on them.

Regardless of all of those differences, there’s one thing that a lot of these founders had in common: the less disciplined and experienced founders manage to waste a lot of their time and energy on things that are counter-productive and others that are actively self-destructive.

Here’s seven really unproductive habits that...

Read More

How to Setup a Proper Python Environment on Windows

python-logo.pngOne of the things we have to do at MarkedUp on a routine basis is test the live HTTP endpoints for our data collection APIs, and some of the data structures we upload are multipart-form POSTs that contain some complex objects (log messages with nested exceptions, etc…)

The tool we decided to use to test our API, particularly as our API changes during this early stage of our company, is the amazing Requests library in Python – which makes the process of cobbling together these complex form-encoded objects and testing them against a live HTTP endpoint bearable. I developed an in-house command line tool using Requests, argparse, and a few other built-in Python libraries to make the process of performing endpoint testing easy and repeatable for myself and the rest of the team.

However, given that we...

Read More

New Change in the Windows Store TOS: Any App with the Word “Metro” in the Title is Insta-Failed

I thought this was an interesting side-effect of Microsoft’s decision to surrender on the trademark dispute around “Metro,” so I figured I would reblog this from the official MarkedUp blog.

original link: The MarkedUp Blog - New Change in the Windows Store TOS: Any App with the Word “Metro” in the Title is Insta-Failed.

And here’s an excerpt for you:

So imagine our amusement today here at MarkedUp HQ when Erik reviewed the Windows Store “Before Your Sell Your App” guidelines and discovered this gem in the section regarding how to name your Win8 applications* (emphasis ours:)

Note  Make sure your app name doesn’t include the word metro. Apps with a name that includes the word metro will fail certification and won’t be listed in the Windows Store.

Looks like our friends at MetroTwit and other popular ported WP7 applications (many of which include the word...

Read More

Today I am Leaving Microsoft and Starting my Own Company

I’ve spent my last two weeks at Microsoft wondering how I was going to write this blog post.

Microsoft recruited me off of Hacker News two years ago. In the Summer of 2010 I was still brushing off the ashes of my first failed startup when I wrote a blog post about some of the challenges the .NET community faces with respect to adoption among startups, which subsequently got a ton of attention on Hacker News and inside of Microsoft.

Ultimately, this was the start of an amazing two year journey at Microsoft as a Startup Developer Evangelist. I relocated from San Diego to Los Angeles and built a new life, met scores of wonderful people, worked with some of the absolute best startups on the planet, and honed my skills as a technologist and software entrepreneur exponentially further than they were when I attempted my last...

Read More

Why Front-End Web Development Makes Me Sad, Issue #1092145

I have an internal reporting interface for one of my Windows Phone 7 applications that shows me more or less how much of the app is getting used every day, and I developed the reports using the eternally awesome jqPlot charting plugin for jQuery.

I generate three line plots on my main reporting page by dispatching three AJAX queries on-page, all of which are just a {Start:#date, End:#date} set of arguments. The ASP.NET MVC controller action method that receives the query then builds a time-series for me spanning that range and returns the result set over JSON, which is used to finally render the charts. Basic stuff.

My charts render beautifully in Chrome and Safari, whereas they never displayed at all in IE. I figured it was just an issue with the jqPlot plugin, despite the fact that it boasts great backwards compatibility with IE.

But then I used...

Read More

Taking Risks Requires Practice

And patience. This is intended for people who recognize that a need to change themselves, their environment, or whatever and are having trouble getting started.

Until last month, all of the books in my Kindle collection were exclusively technical.

Whenever I travel for work and spend two hours uncomfortably seated between obese strangers and screaming children, I fire up the iPad and delve into a world of exciting subjects like Spatial Data Analysis in SQL Server 2008, the Ruby programming language, ASP.NET MVC3, iOS development, NoSQL Databases, and so on. Behold the “traveling with Aaron Stannard experience” in its full glory.

Before a business trip to Boulder I loaded up The Flinch in my Kindle collection because it was (1) free and (2) I had read someone somewhere say that this was a life-changing book. Whatever. I set about my business, had a good day of work in Boulder,...

Read More

College: Four Years Later

This is intended for recent graduates who are finding themselves lost in the shuffle as they adjust to the real world, but has advice that is applicable to everyone. Your mileage may vary.

I graduated from Vanderbilt University with a B.S. in Computer Science in May of 2008. I was a Cum Laude student and a member of Sigma Nu (a fraternity.) I rebuilt the student embodiment of IEEE & ACM back up from scratch into a meaningful, attractive organization inside Vanderbilt’s engineering school, and did it alongside some really wonderful and amazing people. I helped rebuild Sigma Nu, lived in the house for a time, and met fantastic people who will be some of my lifelong friends.

The four years I spent in school were life-changing for me and completely reshaped me into a much more confident, balanced person than I was going in. I have few regrets.

The...

Read More

Code Camp Talk: RavenDB vs MongoDB

This past weekend at SoCal Code Camp I presented a session along with my friend Nuri Halperin entitled “Battle of the NoSQL Databases: RavenDB vs. MongoDB.”

I represented the RavenDB team, having used it in production now for a couple of months (and ditched Mongo to do it.) I’ll blog more about the specifics of RavenDB and what it’s awesome at some point in the future, but nevertheless I wanted to post my slides here so you could see the bullet-by-bullet comparison between the databases.

Read More

P.S. Get the latest from Aaronontheweb

Have my most recent essays and articles delivered directly to your mailbox.