on Sohan's Blog
2024: Optimism
2022, Oh My!
2021 → 2022
Open-source: If You Build it Right, They'll Come
UI SDK Design Principles
Onboarding as a New Engineering Manager
Software Architecture - Topic 6 - Slack and Microsoft Teams
Software Architecture - Topic 5 - MongoDB
Software Architecture - Topic 4 - Redis
Can I Have a Career as a Frontend Engineer?
Software Architecture - Topic 3: Writing
What Drives Me?
Software Architecture - Topic 2: People
Software Architecture - Topic 1: Delightfulness
"you're unfrogettable"
A Tribute to Time Travel APIs in Ruby on Rails
Tips for Great Developer Demos
Where to Learn: 10 Ways I Do
Learn to Get and Give Feedback
My YouTube Playlist for Leadership
Difference Between Managing One Team Vs. Many
Communication Hacks I Learned From Job Interview Feedback
Context
Change
When I Applied KonMari to My Calendar
People Management and Diagnosing Low Performance
I Just Love to Read Code
Working With Me
How About Full-Stack Micro-Services?
Notes from The VoxxedDays Banff, 2019
Home
What We Learned About Feature Flags in Five Years
Software Architecture is all about Ugly Boxes and Lines - My Wishlist
All Talk No Show: Software Architecture
Play at Work
Internal Trainings
Polyglot YYC 2019: My First Unconference
Micro Design Critic: Microsoft Word vs. Apple Pages
Exception Handling Anti-patterns
“Ah, how good it is to be among people who are reading.”
How am I Developing the People I Support as a People Leader?
Ruby on Rails: Database Migration and Downtime
What I Learned from Grad School about Innovation?
Headless CI
The PhD Project
On Reference Checks: Don'ts
So you want to be a software developer. Where to start?
Why do you want this new job?
2017 and beyond
Annual letter
RailsConf 2015
Rails: Please include a JS test runner
You Can Haz Automated REST API Documentation
2015
Lessons Learned: Entrepreneurship and Innovation Course
What's wrong with the default alert rendered by the browser?
100 Miles, a 100 Miles...
50 Miles!
On Keeping Things Simple
Monolith vs Microservices
100 Miles in 50 Days Challenge
Hosting a Hands-on Session: Lessons Learned
AngularJS: Refresh or Die
The Year 2014
Configure Me Not
Introducing Asset Pipeline to Older Apps?
Career choices: Should I take this job?
Will You Put That Cell Phone Away?
Algorithms Need Better UI
AngularJS is Very Productive, and Cool too!
Released streamy_csv gem
Generating and Streaming Potentially Large CSV files using Ruby on Rails
Simplicity and Client-Side MVC
MicroOptimization Trap
Unconventional Conventions
Call me Sohan and Ask-Me-Not about S M
Implementation Challenges with a Multi-Tenant/SaaS Database
Interesting User Interaction Data on Dashboard Widgets
MvcMailer and Open Source Happiness
Solution Architecting Using Queues?
Random Data in Tests
Practical API Design Challenges for Client Side MVC
Are ActiveRecord Callbacks Any Good?
Rejecting Because It Didn't Work Last Time
On ActiveRecord Query Enhancers
MongoDB is Abusing JSON!
Hybrid Persistence
How much to validate?
What Programming Language Should I Learn in 2013?
The Myth of One Assert Per Test
Readable Unit Tests
Unit Testing and Sleep
Seed Data in a Rails Project
ORM or Not?
Development Environments and Dependency Hell
Joined Sourcefire
Pair Programming vs. Code Reviews
Database Design: Sorting by Concepts on Nullable Fields
MvcMailer new API
LoveJS Presentation at CAMUG
Deploying a Java Application Using Capistrano
Design of a MongoDB Analytics Database
Deploying to TV Screens
My Take on Client-Side MVC
Are You Still Parsing HTML Element Ids?
Object Versioning is an Open Design Problem
Care Driven Development: Javascript
Enterprise Software Projects: oh, yeah!
Aligning an HTML DIV Inside Another One
Using instanceof is mostly a Code Smell
Nightly Build is a Warning (or Horror)
The Perils of Soft Delete
Hardcoded URLs in Javascript are too Slippery
Excess of Private Methods is a Code Smell
How to Extend a Ruby Module?
Quiz: C# Async and Await. What is the Output of this Code?
Should You Unit Test Interaction with Static Methods?
How to list all classes that include a module?
Should you unit test methods with a lot of mocking?
Ruby present? Method
Constructors Are Methods, too!
How to Annoy Your Customers? Learn from GoDaddy Account Status Email
Avoid Duplication in Config Files
How Not To Provide Feedback When Doing Code Review
Service API and Exceptions
NuGet - Why Should You Care?
My 2011 Q1 developer roadmap
MvcMailer 1.0 Released
Whats Coming in MvcMailer NuGet 1.0?
ActionMailer 3 - why do you call instance methods as class/self methods?
Social Helpers in ASP.Net MVC3 (Facebook, Twitter, Gravatar etc.)
My Article at CodeProject: MvcMailer
C# Named Parameters Can be Very Useful
2011: Yet Another New Year
DRY - Total 161 Duplicate ArgumentNullException calls in ASP.Net MVC Source Code
Book Review: Jose Valim's Crafting Rails Applications
Ruby - some mysterious language features
Upgrading to Ruby on Rails 3 - beware!
Using nil.to_a or whatever.to_a in ruby
4 design principles
OO Design Dilemma: Auditing Changes Across Hierarchical Objects
Know Your Enemies Before They Kill You!
The Greatest Show on Earth and What Else?
Summer of 2010! Europe, here we come!
Using Authlogic and single access token for API access
flash.now - did you know?
What's up next?
Ruby on Rails Security Review: An Experience Report
Ruby on Rails or Rails on Ruby?
Rails Source Code Walkthrough #1: the ActiveModel Module
Why would you spend $10 to learn to use Basecamp?
Ruby on Rails Interview Questions: Advanced
Ruby on Rails Interview Questions
Uploading files with blog post
Experience notes from a RoR code review job
Home/End key in Mac ( MacBook Pro ) Windows on Bootcamp
acts_as_permalinkable: SEO friendly rails URLs using my first RoR plugin
Added Crummy to generate breadcrumbs for CampZero.com
Sitemap-generator for your Rails App and deployment solution
How to strip html tags, truncate and highlight texts in ruby on rails
How is Rails plugins helping me in developing CampZero.com?
What I learned from my first semester at University of Calgary as a Grad Student?
Lean Thinking: You will probably like to learn the essence of agile
Now reading: Lean Software Development: An Agile Toolkit
Communicating tools for working on remote projects
Web application user interface without any Menu
Showing unread posts/comments: An example of rails ActiveRecord 'touch'
Some useful plugins for RoR projects
The CGI story on agile scaling success on a large project
A new home at Calgary and starting days
Rambling stories from my days @ Code71 : My Takehome
Rambling story from my days @ Code71: My reading list
Rambling stories from my days @ Code71 : Startup days
Rails modeling guide#1: right structure of a ruby on rails model
Rails modeling guide#2: naming convention for ruby on rails model methods
Implementing breadcrumb in rails projects – a clean approach
Lesson#2: Pace Your Sprint Rightly
Lesson#2: Pace Your Sprint Rightly
Its easier to get lost! Would you?
Lesson#1: Going Incremental is Natural!
Unit/Functional Test Rails ActionController filters following DRY
Forget Me Not! Object Oriented Design in Custom Exception
Unit Test eager loading in Rails ActiveRecord association
Implementing Template Method in Rails Controllers Using Module and Mixin
Testing the SyntaxHighlighter Scripts
Pair Programming: How am I feeling?
assert_equal_float : assert_equal between two float objects with precision
Looking at ASP.NET MVC
named_scope : Real life examples from ScrumPad
Design/Code Review: Now, It's time to realize!
Comet and Server Push (Reverse Ajax) technology
Juggernaut on Linux
The RANK() Function for Numbering on Groups/Partitions in SQL Server
Working on a Data Warehouse project
A good example of C# Regular Expression: Implementing InitCap or Titleize/TitleCase using C# and Regular Expression
Asp.Net Membership: How to change a user's password from an admin account without knowing the current password?
Solution to JavaScript File Include Problem From ASP.Net MasterPage
Part 1: How am I IMPACTing following Scrum?
Delving into client side capabilities of ASP.Net Ajax
IMPACTing for agile software development
RowTest Extension for NUnit
Iterative and Incremental implementation of Code Reviews
CruiseControl.Net (CCNet) configuration example for NCover
BDD - My First BDD Code using RSpec in Ruby
Set and Compile using C# Language Version 2.0 in Visual Studio 2008
My Target items still in the 2008 learning Queue
Unit Testing using Mocks - FillWithMocks, Fill all or only selected properties with Mocks using only a single method call
XDocument.ToStringWithXmlDeclaration() - Get the string representation of XDcoument with its Xml Declaration
Simple Wildcard replacement on the Rendered Html of Asp.Net Page
Log4Net SmtpAppender and sending emails with log messages
Comparing with NULL in where clause using Linq to SQL
JQuery - I will consider using it in my future web project
Ninject - Dependency Injection Framework for .Net Objects
[ThreadStatic] - A cool Attribute to Thread Safe static members
Simple Article on REST using WCF
Enable IntelliSense support for Spring.Net objects xml definition
INVEST - Characteristics of Effective User Stories
My Article at CodeProject on LINQ to SQL DataContext CommandTimeout
Read My Article at CodeProject on LINQ to Log4Net Logging
Try the CopySourceAsHTML VS Addin to blog .Net Codes
Page_ClientValidate - Use this Method from Javascript for ASP.Net Client Side Validation
An Article on Unit Testing Events in C# 3.0
How To Set Default Application Wide CommandTimeout in LINQ to SQL DataContext Subclasses
string.GetValueOrDefault() - A Simple Extension Method
Best of Today's RSS from My Daily Feeds
IsNullOrEmpty() - A Handy Extension Method for IEnumerable<T>
My Today's best RSS feeds
Best RSS Feed I have read today
Posts of the day that I liked most
Creating Instances of internal classes using Spring.Net
Logging the LINQ to SQL Generated SQL Queries/Commands
My First Post Using Windows Live Writer
My MCTS Certification
A solution to the problem with creating mocks for interfaces with Generic Methods with NMock
Verify Correct DateTime data in method call using NMock
Mock Internal Interface with NMock2 - Use InternalsVisibleToAttribute
Unity - A Dependency Injection framework from Microsoft Patterns and Practices
Testing Internal Class in .Net C#
What does a Scrum Master really do?
Preserve Ownership, mode and other attributes while copying in Linux
C# keyword 'yield return' - I find it interesting
C# 3.0 Anonymous types - actual type depends on the order of the property assignnments
The Easiest and the Hardest Methods to write unit test for
Unit Testing void Methods - Part 1
Unit Testing void Methods - Part 2
Object Graphs and Dependency Injection
Prerequisites for IID
Two Aspects of Agile Software Development Process