22,578 reputation
659104
bio website
location Mountain View, CA
age
visits member for 4 years, 1 month
seen Oct 5 at 2:19

Software engineer at Google. Not an enterprise developer anymore. :-)

Stuff I've used or currently use:

  • JavaScript, jQuery, etc.
  • AngularJS, Knockout, and similar MV* frameworks
  • .NET/ASP.NET/MVC/Web API
  • NServiceBus, RabbitMQ/EasyNetQ, pub/sub frameworks
  • Selenium/WebDriver, SpecFlow, various BDD tools
  • A bit of D3
  • A bit of Java
  • Delphi
  • SQL Server, SQL CE
  • NoSQL (MongoDB, RavenDB, Redis, etc.)
  • Oracle (although I try to forget)
  • Web Services (REST, SOAP, WSE, WCF)
  • Web Applications (MVC, MVVM, JS)
  • Embedded Systems (HCxx, PIC, etc.), but that's ancient history

Other things I know about:

  • SOA and Distributed Systems Design
  • Web security
  • UI Design & Data Visualization
  • Project Management (Agile & not-so-Agile)
  • Software QA and test automation
  • Doing tech talks that don't put everyone to sleep
  • etc.

Oct
4
comment What is the benefit of a function without parameters which only calls another function
You seem to be advocating against OOP here, where the fundamental principle is "tell, don't ask". Following the advice here is what normally leads to code riddled with useless "getFoo", "setFoo" and "execute" calls. OOP is about combining data and behavior, not separating them.
Oct
3
answered What is the benefit of a function without parameters which only calls another function
Sep
30
awarded  Explainer
Sep
24
awarded  Autobiographer
Sep
23
comment Why don't developers make installation wizards on linux?
@JörgWMittag: Windows has even had chocolatey for a while now, for people who really want that style of package management. It's not very popular, and that's for a reason.
Sep
23
comment Why don't developers make installation wizards on linux?
@JörgWMittag: You're just taking the piss now. There were no package management systems in 1994 that did this across the board. There may have been some highly unreliable ones in 2004. It's not Microsoft's or Windows' fault that software publishers mess this up; IIS has been completely scriptable since Windows Vista (ironically, using the aptly-named Package Manager). And for application package management, NuGet is pretty mature.
Sep
21
comment Why don't developers make installation wizards on linux?
@MichaelHampton: Do tell. As I said, I can't recall seeing a single one in the last 10-15 years. Even some of the ridiculous candy-apple installers like Asus AI Suite still uses MSI under the hood (as evidenced by its appearance under Add/Remove Programs). What highly-essential IT or business software does not use Windows Installer at some level?
Sep
21
comment Why don't developers make installation wizards on linux?
Uh... if Windows doesn't have a "working package management system", then what is Windows Installer? I've never heard of developers having to re-implement this, at least not in the last 10-15 years.
Sep
21
awarded  Yearling
Sep
19
comment So Singletons are bad, then what?
@Peter: Those two concepts aren't necessarily related. In the SOLID guidelines, they are the "D" and the "I" respectively. Both good practices, both independent of each other.
Aug
12
awarded  Popular Question
Aug
11
awarded  Guru
Jul
31
comment Generally speaking, is it better to make all the functional parts or get UI working first - or a mix of the two?
@Dunk: Architecturally, yes, presentation is generally encapsulated and kept separate from other concerns. But I said product development, not coding. Product development is a process that involves multiple skill sets, business departments and stakeholders, and the UI is the part that (almost) all of them will want to get involved with. Accordingly, if it's done in a business silo, then you'll usually end up with an unusable product, and if it's done in a technical silo, you'll usually end up with a design that at best requires terrible hacks, or at worst can't be implemented at all.
Jul
29
answered Why doesn't the HTML\DOM specification allow hyperlinks to set an accept header?
Jul
29
comment In general, should an organization adopt a single methodology or decide on a per-project basis?
@svidgen: I, too, hear this about projects in highly-regulated industries. I've also worked on some, and my experience agrees with 6-9 months as the practical limit; one went on longer, and after about 1 year it totally derailed because the PMs couldn't figure out how to manage all the changes. In my experience, these projects you are referring to typically stick to the regulatory issues as the requirements, and let the rest fall into "implementation", whereas formal iterative processes would have a much larger "design" scope - larger, but also more spread out over time.
Jul
29
comment In general, should an organization adopt a single methodology or decide on a per-project basis?
@svidgen: The only projects that don't require iteration over the design are very small projects. In real-world projects lasting more than a few man-weeks, the realities of implementation (including integration/interop, library issues/limitations, not to mention changes in the business and operating environment) make that moot. In 11 years, working for or with 6 different companies, I have never seen a project where the design did not change in some way. Usability testing alone pretty much breaks that model.
Jul
29
comment In general, should an organization adopt a single methodology or decide on a per-project basis?
@svidgen: And that last thing you just described is, in fact, the broken Waterfall model. Models like Spiral and RUP do permit iteration on the requirements and design. The "design everything up front" strawman waterfall model can work... on projects less than 1 month long. But then again, so can any process, including no process at all.
Jul
29
comment In general, should an organization adopt a single methodology or decide on a per-project basis?
@svidgen: Waterfall was, in fact, described as entirely non-iterative. The term was first coined by Royce and he used it specifically to describe a non-iterative process, which is broken for software development. You can verify this if you look up Royce. It's more recently been used to describe, basically "anything non-Agile", sort of like how "nosql" means "anything not SQL", but that really only serves to confound the issue, since every process is different.
Jul
29
comment In general, should an organization adopt a single methodology or decide on a per-project basis?
To put it another way, Agile methods design features up front, waterfall tries to design systems up front (and fails). Even the "good waterfall" methods like RUP concede a certain amount of iterative design.
Jul
29
comment In general, should an organization adopt a single methodology or decide on a per-project basis?
@svidgen: It's a common misconception that Agile methods eschew "design up front". What they eschew is "big design up front", heavy emphasis on the "big" - as in trying to design everything about a 10-million LOC system before writing a single line of code. There is supposed to be a design phase (called "planning") at the beginning of every sprint, and it is supposed to follow a particular architecture or a set of architecture guidelines. The number of projects that requires everything to be designed up front is far smaller than most business executives would like to believe.