But why did it grab my attention, you might ask? Perhaps I’m a naysayer. But I do find there is a lot of hype, and a lot of sex in software today. It’s as though the shiniest, newest, coolest toys are the ones getting the spotlight.
So when I find an alternative view, I sit up and take notice.
1. Are we making systems too complex?
Right out of the gates, Alex makes a great point:
“We’re not delivering quickly enough!”. “Our systems are too complex to maintain!”. “The application we delivered last year is completely legacy now but it’s too difficult to replace!”.
Our industry’s obsession with the newest & coolest toys, means we’re building things that don’t last very long. A real & ongoing problem.
One thing Alex pointed out that really struck a nerve was this:
For those in tech who are not working at Facebook/Google/Amazon, we’re simply not talking enough about what systems at smaller enterprises look like.
I couldn’t agree more. As a profession, we watch closely at what the big guys are doing. And that’s useful to a point. But for many smaller companies, to use such architectures would be over engineering in the extreme. Not to mention extremely costly!
“It’s totally legacy, and no-one maintains it – it just sits there working, except for the occasions it doesn’t. The problem is replacing it is so hard, it’s got great performance, and the business doesn’t want to spend time replacing something working”. This is the problem being ahead of the curve – the definition of “success” (it works great, it’s reliable, it’s performant, we don’t need to think about it) looks a hell of a lot like the definition of “legacy”.
We know the term bleeding edge because it’s tough being out there trail blazing. Here I agree that sometimes legacy is also boring, yet eminently reliable.
I’ve had a mailbox with the postal service for over a decade. It’s been great. It’s a convenient address for a business, and it doesn’t change. Great for receiving bills, tax refunds, contracts, pay checks and everything else.
I picked the postal service years back because I figured they are solid. A corner deli or other mailbox service might go out of business. And the idea was to have a box that doesn’t have to change often.
In all those years I’ve always been timely with paying the rent, which can be every six months or twelve months as you choose. Recently I mixed up the renewal. When I went in to pickup my mail, the lock had been changed. I went to the customer service counter to ask about it. Amanda came to help me. She was cordial.
She explained however that the box had been closed. Since it was the day before the holiday, she wouldn’t be able to help with this, and suggested I come back on Monday.
As I like to be agreeable, I agreed to this request. In the meantime she was able to give me my mail. It was nice to see they had been keeping it. After all I was only a few weeks overdue.
Bring me the documents!
On Monday I had planned to return right away. But as my day got going I wondered if I would have enough time. This probably won’t be just a quick stop in. For some reason I sensed the process would be complicated.
Tuesday I set my alarm clock to wake up two hours early. I got dressed & headed straight to the post office. I wanted to get an early start. I went to the customer service desk again, and met Michael. I explained the mixup. Yes I was late playing my rent. Could I pay a penalty of some kind and then renew for another year?
“No I’m sorry, your box is closed now. You’ll have to reopen it.”, he explained.
“That’s no trouble let’s do that. What do we need to do?”, I asked.
“Well, you’ll need to bring all the documents that you opened the box with originally. Driver’s license, second form of ID, and the business document.”, Michael explained.
“Sure I said. I have my driver’s license right here. I can bring the business certificate. Great. And second form of ID?”, I asked.
“A passport would work.”
“That’ll be fine.”, I said. “So if I bring the business certificate & passport, and my driver’s license here, we’ll be able to open the box up again.”, I asked.
“Yes. If you’re able to bring those today or tomorrow, since nobody has opened another box, you can get that same box number again.”
From there I took another train trip home. The passport was easy enough to find. However the business certificate I had misplaced. It took me quite a while rifling through folders, but eventually I found it. Great I thought, I’ll just return to the post office, and have this task done for the day!
One thought occurred to me, I wonder if they might need a proof of address. He didn’t mention it, but I’ll just bring a recent gas bill just in case. Little did I know what would follow…
As I returned to the post office, Amanda greeted me. Hi there. Yes, I remember you from last week she said. Thx! Michael is at lunch now. He will be back in ten minutes.
So I waited. And waited. Twenty minutes go by. I go back to the counter, and Amanda says she’s not sure where he is, but she is going to lunch now too. When you see him return, just buzz the bell and he can help you.
Another twenty minutes go by and I see Michael return. I buzz the door, and he comes out.
Hi there Michael. I’ve managed to track down the documents you asked for, and I’ve got them all right here. Hopefully everything looks right and we can get this taken care of.
He asks me to fill out another form. On it includes my current address. Which has changed & is different from the original business address. Now I had thought to just write the same address down, as that might “simplify” things. But then I thought, that’s probably not prudent. Better to be honest. Right? I mean honesty is rewarded eh?
He sees the address & explains, I’m sorry but you’ll need a proof of address.
“Umm. Yes of course. I was careful to be very attentive to your requests earlier. Did I understand you correctly that you needed two items, the passport & business certificate.”, I asked?
“Yes but I didn’t see that you didn’t have your address here. You’ll need that too”
“No problem sir. Although it isn’t something we discussed, I did also bring my gas bill, because I thought that might be helpful here.”
“No we don’t accept that. Don’t you have a lease? Do you rent an apartment? You’ll need to bring me the right documentation!”
At this point it really does feel like a scene out of Terry Gilliam’s famous 1985 classic Brazil, where beaurocrat’s control your life. We must have form 27b-6 or else!
At this point I’m getting internally quite furious. It is now my third trip to the post office, and still I don’t have the right forms. Remember I’ve also been a customer for over ten years! But that seems to have no bearing. What’s more I have all the documents required, even a proof of address, but it is the wrong one!
My agitation is increasing, and I’m kind of shaking with frustration. I want to scream or yell at this point. But I realize that will only make things worse.
“With all do respect sir, I’ve returned here three times already. It’s quite a trip back and forth. I’ve brought the documents you requested. “, I explain
It seems his tension is rising too. I don’t know if this is the usual day but he is not bending.
“I’ve explained what you need to do. That’s it!”
“Can you please explain to me again sir.”, I ask
“One more question. That’s all I’ll take from you!”, he says holding up his finger menacingly to me.
“How do I know if I return with one more document, we won’t get further through this process and find something else missing. Then I may have to return again.”
I am despondent at this point. Close to giving up. I have less confidence now that I’ve had throughout. I think he sees my pain at this point. I’m practically crawling on the ground beaten. That must have been enough for pity.
“Well you could talk to Miss Adams. Maybe she can help you.”, he says
“Yes miss Adams you say? Sure let’s talk to miss Adams.”
I go around to the main post office and ask after Miss Adams. I meet Kelly at the front desk. She explains that miss Adams is at lunch, and will be back soon. But asks what is the problem.
I explain my mixup. About paying the rent late, and how the box must be reopen. I further explain that I’ve returned three times and show her the documents I have. She says they look fine, what’s the problem. Michael explained that a National Grid bill is not sufficient proof of address.
“Why not”, she asks?
It is at this point I have a revelation. There is no rhyme or reason to any of this madness. There may be a rule, it may or may not be followed. Depending on the day, the moon, the alignment of planets. Who knows.
“I’m sure that should be fine. Let’s ask miss Adams”, she says.
And then as if by magic, Miss Adams materializes out of nowhere. After such a trial, I imagine I felt much like fraternity pleges feel as they’ve been beaten and abused for days. Miss Adams is like a saint arriving from the heavens.
“Michael doesn’t take the gas bill as proof of address? Well I do.”, she says.
And with one simple wave of the wand, everything is resolved. Just like that.
When I think of this experience, yes I’m frustrated as anyone would be.
But it also really stands out for me in stark contrast. For I have worked with innovation, entrepreneurs & startups for many years. We all approach business from the perspective of solving problems. There understanding your customers, helping them, and simplifying processes is the rule of the day.
When I think of a government agency like the Post Office, I think of FedEx. Their market cap is 60 billion dollars. They exist with the sole purpose of moving packages. Customers will pay an incredible amount of money to avoid every having to deal with the post office.
This is a testament to innovation. And to startups. It’s why I’ve enjoyed working in the startup space all these years. The hard work & the creative problem solving. I live for that.
Hi, I’m currently an IT professional and I’m training for AWS Solutions Architect – Associate exam. My question is how to gain some valuable hands-on experience without quitting my well-paying consulting gig I currently have which is not cloud based. I was thinking, perhaps I could do some cloud work part time after I get certified.
I work in the public sector and the IT contract prohibits the agency from engaging any cloud solutions until the current contract expires in 2019. But I can’t just sit there without using these new skills – I’ll lose it. And if I jump ship I’ll loose $$$ because I don’t have the cloud experience.
Here’s what I’d suggest:
1. Setup your AWS account
A. open aws account, secure with 2FA & create IAM roles
First things first, if you don’t already have one, go signup. Takes 5 minutes & a credit card.
From there be sure to enable two factor authentication. Then stop using your root account! Create a new IAM user with permissions to command line & API. Then use that to authenticate. You’ll be using the awscli python package.
B. plugin a github project
C. setup CI & deployment
D. get comfy with Ansible
Got a pet project on github? If not it’s time to start one. 🙂
You can also alternatively use Amazon’s own CodeCommit which is a drop-in replacement for github and works fine too. Get your code in there.
Next setup codedeploy so that you can deploy that application to your EC2 instance with one command.
But you’re not done yet. Now automate the spinup of the EC2 instance itself with Ansible. If you’re comfortable with shell scripts, or other operational tools, the learning curve should be pretty easy for you.
F. use terraform or cloudformation to manage your aws objects
G. put your terraform code into version control
H. test rollback & roll foward infrastructure changes
Amazon provides CloudFormation as it’s foundational templating system. You can use JSON or YAML. Basically you can describe every object in your account, from IAM users, to VPCs, RDS instances to EC2, lambda code & on & on all inside of a template file written in JSON.
Terraform is a sort of cloud-agnostic version of the same thing. It’s also more feature rich & has got a huge following. All reasons to consider it.
Once you’ve got all your objects in templates, you can checkin these files into your git or CodeCommit repository. Then updating infrastructure is like updating any other pieces of code. Now you’re self-documenting, and you can roll-forward & backward if you make a mistake!
J. Learn RDS – MySQL, Postgres, Aurora, Oracle, SQLServer etc
For a bonus page on your resume, dig into Amazon Relational Database Service or RDS. The platform supports various databases, so try out the ones you know already first. You’ll find that there are a few surprises. I wrote Is upgrading RDS like a sh*t storm that will not end?. That was after a very frustrating weekend upgrading a customers production RDS instance. 🙂
If you’re interested in the data side of the house, there is a *LOT* happening at AWS. From their spectrum technology which allows you to keep most of your data in S3 and still query it, to Glue which provides an ETL as a service offering.
You can also use a world-class columnar storage database called Redshift. This is purpose built for reporting & batch jobs. It’s not going to meet your transactional web-backend needs, but it will bring up those Tableau reports blazingly fast!
With the above under your belt there’s plenty of work for you. There is tons of demand right now for this stuff.
Did you do learn all that? You’ve now got very very in-demand skills. The recruiters will be chomping at the bit. Update those buzzwords (I mean keywords). This will help match you with folks looking for someone just like you!
I was talking to a customer recently and they asked about deployments. They wanted to do things the real way. Here’s a snippet…
I’m helping out a company called Blue Marble and they are getting ready to deploy a new POS system. The app has been built using a Node.js back-end and Google Cloud Datastore for storage. The current dev build is hosted on AWS and connects to Google for the data bits.
For prod launch, they are interested in migrating to the “real” way of deployment on Google for everything.
They are pressed on time and looking for someone who can jump in quickly. Are you available? Do you have Google Cloud expertise?
Here’s what I said.
Yep, I’ve have used Bigquery & GCE.
What are they looking for specifically? Full deployment automation? Multiple deploys per day?
I’ve found that sometimes the biggest hurdle to fully automated deploys can be cultural issues.
In other words yes you can automate your deployment so it is push button, get all the artifacts & moving parts automated. Then deploy without much intervention. But to go from that to the team having *faith* in the system, that is a challenge.
Once the process has been streamlined, a lot often still needs to happen around unit & smoke tests.
If the team isn’t already in the habit of building tests for each bit of code, this may take some time. Also building tests can be an art in itself. What are the edge cases? What values are out of bounds?
Consider for example odd vulnerabilities that show up when hackers type SQL code into fields that devs were expecting. Sanity checking anyone?
What makes this all even more complicated is integration testing. Today many application use various third party APIs, service-based authentication, and even web-based databases like Firebase. So these things can complicate testing.
Although your project, startup or business may be pressed for time, that may not change the realities of development. Your team has to become culturally ready to be completely agile. Many teams choose a middle ground of automating much of the deployment process, but still having a person in the loop just in case.
Same with testing. Sure automating can make you more agile & more efficient. But you’ll never automate out creative thinking, problem solving & ownership of the product.
With the explosion of coding bootcamps in recent years, it speaks volumes, as demand for coding & software skills continues to outpace supply. What’s more the starting salaries aren’t bad either.
But how will this affect coding bootcamps going forward?
Would you like a helping of beaurocracy?
Part of the ruling was regarding licensed teachers…
“In order to obtain a SED license, a non-degree granting career school must meet a number of criteria, including using an approved curriculum and employing a licensed director and teachers.”
One thing that sets coding bootcamps apart is that they train their own teachers. And they also use their own curricula. And while protecting consumers is certainly a worthwhile goal, the ruling means bootcamps will have to navigate government bureaucracy for approval. Some have pointed out that the process can be slow & full of red tape. Which is sort of counter to the whole agile startup private industry philosophy. We’ll see!
One of the claims their marketing made was that many students were making $75k after a few months of study. The ruling underscored this as particularly misleading. more here
As anyone who has studied computer science knows, there’s a lot of foundational concepts in logic, mathematics & problem solving, which you don’t develop overnight. Hopefully this ruling with hammer home the idea, that it takes a little bit more time folks!
One of the comments on hacker news asks “Does it please the crown?”. By slapping these guys on the wrist, the barrier to entry will be higher. Going forward, they will have to pass more hurdles & government beaurocracy.
One of the things that sets coding schools apart is that they can train their own teachers & build their own syllabus. We’ll see if these new hurdles slow things down or not.
Having a popular publicly facing blog, I get a lot of leads that seem to come out of thin air. This is the good problem of publicity. 🙂
I followed up with her and asked what she was building. “Nothing” she explained, I just want to learn about AWS. I was a little confused at first, but as we talked further, it seemed she was just beginning to branch out onto the wild world of the internet, and didn’t know where to start.
I explained that to build an e-commerce site, she could use a service like Shopify, and would likely not need to use AWS directly, and certainly wouldn’t have to learn it. That might take five to ten years learning computing first!
I realized I was telling her she didn’t need the services of someone like me, and further giving her half of a solution. Though I couldn’t help her build a product, the information could surely help her sell it.
Then I thought to myself, why would I do that? Why give away your time & advice for free?
1. Find time to followup
LESSON: a quick call is always worthwhile networking
You’d be surprised how often you learn from someone, especially when they don’t work in your domain. You learn from the way they frame questions, how others might view or search for you. You learn how better to explain & sell your services to future customers too.
In a call like this one, it costs me very little to “drop some knowledge” as the cool kids like to say. 🙂 Sure my time is worth something, and yes I’m giving something away for free. But in this case it was someone who currently doesn’t have the budget for my services so isn’t my target audience anyway.
Be patient. As Keith Ferrazzi likes to say “Never Eat Alone”! I’ve taken hundreds of calls like this one over the years, and some later get funded & call me back. They’re eager to put me to work, already sold on my integrity & personality.
What’s more she may run in different circles than I do, bump into a colleague or recommend me at some point. If your openness really stands out, it’ll leave a memorable impression long into the future.
In a place like New York where we’re often singularly focused on profit & personal gain, it’s easy to stand out by a small act of kindness.
I’ve been digging into them myself of late, and learned a few surprising facts about them. Read on!
1. It’s disrupting banking itself
That’s right, it’s bitcoin is not just an experiment anymore. Cyptocurrencies (of which Bitcoin is just one example), are ruffling the feathers of the IMF. Managing Director Christine Lagarde predicts the end of banking. Now that’s pretty big.
Coins can be mined like gold in the real world, and of course spent using a digital wallet.
A. Mining: This requires either a physical device or a contract with a provider such as Genesis Mining. The more coins in the world that are mined, the harder it becomes to discover more. My early results show that, if the price remains stable, my contract will become profitable in about 18 months. In other words, I will have ‘made my money’ back on the original upfront price to get started. From then on it’s profit, but not stellar… about 20% per year. If the value of the coin itself goes up, it becomes more profitable, if the value of coin goes down, well then mining pauses, or ceases entirely.
B. Wallets: You get a website and a phone app, that allows you to pay/receive person-to-person. One thing I noticed is that there is a LOT of security, because they must be a target of a lot of hacking. My online bitcoin wallet, CoinBase provides not only 2-factor authentication (text to phone) but after your account reaches $1000 USD value you unlock a ‘vault’ in which you can store coins. You don’t earn any interest, instead you get extra security: you must verify your withdrawl/transfer request from TWO different email addresses.
With Build a Coin project you can build your own currency. This isn’t building an app for Etherium or an API to some existing currency. This project helps you build the code to support your own virtual digital fiat currency!
A recent NYT piece on our aging american infrastructure got me thinking. It seems that roads, bridges, airports & city sewer systems are all in need of repair. Sadly as budgets to maintain these systems in good repair are often short, they become larger problems to fix as their status becomes critical.
“Americans have an impoverished and immature conception of technology, one that fetishizes innovation as a kind of art and demeans upkeep as a mere drudgery.”
I’m not sure this is an American-only phenomenon. However I do see it a lot with technology companies & startups.
1. Do we have to manage ops in the cloud?
The cloud has enabled infrastructure automation in some pretty phenomenal ways. Code pipelines can deliver changes to a repo, through automated unit testing, and out to customers all without human intervention. This makes teams more agile, and ultimately businesses faster & more profitable.
We might be distracted enough to stop worrying about operations altogether. After all Amazon knows how to manage broken servers & alert us right? I write do we have to manage operations in the cloud previously, as this sentiment seems to be growing.
Modern applications have a ton of interdependencies. Even with decent integration testing, the full stack is complex, and requires monitoring. Co-tenancy can complicate your performance tuning efforts as neighboring customers may directly affect your application. Third party services may be delivered from smaller or less experienced companies, whose SLA may be limiting besides. And hey if Amazon goes down, I can just tell my customers it was their fault, right?
Chances are I’m guessing you’ll say no. He was part of the original Facebook team alongside Zuckerberg. You don’t know his name? He had the sexy job of, you guessed it maintenance! He was the operations guy. Did he write the application code? More than likely he knew that code very well as he had to fix & maintain it. Along with the infrastructure to scale & support Facebook’s massive growth.
Ward Cunningham has an excellent interview about technical debt. Is a little bit ok? Maybe. But each amount is kicking the can down the road. As the NYT article on maintenance makes clear, you can move the responsibility on to the next administration, the next term, or someone else, but eventually you’ll have a critical problem on your hands, which will be much more expensive to fix.
Back in 2011 I had a crazy idea. I wondered if it was possible to sell the loft I owned in Manhattan, and trade up that equity for a townhouse in Brooklyn?
As it turns out selling the coop ended up being its own complicated ordeal. Think of it more like getting a divorce, with all the attendant challenges of ending a long love affair! I may write a longer post about that soon enough, but for today let’s talk about the buying part.
In NYC it seems every real estate transaction is still encumbered by brokers at either end. One for the buyer & one for the seller. The seller will pay a 6% transaction fee & that’ll be divided 3% for each of the teams. But that 3% is further divided, 1.5% to the broker themself, and 1.5% to their firm.
It’s important to understand who is incentivized & by what. This helps you see motivations, and better discern the “truth” when you’re looking for an answer. Back to the question, do you need one? On the sell side I would say more than likely yes. Unless you are a master seller & even then it’s hard to get by without one. I tried it using RealDirect.com. Although this put my listing in all the right places (NYT & streeteasy) which brought me plenty of traffic, I still didn’t get many strong offers. Most buyers come with a broker, and they’re likely to steer away from you for fear they won’t get their fee. After all, you’re trying to play outside the system to begin with. Contract or not, it’s very tough. So on sell side I would say yes you’ll need a broker.
On buy side its different. If you don’t bring a broker, the seller will pay 5% to the single selling broker, so this is great for them. But what about for you? Again understanding incentives really helps. For me this made the time spent using Real Direct a learning experience. I saw the ins & outs of real estate.
I’m going to call it quits for today. But I have a lot more to write about. Future pieces will include working with NYC agencies, like HPD & DOB, avoiding violations, understanding all the players in a large transaction, from underwriters, bank lawyer, seller & buyer lawyer, mortgage agent, title company & insurance agent.
I’ll also try to share what I’ve learned about the physical moving parts. The engineering… gas vs oil boilers, roofs, brick vs wood frame structures, cosmetic vs structural renovations, appliances, faucets, fixtures & cabinets, bath & kitchen tiling, decks & outdoor structures, backyards, plants & vegetation, pests & animals.
Let’s say you’re hiring a devops & you want to suss out their database knowledge? Or you’re hiring a professional services firm or freelance consultant. Whatever the case you’ll need to sift through for the best people. Here’s how.
Caching is a popular way to speed up access to your backend database. Put Amazon’s elasticache behind your webserver, and you can reduce load on your database by 90%. Nice!
The two types that amazon supports are Memcache & Redis. Memcache is historically more popular. These days Redis seems a clear winner. It’s faster, and can maintain your cached data between restarts. That will save you I promise!
When you’re doing large reports for your business intelligence team, you don’t want to bog down your backend relational database. Redshift is purpose built for this use case.
I’ve see a report that took over 8 hours in MySQL return in under 60 seconds in Redshift!
A new offering is Amazon Spectrum. This tech is super cool. Load up all your data into S3, in standard CSV format. Then without even loading it into Redshift, you can query the S3 data directly. This is super useful. Firstly because S3 is 1/10th the price. But also because it allows you to stage your data before loading into Redshift itself. Goodbye Google Big Query! I talked about spectrum here.
What relational database options are there on Amazon?
Amazon supports a number of options through it’s Relational Database Service or RDS. This is managed databases, which means less work on your DBAs shoulders. It also may make upgrades slower and harder with more downtime, but you get what you pay for.
There are a lot of platforms available. As you might guess MySQL & Postgres are there. Great! Even better you can use MariaDB if that’s your favorite. You can also go with Aurora which is Amazon’s own home-brew drop in replacement for MySQL that promises greater durability and some speedups.
If you’re a glutton for punishment, you can even get Oracle & SQL Server working on RDS. Very nice!
Let’s be honest, Amazon wants to make this really easy. The quicker & simpler it is to get your data there, that more you’ll buy!
Amazon’s Database Migration Service or DMS allows you to configure your old database as a data source, then choose a Amazon db solution as destination, then just turn on the spigot and pump your data in!
ETL is extract transform and load, data warehouse terminology for slicing and dicing data before you load it into your warehouse. Many of todays warehouses are being built with the data lake model, because databases like Redshift have gotten so damn fast. That model means you stage all your source data as-is in your warehouse, then build views & summary tables as needed to speed up queries & reports. Even better you might look a tool like xplenty.