Tech geek, dad, runner, and all around good guy. I read more than I write, and believe that no job is worth doing if you can't have fun while you're doing it.
19 stories
·
1 follower

To Serve Man, with Software

7 Shares

I didn't choose to be a programmer. Somehow, it seemed, the computers chose me. For a long time, that was fine, that was enough; that was all I needed. But along the way I never felt that being a programmer was this unambiguously great-for-everyone career field with zero downsides. There are absolutely occupational hazards of being a programmer, and one of my favorite programming quotes is an allusion to one of them:

It should be noted that no ethically-trained software engineer would ever consent to write a DestroyBaghdad procedure. Basic professional ethics would instead require him to write a DestroyCity procedure, to which Baghdad could be given as a parameter.

Which reminds me of another joke that people were telling in 2015:

Donald Trump is basically a comment section running for president

Which is troubling because technically, technically, I run a company that builds comment sections.

Here at the tail end of 2017, from where I sit neither of these jokes seem particularly funny to me any more. Perhaps I have lost the capacity to feel joy as a human being? Haha just kidding! ... kinda.

Remember in 2011 when Marc Andreeseen said that "Software is eating the world?"

software is eating the world, Marc Andreessen

That used to sound all hip and cool and inspirational, like "Wow! We software developers really are making a difference in the world!" and now for the life of me I can't read it as anything other than an ominous warning that we just weren't smart enough to translate properly at the time. But maybe now we are.

to-serve-man

I've said many, many times that the key to becoming an experienced software developer is to understand that you are, at all times, your own worst enemy. I don't mean this in a negative way – you have to constantly plan for and design around your inevitable human mistakes and fallibility. It's fundamental to good software engineering because, well, we're all human. The good-slash-bad news is that you're only accidentally out to get yourself. But what happens when we're infinitely connected and software is suddenly everywhere, in everyone's pockets every moment of the day, starting to approximate a natural extension of our bodies? All of a sudden those little collective social software accidents become considerably more dangerous:

The issue is bigger than any single scandal, I told him. As headlines have exposed the troubling inner workings of company after company, startup culture no longer feels like fodder for gentle parodies about ping pong and hoodies. It feels ugly and rotten. Facebook, the greatest startup success story of this era, isn’t a merry band of hackers building cutesy tools that allow you to digitally Poke your friends. It’s a powerful and potentially sinister collector of personal data, a propaganda partner to government censors, and an enabler of discriminatory advertising.

I'm reminded of a particular Mitchell and Webb skit: "Are we the baddies?"

On the topic of unanticipated downsides to technology, there is no show more essential than Black Mirror. If you haven't watched Black Mirror yet, do not pass go, do not collect $200, go immediately to Netflix and watch it. Go on! Go ahead!

⚠ Fair warning: please DO NOT start with season 1 episode 1 of Black Mirror! Start with season 3, and go forward. If you like those, dip into season 2 and the just-released season 4, then the rest. But humor me and please at least watch the first episode of season 3.

The technology described in Black Mirror can be fanciful at times, but several episodes portray disturbingly plausible scenarios with today's science and tech, much less what we'll have 20 to 50 years from now. These are very real cautionary tales, and some of this stuff is well on its way toward being realized.

Programmers don't think of themselves as people with the power to change the world. Most programmers I know, including myself, grew up as nerds, geeks, social outcasts. Did I ever tell you about the time I wrote a self-destructing Apple // boot disk program to let a girl in middle school know that I liked her? I was (and still am) a terrible programmer, but oh man did I ever test the heck out of that code before copying on to her school floppy disc. But I digress. What do you do when you wake up one day and software has kind of eaten the world, and it is no longer clear if software is in fact an unambiguously good thing, like we thought, like everyone told us … like we wanted it to be?

Months ago I submitted a brief interview for a children's book about coding.

I recently recieved a complimentary copy of the book in the mail. I paged to my short interview, alongside the very cool Kiki Prottsman. I had no real recollection of the interview questions after the months of lead time it takes to print a physical book, but reading the printed page, I suddenly hit myself over the head with the very answer I had been searching my soul for these past 6 months:

Jeff Atwood quote: what do you love most about coding?

In attempting to simplify my answers for an audience of kids, I had concisely articulated the one thing that keeps me coming back to software: to serve man. Not on a platter, for bullshit monetization – but software that helps people be the best version of themselves.

And you know why I do it? I need that help, too. I get tired, angry, upset, emotional, cranky, irritable, frustrated and I need to be reminded from time to time to choose to be the better version of myself. I don't always succeed. But I want to. And I believe everyone else – for some reasonable statistical value of everyone else – fundamentally does, too.

That was the not-so-secret design philosophy behind Stack Overflow, that by helping others become better programmers, you too would become a better programmer. It's unavoidable. And, even better, if we leave enough helpful breadcrumbs behind for those that follow us, we collectively advance the whole of programming for everyone.

I apologize for not blogging much in 2017. I've certainly been busy with Discourse which is actually going great; we grew to 21 people and gave $55,000 back this year to the open source ecosystem we build on. But that's no excuse. The truth is that it's been hard to write because this has been a deeply troubling year in so many dimensions — for men, for tech, for American democracy. I'm ashamed of much that happened, and I think one of the first and most important steps we can take is to embrace explicit codes of conduct throughout our industry. I also continue to believe, if we start to think more holistically about what our software can do to serve all people, not just ourselves personally (or, even worse, the company we work for) — that software can and should be part of the solution.

I tried to amplify on these thoughts in recent podcasts:

 Community Engineering Report with Kim Crayton
 Developer on Fire with Dave Rael
 Dorm Room Tycoon with William Channer

Software is easy to change, but people ... aren't. So in the new year, as software developers, let's make a resolution to focus on the part we can change, and keep asking ourselves one very important question: how can our software help people become the best version of themselves?

Read the whole story
bhansley
2208 days ago
reply
Durham, NC, USA
Share this story
Delete

Will It Work

3 Comments and 13 Shares
'Copy and paste from a random thread on a website' is the hardest to predict, and depends on the specific website, programming language, tone of the description, and current phase of the moon.
Read the whole story
bhansley
2751 days ago
reply
Durham, NC, USA
Share this story
Delete
3 public comments
Cthulhux
2757 days ago
reply
Obviously, Randall has never seen my GitHub code.
Fledermausland
alt_text_bot
2757 days ago
reply
'Copy and paste from a random thread on a website' is the hardest to predict, and depends on the specific website, programming language, tone of the description, and current phase of the moon.
Covarr
2757 days ago
reply
Most unlikely: Inherited code.
East Helena, MT

Metabolism

3 Comments and 20 Shares
I have this weird thing where if I don't drink enough water, I start feeling bad and then die of dehydration.
Read the whole story
bhansley
2751 days ago
reply
Durham, NC, USA
Share this story
Delete
3 public comments
JayM
2752 days ago
reply
hahaha
Atlanta, GA
zenhermit
2752 days ago
reply
Exactly! And that hover text!!!
Calgary
alt_text_bot
2752 days ago
reply
I have this weird thing where if I don't drink enough water, I start feeling bad and then die of dehydration.

There are only 3 types of interview questions. Here are your answers.

1 Share

Now that I’ve read, and re-read The Life-Changing Magic of Tidying Up, I’m more conscious about what I keep and what I throw out. I’m hard-core now. Most birthday cards go in the garbage; we have a lot of birthdays and I saved the cards since when I was five years old, and believe me, I didn’t need to.

But I took a look at this card and I couldn’t throw it out. It’s touching because it is so typical of my husband. He is an ISTP so he’s very detailed about his physical world, he’s accurate and he sees everything. This is a peek inside his brain and it’s so true that it feels intimate.

I put the card in a box to save. And then, because I write about careers, I thought: The qualities of this card are the exact qualities we look for in a job interview. Our goal in an interview is to be so effortlessly true to who we are that the hiring manager can’t help but feel a connection to us.

So I got to thinking that you can divide job interview questions into three types, and each type is a way for you to take control of the conversation and show the interviewer who you are.

1. The Classic Question

Tell me about yourself? or What are you passionate about? or Where do you see yourself in five years? 

Even though each of these questions seems quite different, it’s actually the same question. It means, “Okay. Let’s get started. You first. I want you to do the talking.”

The right answer to all those questions is a story. There is a story of your life that tells people how you got to where you are. There are a million stories within each person’s life. Each story is a true story with a different focus or theme. The focus of the story you tell to answer the question is how everything you did leading up to now has made you a great candidate for this particular job.

Additionally, Herminia Ibarra’s research shows that when we tell stories about ourselves, we look more pulled together -we feel more confident inside and people understand us better. Chip Heath’s research shows that people connect with us best under those conditions. Remember: the point of an interview is to make a personal connection with each person you talk to.

Telling a cohesive story about yourself takes time and talent, and your resume story should match your interview story. (Yes. Every resume tells a story. If you don’t know how to make a cohesive story with your resume, you should get help.)

2. The Brainteaser

How many telephones are in the US? or How heavy is the Statue of Liberty? or What’s a good product for Pepsi to launch next?

Technical candidates often have to take a skills test. Maybe you take something home and write code, or  you write code in the office as a timed test. Finance candidates might create a spreadsheet. There are right answers to those tests. Brainteasers are not asking for a right answer per se.

A brainteaser aims to discover out how you think, or maybe whether you can think in situations where you don’t know everything you need to know to reach a simple answer. But the answer you give is not so important as your approach to getting the answer. Your tactic to finding the answer should match the personality type that will succeed in the particular job you’re applying for. The brainteaser question reveals if you are applying for the type of job that will best leverage your natural gifts. (Not sure about your natural gifts? Take a personality test to find out.)

So, for example, if you are interviewing to be CEO you would probably think in terms of who you’d need to hire to solve the problem.  If you’re interviewing for a statistics position you would want to lay out the exact problem and you might even assign some numbers to variables and start solving.

Neither approach is right or wrong, as long as you are doing the type of thinking in the interview that you want to do in the job. If you are interviewing for a job that is a good match for you, it’s likely that you’ll give an answer that is appropriate for the type of thinking the interviewer needs to see.

Think out loud as you work through the problem. This is the consummate “show your work” moment! Also, approach this question, like all other interview questions, as a conversation. Each question in an interview is a way for the hiring manager to decide if he or she wants to spend eight hours a day with you.

3. The Behavioral Question

Can you tell me about a time you had a fight with a co-worker? or What would happen if you disagreed with your boss’s direction? or What is your weakness?

These questions might sound wildly differently, but they all ask for pretty much the same thing: Tell me a story. And if you have a resume that is written to make you shine, then each bullet on your resume is a tiny story.

Each question in a behavioral interview asks for a description of a moment in time. For example, if you tell someone your weakness is math, that’s not nearly as informative as how your weakness came up in a single situation in the context of work.

Each good story has a beginning, middle, and end, and this is true in a behavioral interview as well. So tell about the situation, and the conflict you faced, and how you overcame it. The story should take about a minute to tell.

Your ending will have a quantified achievement as the kicker (delivered ahead of schedule, increased revenue 10%, etc.) And you’ll have them fresh in your head because on a well-written resume every bullet is a quantified achievement. (Don’t tell me you have a career that does not lend itself to this sort of achievement. Every career can be framed as quantified achievements. You hire me to show you how to do that if you don’t already know.)

This means that every behavioral question is an opportunity for you to tell a good story that will make you stand out.

The only questions are asking what you want (the first questions) how you think (the second question) and how behave (the third). If you have good self-knowledge, the answers to all three of those questions make sense together. And that, really, is what makes you likable.

Now that you realize how few questions there really are in an interview, you can memorize your answers. Make them perfect. It will feel calculated, yes, but people who have great careers got them by being calculating.

Taylor Swift has been accused of being calculating in her interview answers. And in response she said, “You can be accidentally successful for three or four years. Accidents happen. But careers take hard work.”

 

 

Read the whole story
bhansley
3105 days ago
reply
Durham, NC, USA
Share this story
Delete

A Look Back at 2014

1 Share
2014 was quite a year.   Thinking back to December 2013, I cannot believe that so much has happened.    Let’s take a look at the major HIT events that shaped 2014 and what they portend for 2015

Affordable Care Act - despite challenges with healthcare.gov and state health insurance exchanges, the notion of moving forward with an open insurance marketplace and accountable care got traction.   The IT needed to meet the needs of the patient centered medical home, the ACO, and Care Management spawned a new type of software - the care management medical record.    Not many products exist and none are mature, but HIMSS was filled with promises of workflow engines, population health, and protocol driven care management tools.   2014 made it clear that the EHR is just a starting point and over time there will be a new generation of tools used by clinicians and non-clinician extenders to keep people healthy, not just record their encounters when they’re sick.   Hopefully we’ll see maturing products in 2015.

Meaningful Use/Standards - 2014 was really the first year we could take a look back at the Meaningful Use program.    I think we can conclude that Meaningful Use Stage 1 was generally perceived as a positive step, laying the foundation for EHR adoption by hospitals and professionals.   Stage 2 was aspirational and a few of the provisions - Direct-based summary exchange and patient view/download/transmit required an ecosystem that does not yet exist.    The goals were good but the standards were not yet mature based on the framework created by the Standards Committee.    At this point the only way out of the readiness/adoption challenge is to allow more time for the ecosystems to develop by changing the attestation period in 2015 to 90 days.    Although Direct/CCDA was a reasonable starting point for 2014, the future belongs to FHIR/REST/OAuth, which are going to be much easier to implement.    We need to be careful not to incorporate FHIR into any regulatory program until it has achieved an objective level of maturity/adoption

HIPAA Omnibus Rule - 2014 saw increased federal and state enforcement of the HIPAA Omnibus Rule with record fines for security breaches at a time when the nature of security attacks became increasingly sophisticated - witness the Home Depot, JP Morgan, and Target breaches as well as denial of service attacks on numerous healthcare and non-healthcare organizations.     Healthcare as an industry directed substantial resources toward improving the security protections of their networks in 2014.    It will be interesting to look back at this era in several years and ask the question if million dollar fines for stolen laptops/smartphones was a helpful policy or if other enablers such as the evolution of security technologies and culture change were more effective.

ICD10 - ICD10 was delayed until October 1, 2015 and it’s clear that stakeholders are divided about the concept.   One the hand, professional coders correctly identify that ICD9-CM is incomplete and does not include several important disease states.   On the other hand ICD10-PCS is so complex that it is unlikely clinicians will  not be able to produce the documentation needed to justify a code.   The cost to the country post implementation in lost productivity will be enormous.    If I could ask for a “do over” I would suggest that clinicians use SNOMED-CT to record clinical observations and that in a world of global capitated risk, not fee for service, the notion of using ICD for billing is no longer relevant.  ICD was intended as an epidemiological classification, not a billing vocabulary.   Only the United States uses ICD for billing and only the United States has proposed ICD10-PCS.   2015 will give us the next chapter in the debate.

In all industries, the concepts of social networking, mobile technology, analytics, and cloud hosting became increasingly important in 2014 for business and personal applications.    Healthcare has been slow to adopt these techniques but increasing cost pressures and new business models are motivating healthcare IT departments to embrace cloud services.   I believe that 2015 will be a tipping point, with increasing use of social networking concepts for care team communication, smart phones/tablets becoming the preferred tool for clinical work, real time decision support based on analysis of similar patients becoming mainstream, and cloud-based EHRs becoming essential for the agility of merging/changing organizations.  

2014 was a year of increasing stress for CIOs, accelerating workflow change, regulatory burden, unquenchable demand for automation, and rapid technology evolution.  2015 may see less new regulatory requirements, more mature products in the marketplace, and an increased role for the private sector to innovate.    As always, I remain optimistic for the future and am ready for the challenges ahead.
Read the whole story
bhansley
3400 days ago
reply
Durham, NC, USA
Share this story
Delete

Apple Enters the Healthcare Software Ecosystem

1 Share
Here's a guest post by Dr. Henry Feldman from BIDMC's Division of Clinical Informatics:

I am writing this from the Apple Worldwide Developer Conference (WWDC) today here in San Francisco, where I got to substitute for John Halamka at the Keynote (now I keep having urges to raise Alpacas); John missed the most amazing seats [front row center!]. There were many, many, many (I can not recall a set of software announcements of this scale from Apple) new technologies that were announced, demoed and discussed, but I will limit this entry to a few technologies that have implications for healthcare.

If you remember the state of digital music, prior to the introduction of the iPod and iTunes music store, that is where I feel the current state of the healthcare app industry is at; there is no common infrastructure between any of the offerings, and consumers have been somewhat ambivalent towards them as everything is a data island; switching apps causes data loss and is not a pleasant experience for patients. Amazingly there are 40,000+ apps on the App store at Apple alone, showing huge demand from users, but probably a handful can talk to each other in a meaningful way; this is both on the consumer and professional side of healthcare.

Individual vendors such as Withings have made impressive strides towards data consolidation on the platform, but these are not baked into the OS, so will always have a lower adoption rate. If we take the music industry example further, Apple entering a market with a full push of an ecosystem at their scale, legitimizes the technology in ways that other vendors simply can’t match. In their introduction, Apple introduced 2 healthcare specific items, the Health App and HealthKit Framework.

The Health app is a central data repository on your phone that any HealthKit enabled app can deposit data into or read data from, under user control; it also serves as a display dashboard for the user of this data repository if they don’t want to use the source app. This will allow patients to aggregate their fitness and health data from a myriad of sensors (e.g. FitBit) and sources (say a PHR app) into a single place.

They showed using this as a gateway to broker between health goals, such as blood pressure control, set up by a physician on the Mayo Clinic’s EHR and then tying that back to the patient via the PHR app/Health App linkage. Since the patient can push data back once they grant permission to an app, you can imagine as a physician who is titrating blood pressure medications in the home, getting objective data from the patient electronically (the last mile problem). Engaging our patients is both our sworn duty as physicians and over time as we learn to use these tools effectively, will help us help our patients to be more self sufficient; as our mentor Warner Slack always says “the least utilized resource in the healthcare system is the patient!”

HealthKit is to me in some ways more significant, as it allows a common platform internally for health apps allowing for common data formats, data exchange, storage and presentation to the patient; Apple again is establishing an ecosystem here. Having centralized support for healthcare data, makes applications more interoperable and useful. Several of the healthcare vendors, such as Epic (I was seated near their CTO who was pumped), who were near me were very excited about integrating this framework into their apps. This will raise all the healthcare apps to a new level, and greatly increase utility and innovation around these apps.

There is some very legitimate concern for providers, that this will enable an avalanche of data (on top of the tsunami we already are being washed by) from patients, and we will have to figure out how to cope with this. With easier access to sensor data, patients will have to be educated, that not all changes are pathologic. A million years of evolution has allowed your body to control things like heart rate robustly, so we will need to be very specific in our education to patients about what they should and should not get concerned about. For patients undergoing fitness programs, this is a superb way to track fitness and can report objective improvement metrics to their healthcare provider or trainer.

Now for some non-healthcare specific technologies, that are very useful in healthcare.

TouchId, the technology behind the fingerprint login on the iPhone, is now open to 3rd party applications. This means that instead of relentlessly typing a password (which of course gets longer/more complicated with each policy change) you could for instance sign orders or login to your EHR; I type my password well over 100 times per day into the EHRs that I use, which gets frustrating, and can probably be quantified in lost productivity over all the docs multiplied by all the time spent reentering passwords as a serious sum of money.

A tiny change is that you can now respond to text messages and accept/decline appointments without leaving your current application. Why is this significant? While for many users this is a convenience, in healthcare this may prevent medical errors. John has previously cited a case of distracted computing occurring in the middle of creating orders for a patient, and leaving the task without signing orders, etc. Staying in context makes this error much harder to do.

Finally I will talk about Swift. Apple has created a new object oriented language, called Swift, which as they phrased it “took the C out of Objective-C”. This excited me as it reduces many common programming errors that are easy to create in C (for non-programmers, C is a language where you can do anything you gosh-darned please; and with great power comes great responsibility). They seemed to have stuck in some of the automagic of a language like Python with some of the strictness of Java, and then added modern power features, all in a very fast compiled language (under the awesome LLVM compiler).

In summary, I think we will look back on the WWDC 2014 as a day when Apple really brought the healthcare app industry to a whole new level, especially on the consumer side, and also putting in a robust infrastructure for professional and consumer applications to exchange data. This is a 1.0 release, and undoubtedly it will grow over time, and we will see creative uses, which will inspire all of us to grow with it. Similar to digital music, we are at the beginning of a major shift, and we will have to see what develops out of this, but getting consumers excited about healthcare data, and getting vendors excited about sharing data with each other via the patient, has got to be a good thing.

Read the whole story
bhansley
3612 days ago
reply
Durham, NC, USA
Share this story
Delete
Next Page of Stories