Wednesday, December 31, 2025

On Tenure

 We all know the trope about job hoppers.  They're unreliable, lack loyalty, etc.  But what about the employee with 10+ years of tenure?  Often times this person is disgruntled due to years of meager raises and lack of recognition.  Further, they are the epitome of 1 year of experience repeated 10 times.


We all know this person.  They're hard to work with.  Yet, there they are.

What have studies shown about the rat who spends too much time in the maze and never gets the cheese?

Sunday, December 7, 2025

Raptor's Rule

 Find the person in your org who has high impact, and does NOT want the spotlight.  Reward that person on their terms.

My mother in law likes to decide what you want for Christmas.  Don't do that.  Ask the kid what he wants for Christmas.

Only recognizing the people in your org who are making noise is lazy leadership. 

This is called Raptor's rule, because the lizard brain can only see things that move.

Wednesday, November 26, 2025

The dev who's willing to talk

As a developer, there are so many occasions when you'll be lost in the maze, and you need to reach out to a fellow dev for direction.  Devs being devs, they'll oftentimes go to great lengths not to talk to you.

A 15 min zoom call can save hours of fumbling around in the dark, yet we face so much friction in getting someone to agree to it.

"Look at the Jira ticket", they'll say.  Yes, I did, there's not much there.

"Read the documentation", they'll say.  Okay, where is it?  Oh, there it is.  Surprise, the documentation is lacking and doesn't help much.

"Here's a git repo with some samples."  Guess what, your utility apps rarely "just work".

I know, I know, part of being a developer is learning to navigate a landscape with limited guidance. Just figure it out  And we will, eventually.   But at what cost?

As a developer, your value to the company is greatly correlated with your willingness to jump on a zoom call.

There is one team member who's been around long enough to know the secrets of the fire swamp.  But guess what, he's tasked with the most critical projects, under the most schedule pressure.  If everyone bombards him with questions, he'll never get his work done!

We're hiring, we need to grow our team from 5 to 25 developers.  At one point does it make sense to task your most experienced developer with being a concierge to the other developers?  Senior team members provide more value by boosting the productivity of the larger team. Be willing to zoom at a moment's notice.  There's more business ROI there than telling people not to bother you because you're busy with your own project.

I've seen leaders encourage this behavior.  "Don't bother Jeff, he's focused on a critical project and can't be distracted."  Now Jeff has a license to ignore you or tell you to buzz off.

The developer experience is a concept that's gotten a lot of attention these days.  As a company trying to attract and retain from a scarce supply of good developers, you'll need to consider how your organization rates in terms of developer experience.  The pandemic and the rise of remote work amplifies the problem.  

You'll easily boost your developer experience rating if you can appoint an experienced team member to be a concierge, with a hospitable attitude.


You made me this way!

 I've seen enough different workplaces to see a pattern.  The most tenured team members have been molded by that company's culture.  They talk about the old times, back when everyone was free wheeling and shooting from the hip.  The company was young, perhaps just trying to achieve lift off.  

That culture may have been right for the company at that time.  However, the company has achieved escape velocity and is now in a different mode.

Some people grow with it, and some .... don't.

A person may eventually be let go, with the explanation being "you're just not a fit, you don't think strategically,  you shirk process, you don't do things the *right* way, etc".

To which the person may naturally respond, "You made me this way!"

Wednesday, December 30, 2020

Rant 6

Take a business who's core competency is not software/systems, for example a manufacturing company.

This business may have started from humble beginnings, assembling parts in the garage, selling them online.  Eventually, the company needs a website, then an inventory management system.  They'll start with spreadsheets, using Excel to manage and track everything.  

Eventually, they'll find that this doesn't scale.   Next, they'll purchase "my first ERP" system.  One aimed at small businesses.  

Eventually, you hire a person to manage your IT needs, but you watch him closely and give him very little respect.  He wasn't brought in as a business partner, but as a contractor, to do "spot work".  You still haven't realized that your IT needs will be a forever endeavor, an ongoing need.  As much as you want it to be spot work, where you shell out a one time fee and it's "done", you have the sinking realization that it will never be this way.

This single person who keeps IT running is buried, so you hire another.  Then another.  One of them eventually cobbles together a little custom piece of software to solve a specific problem, and WHAM!  You are now in the software business.  And you can never get out of it.

In 2011, Marc Andreesen famously declared that software is eating the world.

Five years after that, software is still eating the world.

If you want to play in this world, and have a development team embedded in your organization, you probably ought to learn how to engage with them, or hire someone who does.

But maybe you don't have to.  Because in 2019, Forbes says that Software Is Eating The World, But Services Are Eating Software.

If, as an organization who never set out to be a tech company, you are frustrated by trying to be one, then just stop.  It's not your core competency, it never will be, and you don't want to pay for it.

Fold up now, and just use 3rd party services.  As they say, if it flies, floats, or fucks, it's cheaper to rent.  If it compiles, deploys, or whines like a prima donna software developer, it's also probably cheaper to rent.

Rant 5

Developers have a reputation for being whiny and entitled.  I'd argue that this is simple economics.  The people who openly criticize management are the people who are not afraid of losing their jobs.

That is, those who can easily find another job are more vocally critical.  If the market for devs was dry, and BA's and PM's were in high demand, suddenly the devs would be quiet and fearful, and BA's would be more apt to call out something as "broken".

Simple supply and demand.  

See "The Dead Sea Effect",


…what happens is that the more talented and effective IT engineers are the ones most likely to leave — to evaporate, if you will. They are the ones least likely to put up with the frequent stupidities and workplace problems that plague large organizations; they are also the ones most likely to have other opportunities that they can readily move to.

What tends to remain behind is the ‘residue’ — the least talented and effective IT engineers. They tend to be grateful they have a job and make fewer demands on management; even if they find the workplace unpleasant, they are the least likely to be able to find a job elsewhere. They tend to entrench themselves, becoming maintenance experts on critical systems, assuming responsibilities that no one else wants so that the organization can’t afford to let them go.

Rant 4

 Adding an improvement to an existing system without shutting off the old way is a classic mistake.  Mature teams and leadership make it a point to replace, not append. 

If you don't have the obligation to be backward compatible, consider yourself lucky enough to be able to shut off the "old way".  In fact, the "new way" should not be considered complete until the old way is completely gone.

Ask yourself, when is the last time you truly decommissioned a component of your technology stack?  If users have multiple ways to achieve the same workflow, this is a smell.

This typically stems from inability to measure the usage of your product.  You're afraid to take something away, because some user might scream that their cheese was moved.  You should know whether or not it's in use with some basic logging and instrumentation.  If you don't have that, then get it.  

Code is not an asset.  Code is a liability. Strive to reduce liabilities. Your users will adapt. 


Rant 3

 Let me get this straight.  You're asking "senior developers" to monitor a help desk that is flooded with incoming "issues"?  And you also want that developer to focus on his project?  And you're mystified as to why you can't seem to 

a) hit a date on these project "commitments"

b) retain any senior level dev talent



Rant 2

 Look around your dev shop and identify anything that qualifies as a "leveling up" or productivity amplifier.  Chances are that if you work for a non-tech company, in a traditional IT cost center, then few of those were initiated by management.  

Automation, CI/CD, IaC, even source control.  Productivity tools like screen sharing, screen recording, wiki's for knowledge sharing, rich chat clients, etc.  These are all typically grass roots efforts where someone had to "fight" for it.  And guess what, that person is no longer with the company, because he/she expended all of their  energy and political capital to put that thing in place.  That team member forced the organization to level up, against its will.


Management will say, "that guy was a pain in the ass".

Rant 1

Here's one flavor of how work gets defined in an IT shop.  Warning, this flavor tastes like shit.

  1. Dream up a feature or capability that you want
  2. Ask an individual developer (not a team) for an estimate on this vague request
  3. Brow beat that developer until you get an estimate
  4. Call that estimate a commitment
  5. Act indignant/surprised when it all doesn't magically come together by this date
  6. Double down on your position.  "If only that lazy developer had worked harder and taken the date seriously"
This is a pathetic excuse for management, and a complete mockery of leadership.  Yet, I'm afraid it is common.  It's what you get when the decision makers have no understanding of software development, and they stubbornly cling to the dream that they can have certainty and predictability.


Low effort networking (the social kind)

Networking.  It's important.  We've all heard about the value of networking.  Some even say that the real value of a Harvard education is the connections you will have made upon graduating, plus access to an alumni network.  After all, are they really teaching math better than any other university?

As a software developer, I had originally thought the value of attending a tech conference came from consuming information about technologies in a classroom type setting.  And I enjoy that.  Oh cool, look, a talk on Clojure and functional programming!  I don't get to use that at work, let's attend that one.

But, as the availability of information continues to proliferate, I find that I prefer to watch a Pluralsight video on a topic of my choosing, rather than sit in a lecture.  I can focus better, and more efficiently consume the content.  So, for me, the question becomes, "What value is there in attending a tech conference?"

On a side note, what percentage of attendees are developers?  There is probably data out there somewhere. One can only speculate.  80/20 rule may apply here.  I'd say at least 20% of attendees are not developers.  That means that when they look at code, they may as well be looking at hieroglyphics.

Ok, so back to networking.  As a developer, if you believe that networking is a worthy endeavor, and you are going to a conference, then who do you want to network with?  Presumably someone with whom you can form a symbiotic relationship.  What do you have to offer?  Maybe your employer is hiring and you can offer a referral.  Maybe what you have to offer is your own development expertise and services. 




Friday, August 28, 2020

Is your boss in good standing?

 Interviewing as a candidate is precarious.  There are 2 modes you typically find yourself in.  There is the "I just need a job, any job" mode, and there is the "I have a job, so I can be choosy" mode.

For more junior folks, they will typically just take what's offered.  Make some money.  Learn some things.  If it doesn't work out, move on.  After you repeat this pattern a handful of times, you begin to identify some trends.  You start to see that organizations are just collections of humans.  Humans are flawed.  Organizations are exceptional at a lower rate than individuals are.

Upon accepting a position, you generally have no idea what you're walking into.  After the first month on the job, you'll have a little more clarity.  You'll begin to notice some major red flags, and then there will be a voice in your head that says "would I have accepted this job if I had known about this?"

One such red flag is discovering that your manager is not in good standing with his manager.  Great, I just got hired by the guy that everyone views as a stooge.  Now I'm the stooge of a stooge by default.  Could I have vetted this situation more thoroughly prior to taking the job?  You can't exactly ask in the interview "So, who's the village idiot among the senior leadership team?  Is it you?"

But there are some hints that you can glean.  If the hiring manager has recently been promoted, that likely bodes well for you.  He's earned some credibility in the eyes of decision makers, and he's growing a team. This sounds like a good opportunity.

On the other hand, if the hiring manager reveals to you that she has been with the company her entire 20 year career, and has just hung around as a passenger on the ride, this is a smell.  For one, we all know familiarity breeds contempt.  This person has likely been the fixture among a cast of characters that are rotating around her.  She's perpetually upset that they brought in yet another outsider for the big role above her.  She felt like it was her "turn". 

This may be a controversial opinion, but staying put in one company for decades says something about a person.  It says they like to be comfortable.  It says that they don't like change.  It may indicate that they aren't hire-able outside the company.  Life is fluid.  Standing still is rarely the optimal strategy.

Everyone knows that an interview is a two way street.  Most people agree that the company is interviewing the candidate, and the candidate is interviewing the company.  I am proposing to simplify this.  As a candidate, you aren't interviewing "them".  You are interviewing the individual, the hiring manager.  After all, a company isn't something you can ask questions of.  A person is.

A person doesn't quit her job, she quits her manager.  What's the inverse of this?  A person isn't hired to work for a company, she's hired to work for a manager.

Make sure you don't fall for classic traps, such as the company's name recognition, perceived stability, or overvaluing the compensation.  

Wednesday, September 19, 2018

Business analysts hate this guy!

In a conference room somewhere in corporate America, a software developer was asked to give estimates on vaguely defined feature requests.  And then, get this, he had the gall to probe for more information.

The business analyst quickly grew impatient, and regained control of the meeting.  "Seems like a size small to me,"  he said with a huffy tone.

The developer looked again at the screen.  It read "Implement custom rules for new client".  He thought to himself, "what difference does it make what the estimate is?  How did that #noestimates guy on the internet get anyone to listen to him?"

Another developer chimed in "I think it's a medium sized effort."  Our hero nodded along indifferently.  "How long does a medium take in days?" the boss asked.

There were a million holes to be poked in the user story, but sadly no one in the room had the necessary attention span to talk about them for more than thirty seconds.  As is tradition, everything gets a meaningless estimate assigned to it. The developers will be left to their own devices to sort out the particulars when they begin work on it, 7 months from now.

Immediately after implementing his best interpretation of the feature, the dev will get to explain to the QA how to test it.  The QA was too busy testing to be present in today's meeting.

"Ok, I've got to cut this off here, I've got another meeting in 5 minutes" the BA announced, "We'll have to finish up these last 6 items in an impromptu meeting.  But, they're easy ... I mean they're easy to talk about."

The developer walked out to the parking lot, and kicked a can for about 50 paces before discarding it into the grass.

Friday, March 30, 2018

Metrics

The state of the IT industry is quite sad.  The plight of the IT cost center is that it doesn't have any good way to tie dollars spent to dollars earned.  If I invest $1M in IT, how do I equate that to a business outcome?  I have to wonder, couldn't I have gotten the same business outcome for half a million?

IT managers are desperate for metrics.  They are starving for some way to demonstrably show that they are not squandering money.  It's the old "build things right versus build the right things" argument.  Because IT doesn't have a large stake in determining what the "right" things are, they are left with determining whether or not they did the best they could with what they had.  And anecdata will not do.  We need metrics!  They don't necessarily care if they are meaningful metrics, because it's better to be the guy with bad data than it is to be the guy with no data.

What is our defect rate?  How do we measure quality?  Productivity?  How good are we at onboarding new team members?  Are we up to snuff on all of our compliance concerns?  Let's get some process around this stuff!  That's likely what you will hear after a big company has acquired a few smaller companies.  The smaller companies flew on light (no) process and got by on their skill and being nimble (wanted to use the word agility but the term is too overloaded).  These small companies got to be profitable enough to become acquisition targets.  Then when they get acquired, the new IT manager, who has never built anything from the ground up, surveys his mixed bag of teams with varying degrees of process rigor and maturity, and decrees that we are going to drive consistency. 

The talented developers groan.  The ones who crave a little autonomy are now facing the prospect of becoming a mindless ticket monkey.  But isn't that what it's really about?  Reducing your dependency on skill and talent.  Predictability is now of the utmost importance.  Predictably mediocre is better than sporadically excellent.  And that has to be a conscious choice, doesn't it?  The people pushing this type of process rigor can't really think that they will be breeding a vibrant culture that attracts bright minds, can they?

Keep in mind that I am speaking specifically about the IT Cost Center in the context of a medium sized company pushing to become a big one.  Picture a company inside of the healtcare/insurance/banking/finance space that was recently acquired. 

What is the bright side here if you happen to be one of those knowledge workers who likes to color outside the lines?

Friday, April 28, 2017

Child's play

I've been reading daedtech.com, a blog by Erik Dietrich, for quite a while now.  He really stokes the embers for me about how being a W2 employee is such a bad deal for the employee.  He talks about the absurdity of the industry, and how Frederick Winslow Taylor and his studies on getting the most out of the industrial worker still have strong influence on how workers are managed today.

Anyway, it got me thinking about a particular angle that is being used to exploit knowledge workers (IT workers.  I hate being called IT, but that's a rant for another time.)  I've noticed a trend over the last several years, and it involves the explosion in popularity of the comic book super hero.  There seems to be a large overlap among IT workers, and fans of the super hero genre.  So how has this been exploited?

There is a tech conference in Columbus, OH called StirTrek.  I don't know how long it has been going on, but it's theme is centered around Star Trek movies.  Every year, they would rent a movie theater, and different tech talks would be hosted in each theater throughout the day.  Standard stuff for tech conferences.  At the end of the day, all of the attendees would get to watch the new Star Trek movie, in what was billed as a "private screening". The theater is packed to capacity for your private screening.

All of the local consulting shops and other businesses that stand to gain from the exploitation of knowledge workers converge on the conference and set up their booths.  We all know this formula, right?  A female or two work the booth (bonus points if they are attractive, but not necessarily required), and they hand out t-shirts or cheap Chinese doo-dads.  This is not unique to the IT industry, by the way, but it is probably much more impactful given the target demographic.

One particular local firm even went so far as to have their president dress up in a Captain America suit.  This is what gave me pause for thought.  If you know anything about the consulting (contracting) game in the IT space, you know that it can be very infantilizing for the consultant.  There are many analogies that one can draw here, pick your favorite.  The pimps and prostitutes analogy is apt, but crass.  The parent-child one is probably better.

If you've ever been placed in a job by a contracting firm, you know this routine.  Oftentimes, the agent will meet you at the employer's office, and walk you in.  They stop one step shy of combing your hair and licking their finger and wiping the food from the corner of your mouth.  It takes on a parent-child, first day of school vibe.  And it's weird.

When I go to a tech conference for professional adults, and I see someone trying to attract me by dressing up as Captain America, it's just .... strange.  Maybe we asked for this.  In fact, I'm sure we have .. supply and demand and all of that.  Surely there is a contingent of professionals in this space that are saying "Knock if off with the children's games". 

I'd say that much of my reaction here is easily categorized as "grumpy old man".  I would be interested to know if anyone under the age of 30 shares any of these thoughts.  I'll be attending Stir Trek next week, because I'm still a sucker for a day out of the office to hear live talks about tech that I'm not exposed to in my day to day, and perhaps see some old colleagues and do a little networking.

Friday, June 17, 2016

.NET world

I was just rereading some of my posts from this blog, and I realize that it was born out of a desire to capture my thoughts as I ventured down the path on Android development.  If you've read them, you probably picked up on the fact that I'm really a .NET developer.  I "think" in C# when it comes to programming, and that's because I've been doing it for a long time and it's been burned into my brain.  I think that every programmer has a "mother tongue", which is the language they think in.

But I wanted to take a moment here and get back to .NET.  Because my resume and professional experience are so .NET heavy, I typically land myself in jobs that are .NET jobs.  And my current position is no different.  I've spent the last year and a half in ASP.NET MVC  / JavaScript / CSS /  SQL Server land.  I am in the insurance sector writing line of business apps, and we use these tools because they help us just get stuff done. 

I'm excited that Microsoft under Nadella have embraced open source, and made some shrewd business moves to attempt to remain relevant.  I'm excited for selfish reasons, because in some ways I've hitched my wagon to Microsoft technologies with regards to my livelihood.  I have no real loyalty to them, and I'm always intrigued by non-MS technologies (see previous posts).   Tools are tools.  Let's not get into a religious war because you like a 16" long claw hammer and I prefer an 18" curved claw hammer.  At the end of the day, we're both just driving nails.

Over the past 20 years, I've flitted around different industries.  And the more exposure I get to different businesses and domains, the more I believe that the technologists who add the most value are the ones who understand their customer.

I'm a believer that a good, battle tested developer can pick up a new tools very quickly and outperform mediocre ones who've been using the same tools for years.  It's a shame that we still live in a world where hiring managers want to know how many years of technology X you have, rather than assessing what kind of problem solver you are.  But I get it.  Measure what's most easily measurable.  But I would still love to work for a company that is not quite so lazy.  Like, if a candidate lists git repos on their resume, maybe you should go take a look.  How about a job interview over a beer where you can get a more pure signal for your bullshit meter to read?

Which really brings me to this:  small companies and start ups are where it's at for me.  The enterprise and it's heavy process rigamarole and constant fear of being sued creates an environment where the pay is decent, but the culture is one step removed from a government job.  I don't mind engaging with MegaCorp, but it needs to be on terms and conditions where they act like a small company.  For example, I'm in the middle of changing teams right now inside an enterprise-y company.  But I'm going from a team that sits in an open office plan and must dress business casual, to a team that sits in a satellite office, wears jeans every day and has an impromptu work space setup using folding tables.  Those kinds of details that may seem small to some, mean a great deal to me.

Tuesday, June 14, 2016

Can you talk the talk?



We've all the heard the saying, "You talk the talk, but can you walk the walk?"  It’s a close cousin to “put your money where your mouth is.”  It’s intended to goad someone into action, because “talk is cheap”.

There are a lot of people in the technical space that pride themselves on being doers and not talkers.  Sometimes people who are introverted, whose fight or flight reaction kicks in when they need to talk with someone outside of their inner circle, will begin to justify why they don’t need to interact with other human beings.  “I let my actions speak for me,” they think to themselves, “I’m a maker, not a taker.” 

I’ve been there, holding an irrational disdain for salespeople, because they sell and profit off of the product that the engineering team built.  But for me it’s mostly jealousy, because they make their own schedule, while I am expected to be visible and in a chair for 8 hours a day. 

Several years ago, I took steps to steer my career down the management track.  And it didn’t feel natural.  I didn’t take to it.  I was working for MegaCorp and saw how little they valued the smart engineers, treating them as pawns on the board.   And I didn’t want to be a pawn.  So I got my MBA and got sent to leadership courses by my employer.  But I eventually was drawn back to software development, and it felt right.  

But the game hasn’t changed.  There are still plenty of highly intelligent, timid engineers who are happy to stay out of the chatter and politics.  And if one is truly happy in that position, then great.  But if you’re not, then I challenge you to invert the question.  It is no longer, “You talk the talk, but can you walk the walk”.  It becomes, “You walk the walk, but can you talk the talk?”

Talking and communicating in a confident manner is not just mindless banter, not just small talk.  It needs to happen, for a host of reasons.  The thing that engineers need to understand is that communicating with other human beings equates to getting things done.  And if you can form thoughts and arguments in your mind that are well thought out, and you can put them on paper, then you can look someone in the eye and verbalize them too.

I believe that there is a decently sized contingent of tech workers who are frustrated with the false dichotomy that you must either be an engineer OR a business person, but you can’t be both.  We’ve all heard something along the lines of “If you have technical chops and business acumen, you’re a rare double threat and opportunites abound for someone who fits that profilie.”  But, in my experience that turns out to only be the case if you make those opportunities.  They’re not just out there waiting to be filled.

Sunday, June 22, 2014

Python + MongoDB

The opportunity to brush up on Python and MongoDB presented itself, so I'm spending some time doing just that.  I played with Python a few years back, in my GE days, but haven't made my way back to it.  I love REPL based languages because you can just fire it up and go!

So I have Mongo running on my machine, and I need to pump some data into it.  Since it wants JSON, I figured I'd just hit some web api out there, grab a bunch of JSON data, and then pump it into Mongo.  I already had an api key for imgur, because I was messing around with uploading camera images to it from an Android app.

So I poked around a little bit on the web api documentation, and pretty quickly I had a legit response.  It looks like the 'requests' library (http://docs.python-requests.org) is pretty popular.  So first thing I had to learn to do was import a 3rd party library.  Looks like this is easier in the Unix world because they have command line retrieval built in.  Windows appears to have it too, but of course you have to download it.

Anyway, I learned the "manual" way.  Basically, fetch the zip file, extract it, cd into the folder and run a command and it pulls it into your site-packages folder and you're good to go.

I do have to say, 5 lines is pretty terse.  And 2 of those are import statements.  I love terse.

 import json  
 import requests  
 url = 'https://api.imgur.com/3/gallery/g/memes/'  
 header = {'Authorization': 'Client-ID 31d84e7e126befd'}  #not my real api key!
 r = requests.get(url, headers=header)  

Here's an example of one item returned from the above call:

{u'account_id': 11545168,
 u'account_url': u'PCard',
 u'animated': False,
 u'bandwidth': 76530096,
 u'datetime': 1403397798,
 u'description': None,
 u'downs': 0,
 u'favorite': False,
 u'height': 820,
 u'id': u'1DZ31Oy',
 u'is_album': False,
 u'link': u'http://i.imgur.com/1DZ31Oy.png',
 u'nsfw': False,
 u'score': 2,
 u'section': None,
 u'size': 708612,
 u'subtype': u'Good Fireman Greg',
 u'title': u'Good Fireman Greg',
 u'type': u'image/png',
 u'ups': 2,
 u'views': 108,
 u'vote': None,
 u'width': 610}


I am working with memes here, because I think they are hilarious.  Good Guy Greg, Bad Luck Brian, etc.

Here's how we add all of the items to the Mongo database.  Note that we can pass the list, and it will be treated as a bulk insert.

 import pymongo  
 from pymongo import MongoClient  
 client = MongoClient()   
 db = client.imgur  
 db.memes.insert(r['data'])  

Now that we've got some data in our DB, we can query.  Let's say that I wanted to get all of the "Scumbag Steve" memes:


 c = db.memes.find({"subtype": "Scumbag Steve"}) #c is a db cursor  
 #print them to screen  
 for i in c:  
   pprint(i)  

There you have it!  Using Python to hit the Imgur Web Api, creating and populating a MongoDB with that data, and querying back from MongoDB.


Sunday, March 30, 2014

Android Accessibility

Well, I was browsing reddit.com/r/android the other day, and someone asked "How does LastPass read and inject into fields of other apps?"  I thought to myself, "yeah, how do they do that"?

When you install LastPass on Android, it asks for these permissions:
http://imgur.com/H9zm95D

That got me thinking, maybe I can read the screen from the William Hill app without requiring the user to take a screenshot and then send the photo to my app.  That would be a way nicer user experience.

So, that led me to discover the AccessibilityService, and today I'm going to see if I can figure out how to make this thing work.

It's March Madness right now, probably the 2nd best thing to football, which got me thinking about my app again.  I've also been giving more thought to taking the image recognition logic off of the phone and putting it on a server somewhere.

Anyway, just thought I'd post an update here.  That's all for now.

Thursday, January 9, 2014

Dormant

Well, I think it's pretty clear from the inactivity on this blog that I lost much momentum.  I haven't looked at the code for the Trakker project in months.  The NFL football season is coming to an end, and my Bengals suffered an embarrassing loss to the Chargers for another 1st round exit from the playoffs.

My son Benny is doing great.  Being a father has been amazing so far, and I know it's only the beginning of a long adventure.  It has proven much more difficult to get long stretches of uninterrupted time at home however, but I think that's just the way it goes.  I certainly don't want to be the kind of father who is always absorbed in something other than his children.

The tech space is so fun to be in.  There are so many options for things to learn and ideas to build.  I have made an effort recently to shore up my weaknesses on the web side and try to learn javascript and some frameworks.  I like Durandal so far, and I backed it on Kickstarter because the author of the framework seemed genuine and he's kind of doing a David & Goliath thing battling Google and AngularJS.

My tech goals as we kick off 2014:


  • Get an app on the Google Play store.  Even if it's trivial
  • Get more of a presence on GitHub so that I have a functional resume, rather than just the traditional one
  • Come up with more ideas that appeal to me because I am passionate about the domain and the problem being solved.  If it involves my interests like golf, guitar, sports, etc I am much more inclined to work these projects rather than contrived sample applications.
I don't know if I'll continue this blog or not, but I enjoy getting my thoughts out so I will continue to author posts like these in one form or another.

Here's to a great 2014!