Codetown ::: a software developer's community
Cornbread and contracting. They have a lot in common. What do I mean?
Well, you never go in empty handed. That's for starters. How did this come up? I'm headed to my favorite bike and coffee shop this morning to do some fancy computin'. I'll be sure to bring something with me to the show. Whats my fav? Cornbread!
I looked in my cupboard to see what I got. I got some cornmeal. Yeah! I got some baking power. Bingo. Salt. Check. Eggs? Yup. Milk/Soy milk? Uh huh. What else? Well, I got some notes. Lessee.
My trusty cornbread box has a faithful recipe. I don't commit it to memory because I forget a lot. But, I try. So, that was it. What did I forget. Flour. Uh oh....
What am I gonna do? Substitute. So, I turn on the oven to pre-heat because time is an issue. Time. Yes, time is something I think about all day long. Every day. No days off. Not until I'm done. Even then, I'm thinking about the next project. In this case, it's a decision to go to the bike shop and do some work (read: visit). It takes time to go there. I have to pack up my stuff, which includes the laptop and whatever else I won't have when I'm there. Like going onsite, yes?
Time is an issue. So are expenses. It costs me to drive there. I use up gas. I use up an element hard to capture. Call it wear and tear. On my car. On me, because I have to take my mind off my project to focus on the road. And, there are risks in this diversion. I may have an accident. I may get a traffic ticket. I may break down. But, I have AAA! Insurance. American Automobile Association. Right.
Back to cornbread. What'd I forget? Flour. This is where experience comes in. I've made cornbread before. And, I have a recipe. So, I know how it's supposed to be done, fundamentally. Well, I could run to the store and get some flour. More time spent. More money. More risk. Forget that. I have something just as good. 7-grain breakfast cereal. Will it work?
It's a numbers game. I don't want to go to the show, I mean the bike shop, empty handed. But, I also weigh the relative importance of all this. Is it gonna kill me if I screw up the cornbread? What are the chances? I call that "P sub s"; probability of success. So, I weigh the odds and toss in that seven grain stuff and pop it all in the oven. I give myself time to write this article. 20-25 minutes to cook. Then, shower, let it cool at the same time, yes, time sharing.
You see, I am a contractor. I work on a project to project basis. I get paid for what I know. I have some experience and tools. I have my judgement. And, I know one thing more than anything: time is an issue. And, time is not on my side. Unless I make it that way. I try to get more than one thing going at a time. That doesn't mean thinking about a lot of stuff at once, because that doesn't work for me. But, I can get some parallel processes in place. Notice that bowl of oatmeal on the counter next to the mixing bowl? That's breakfast, Homefry! Gotta stay healthy.
I am not paid as a contractor to get an education. That is a side effect. I bring my experience to the table. I am not paid as a contractor to get a pep talk. I take care of that myself. Do I need some OTJ training? I think not. Tell me what I need to do and show me how it works, maybe give me a workflow and I will figure the rest out myself. I'll talk to everyone. I'll keep good notes. I'll make damn sure I understand what you're saying. And, I won't worry about looking stupid when I ask questions because I am going to get the job done and be out of here before you know it!
Is there a middle ground? You bet. Do you want a nurturing environment where you get training, vacations, sick leave and parties thrown and still get to go out and do job work? Take a employee position with a contracting firm. Notice I haven't used the word "consulting" yet. That's a whole 'nother thing. But, you can work your way into contracting. The pay won't be as good. But, you'll be an honest bloke. You'll get that hand holding you need. You'll get paid bench time. See how long that "perm position" as an employee lasts on the bench. You'll learn it's all just different billing situations with compensation adjusted according to how much hand holding you want. You'll have your very own cubicle to come home to and play Angry Birds. Always remember who's throwing the party. And, at some point, you'll ask yourself: "What do I want? Would I rather be invited to the party or throw it myself!"
There's another middle ground. It's called the boutique consulting firm. Not that everyone's a consultant. But, you don't have to go it alone. The magic sometimes happens when you find a company that does job work, not a "body shop" mind you, but a group of reputable people who know what they're doing and do project work. Because you might not want to be the Lone Ranger. Economies of scale, you know? One legal, one accounting, one marketing and sales, a few principles, a few good people. There are those. You'll rarely see ads from them looking for help. They know their guild. When the time's right, if you're lucky and looking, you may get the nod and wind up in that dreamlike situation where the line between work and play is blurred, and you're getting paid for it.
Now, I talked about risks. We work in a dynamic field. People are constantly writing tools and components that are the magic wand. They automate repetitive tasks. Remember that? Yeah, that's computing. But, remember the SDLC? Software Development Lifecycle is what SDLC stands for. In case you never heard that acronym. And, remember workflow. Two important concepts. So, SDLC means analysis/design, coding, testing, deployment, fixing, iteration and maintenance. More or less. And, workflow is that process that we plug all of this stuff into combined with our concept of "P sub s" giving us the highest probability it's all gonna work. Different tools and components have different levels of maturity. Some are tested and work better than others. So, you gotta factor that in. I mean, just because they say it works, doesn't guarantee it's gonna work for you.
Now, that cornbread timer just went off. Here's what I'm left with! Is it right? I don't know, but I'm gonna stick a fork in it and see if it's done.
What do you notice about this photo of me and the cornbread? What am I talking about here: me or the cornbread? And, what's standing out bigger than life in the photo? Me. Wrong. Cut the "me" out of your freelancing equation. You go home with you. You leave your project and all the glory behind. Leave the glory to the people who hired you. So, it's about the work. It's about the project. The cornbread is the result of my work. So, I'm gonna crop that photo and show you what it's really all about.
Now, see! It's OK, in general. It may need a little cooking because I used some ingredients I've never used before. But, I can fix that. Why? Because it's not the first time I've done this.
Imagine this: imagine I had this grand plan and I was going to go to the bike shop, not empty handed. Imagine I grabbed the best guy or gal I could find at the time, because that's all that matters. Time. Remember? That's crucial. I'm only as good as what I can do right now.
Now, imagine I decided that, with all my vast experience making cornbread, I was gonna do something else while my "podnuh(s) in crime" made that cornbread. I handed them the box with the ingredients on it. I told them the plan. I said, "Go for it". And, I checked back with them regularly to see what's up. Uh, oh. There was something missing! Flour. Now, how the heck you gonna make cornbread without flour? That's a biggie. Tick-tock. Time's a ticking.
There are some decisions being made there. The project (cornbread) depends on everything working together. Risk vs return. P sub s. Substitution of ingredients that haven't been tested yet. The recipe says 20-25 minutes at 400F, but we're using 7 grain cereal. Will that take longer? Who knows. So, we go for it. We check out our result. We keep in touch regularly. We let each other know what's up. We adjust the timeline to account for the unknown. Then, TIME's UP! So, we stick a fork in it. Done. Happy? We'll see. Stay tuned...
Tags:
Codetown is a social network. It's got blogs, forums, groups, personal pages and more! You might think of Codetown as a funky camper van with lots of compartments for your stuff and a great multimedia system, too! Best of all, Codetown has room for all of your friends.
Created by Michael Levin Dec 18, 2008 at 6:56pm. Last updated by Michael Levin May 4, 2018.
Check out the Codetown Jobs group.
Smolagents is a library created at Hugging Face to build agents based on large language models (LLMs). Hugging Faces says its new library aims to be simple and LLM-agnostic. It supports secure "agents that write their actions in code" and is integrated with Hugging Face Hub.
By Sergio De SimoneAWS has recently announced S3 Tables Bucket, managed Apache Iceberg tables optimized for analytics workloads. According to the cloud provider, the new option delivers up to 3x faster query performance and up to 10x higher transaction rates for Apache Iceberg tables compared to standard S3 storage.
By Renato LosioNVIDIA researchers have unveiled Hymba 1.5B, an open-source language model that combines transformer and state-space model (SSM) architectures to achieve unprecedented efficiency and performance. Designed with NVIDIA’s optimized training pipeline, Hymba addresses the computational and memory limitations of traditional transformers while enhancing the recall capabilities of SSMs.
By Robert KrzaczyńskiInnovative cloud architect focusing on serverless computing and Function as a Service. Advocates for optimized, functionless architecture to reduce complexity and costs. Expertise in leveraging cloud-native services for sustainable operations and minimizing code liabilities. Committed to transforming engineering mindsets for efficient application development in a rapidly evolving tech landscape.
By Sheen BrisalsIn this podcast Shane Hastie, Lead Editor for Culture & Methods spoke to Neeraj Mainkar about the challenges of developing safe and usable medical device software in areas where software bugs can have life-and-death consequences, and how to approach these challenges through rigorous processes, user-centered design, and leveraging emerging technologies.
By Neeraj Mainkar© 2025 Created by Michael Levin. Powered by