23,248 reputation
659105
bio website
location Mountain View, CA
age
visits member for 4 years, 2 months
seen Dec 13 at 5:43

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.

Dec
13
comment How should I handle logger failures?
What if you end up with timeouts sending to syslog or I/O errors writing to a file? You could still be making the problem worse, if the failures are due to a congested network or running out of disk space. This isn't exactly a holistic solution; you need to consider the possibility that there may not be any safe way of logging the errors. It's not that dangerous to log to your own logger as long as you incorporate cycle detection, exponential back-off, etc.
Oct
29
awarded  Nice Answer
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.