DaedTech

Stories about Software

By

The Tech Lead Role: Lessons from Ancient Rome

 

Julius Caesar, Mark Antony, and Cassius walk into a bar, and the bartender asks them what they’ll have. “3 beers!” Caesar proclaims. “2 beers,” whispers Cassius.

 

Because I’m not a historian, I have the luxury of making spurious historical arguments that suit my purpose. I can even bring in Star Wars if I want to. For those of you only passingly familiar with the story of Caesar, he was the pivotal, popular, and controversial figure around which the Roman Republic became the Roman Empire. He was also the obvious inspiration for the scene in which Chancellor Palpatine becomes Emperor Palpatine, causing Padme to remark, “so this is how liberty dies… with thunderous applause.” Caesar was a popular and extraordinary general that imposed his will on the increasingly ineffectual Roman Republic, essentially replacing it with a more unified and centralized imperial government. That is, until his friends in the bar assassinated him in the name of “liberty.”

Caligula Read More

By

Salary Negotiations: Win by Losing

I’ve been reading a book called, “The Four Hour Work Week” lately, and the timing is pretty interesting. In the book, Ferris outlines a positively cold-blooded plan to seize control of your life and career using an approach that he calls “Lifestyle Design.” For me, the timing is interesting because “lifestyle design” is a good way to describe the way that I’ve been re-shaping my life over the last several years, thinking in terms of things that I want to be true about my life (e.g. “I should be able to go where I want when I feel like it and work from wherever”) rather than my career (e.g. “I wanna be a SENIOR Architect”). It also reinforces and then some my desire to focus increasingly on passive income. So, basically, reading this book for me is sort of like a gigantic pat on the back: “you’re on the right track, Erik, but you should double down!”

You should buy and read this book. Seriously. It’s, at times, audacious to the point of discomfort, and it can feel a little Amyway-this-is-too-good-to-be-true-ish (though it probably isn’t), but he makes some incisive observations that will rattle you and alter the way you think of the corporate world… like I’m about to do (I hope). Some of the inspiration for this post is derived from my experience (particularly the focus on programmers, which he doesn’t do), and some of it from the book. So, without further ado…

The Hard Truth

Salaried, exempt employment is an atrocious economic deal, especially for programmers. Weird as it sounds to say now, I’m not saying that your employer is screwing you nor that you shouldn’t be a salaried, exempt employee. I actually rewrote that first sentence several times, trying to be a little less blunt, but it is what it is. It’s not a value judgment and it’s not intended to be click bait or offensive — it’s just the stark truth. Let’s go through some numbers, to put an exclamation point on it.
Read More

By

Lifting the Curse of Knowledge

public ActiveProduct(Product product, StringVersion driver, Side es)
{
    Side = es;

    try
    {
        if (product == null)
            throw new Exception("Can't create an active product from a null product");

        Logger.LogTimeStudyStart("ActiveProduct create");

        if (driver.IsEmpty())
            CurrentDriver = product.Driver;
        else
            CurrentDriver = driver;

        _Device = Session.Instance.DeviceManager.CreateHI(es, CurrentDriver.ToString());
        _Device.ConnectionStatus += Device_ConnectionStatus;
        _Device.BatteryStatus += Device_BatteryStatus;
    }
    catch (Exception ex)
    {
        ExceptionHandler.HandleException(ex);
        throw ex;
    }
    finally
    {
        Logger.LogTimeStudyEnd("ActiveProduct create", "ActiveProduct: Creating " + driver);
    }

    State = ActiveProductState.Simulated;
    Environments = new SortedList<string, Environment>();
    this._Product = product;
    _Options = product.AvailableOptions;
    AvailablePrograms = new ProgramSlots(this) { HIStartIndex = 0 };
    AccessoryPrograms = new ProgramSlots(this) { CanRemoveOverride = true, StartIndex = 4, IsAutoShifting = false };
    VirtualPrograms = new ProgramSlots(this) { IsVirtual = true, CanRemoveOverride = true, SlotConfig = Limit.None };
    SlotCalculator = new ProgramCalculator(this, false);
    VirtualCalculator = new ProgramCalculator(this, true);
    DFS = new DFSCalibration(this);
    Accessories = new Accessories();
    PowerBands = PowerBands.Unknown;
}

As most of you know, one of the biggest anti-patterns when you’re instantiating program slots is to forget to set CanRemoveOverride to true. But what you probably didn’t know was that the SlotConfig is — Just kidding. I lifted this from a post I wrote almost 3 years ago about legacy code I was working with then. I have little more idea than you do what any of that means.

Read More

By

Performance Reviews Simplified

If you were to ask people in the corporate world about the most significant moments of their careers, a lot of them would probably talk about annual performance reviews. That’s a curious thing. Anyone who talks about performance reviews when asked this question is not talking about an idea they had that saved the company hundreds of thousands of dollars or about rescuing a project that had gone sideways. Instead, their careers were defined sitting in a room with their managers, going through a worksheet that purports to address how well they’ve matched up against the company’s ‘values.’

FriendlyBoss

Read More

By

10x Developer, Reconsidered

Unless my memory and a quick search of my blog are both mistaken, I’ve never tackled the controversial concept of a “10x developer.” For those who aren’t aware, this is the idea that some programmers are order(s) of magnitude more productive than others, with the exact figure varying. I believe that studies of varying statistical rigor have been suggestive of this possibility for decades and that Steve McConnell wrote about it in the iconic book, “Code Complete.” But wherever, exactly, it came from, the sound byte that dominates our industry is the “10x Developer” — the outlier developer archetype so productive as to be called a “rock star.” This seems to drive an endless debate cycle in the community as to whether or not it’s a myth that some of us are 10 or more times as awesome as others. You can read some salient points and a whole ton of interesting links from this jumping off stack exchange question.

Read More