About
About This Blog
Hi! I'm Suraj and I blog about building small-data software systems. From time-to-time I'll venture into other topics. This is a journey; there's things I've figured out and problems I'm still grappling with. The solutions I propose are the result of perseverance, retrospect-and-rebuild, and intensely focused debate with seasoned colleagues. I share these solutions in high fidelity because, as a consumer of technical writing, I've experienced my fair share of content having implementation gaps and hand-waving. My style is direct and honest with kindness and empathy. I sincerely hope readers will use the comments feature on blog posts to engage with the content. Comments can be anonymous! So please validate, augment, critique, and question-away!
That!
"That!" is pointing to something, some quality or outcome for a system, and knowing it's what we want. Getting to that moment is work in itself!
But How?
"But How?" are the details about how to achieve these desired qualities or outcomes in a good way (e.g. end-to-end, reliable, scalable, flexible, maintainable).
About Me
I love building software. "There has to be a better way" is my mantra and what motivates me to keep investing in the development and refinement of frameworks, utilities, conventions, automation, and project/product management methodologies. I prefer to work on very small teams of bright, hardworking people who love and care about what they do and are like-minded in the pursuit of betterment.
In my dream scenario, I retire when I've hit a cadence where 80% of my team's time is spent understanding what needs to be done (e.g. the business problem, customer pain points, product requirements), and 20% of time is spent on doing the work. A colleague likened it to an expert carpenter walking into a well equipped and well organized shop. She starts the day talking to a customer, asking questions and probing about the needs. By the afternoon she has a sketch of the piece to build. With the few remaining hours in the day, she gets to work, adeptly pulling tools as needed to stitch together the raw materials. There's no pause or hesitation in the process and she flows right through it. How the piece should be built is just the application of a predetermined set practices for building that kind of piece. Thinking about a day like this makes me smile.
My language of choice is C#. I live in New York City with my wife Lindsay, and my daughters, Lila and Kaia. Being a good husband and father is always my top priority.
My Career Thus Far
I wrote my first program at 15 years old in BASIC on an Apple IIe for a high school programming class. Between then and when I graduated from high school I spent loads of time in Turbo Pascal, DBASE, and VBA (MS Access), for school and for summer jobs working on membership management software for trade associations.
I majored in Computer Science at Brown University. It was an awesome way to experience college - intense problem solving and many late nights in the debugger. Among the many highlights was exposure to both object oriented and functional approaches to design, along with theoretical computer science and machine learning. I coded in Java (v1.x!), C, C++, Perl, and Scheme. Halfway through college, I paused to build a startup called TheWorkZone during the Dot-Com boom. After the melt-down, I studied management at the University of Edinburgh and completed my CS degree while incubating a distributed computing stock-price prediction startup called MoneyBee.
I was subsequently hired by Microsoft and I headed to Seattle. There, I shipped Microsoft Office 2003 and 2007, laid the groundwork for 64-bit versions of Office. I also worked on v1 of the Microsoft Office Web Apps. I then left Microsoft and founded Winged Foot Capital, a single family office. At Winged Foot I managed internal strategies for the alternatives portfolio, built and ran a quantitative equity market-neutral strategy, and had my hand in operations and marketing.
Since 2013, I've been CTO and a board member of CoMetrics, a software co-op that enables independent businesses to benchmark themselves against their peers. These benchmarks are used to identify specific areas to focus on to improve performance, using data to inform decisions, instead of conjecture. I was brought-in to help turn-around and scale the business. In addition to technology, I've had my hand in re-defining the mission, culture setting, strategy, equity structuring, product development, sales and operations.