Atomic Spin

Answering “How Long Will This Take?” and Other Impossible Questions

Atomic Spin

As we decide where to focus, figure out the best way to implement things, or evaluate costs on any project, we hear the same questions: “How much will this cost?” Or “When will it be done?” Or even technical questions like, “How many records can this process per second?” ” We need to make decisions and decide where to invest, so these are critical questions. But that doesn’t make them easy. It seems like there are always too many variables to even begin finding an answer.

Embedding YouTube Videos in Android Applications

Atomic Spin

YouTube is the largest video sharing platform in the world, so it makes sense to include its videos in a mobile app. In this article, I’m going to cover how to add them to your Android application using YouTube’s official API. For the sake of this tutorial, we are going to start with an empty activity template, Kotlin , and a minimum API level of 6.0 in Android Studio. Setup. Unfortunately, YouTube does not provide a Gradle dependency for its player API.

Video 40

Sign Up for our Newsletter

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Five Quick Phone Tests

Atomic Spin

When I started testing websites, I had a list of quick “attacks” that could surface common issues quickly. Now that I’ve been doing more and more testing on mobile devices, I’ve come up with a similar list for them. Run on Your Oldest Phone First. I’ve found that issues tend to occur more on Android than iOS, mainly due to the large fragmentation of the Android market.

You Need to Be Involved with SoftwareGR

Atomic Spin

Are you a software designer or developer looking to connect with others in West Michigan? How about an owner of a software consultancy who would like some exposure to potential new employees? Maybe you lead a department of software designers and developers and would like to expose them to new ideas? As human beings, we have a powerful need to belong.

11 Required Monitoring Platform Capabilities for Enterprise DevOps Teams

In this eBook, Isaac Johnson, a Principal Software Engineer and DevOps Architect with experience at multiple Fortune 500 companies, reveals the key things he looks for when evaluating monitoring platforms for enterprise DevOps teams.

Atomic Welcomes an IT Operations Engineer and a Delivery Lead

Atomic Spin

This spring, Atomic gained a Delivery Lead in Ann Arbor and an IT Operations Engineer in Grand Rapids. Now that they’ve settled in, I asked each of them to tell me about themselves and what it’s been like working at Atomic. Stephen Guyton. Stephen is Atomic’s new IT Operations Engineer. He keeps our internal infrastructure up and running across both offices. And he makes sure Atoms have the equipment, software, and services they need to do their work. IT is Stephen’s second career.

Writing a Great Software Development Contract, Part 3 – Warranties, Indemnifications, and Liability

Atomic Spin

Custom software services contracts should call out the promises you and your partner make to each other. The contract should also define who will be responsible, and to what degree, if certain issues arise. Disclaimer. This post is not formal legal advice. I’m not a lawyer. I recommend you work with legal professionals for all of your software contract needs. This is the third post in a series that will cover common considerations in the following categories: Overview & Principles.

Agile Misconception #2: We Don’t Need Documentation

Atomic Spin

Documentation means a lot of different things to different people. I’ve also found it’s one of the top five topics to cause a developer to cringe. If you’ve used a waterfall software development process, you’re all too familiar with documentation. From requirements to systems architecture to design, you’re creating documentation at every step of the process. There is a common misconception that documentation should be done away with entirely in Agile development. I strongly disagree.

Agile 40

BLOBs with Knex and PostgreSQL

Atomic Spin

My team and I recently decided that we should store user-generated binary files in our PostgreSQL database so that a user could download them at a later time. This is different from uploading those files to something like Amazon S3 (which we’ll likely consider migrating to at some point down the road). Initially, we implemented this solution using a bytea column, but we found that the retrieval performance was unacceptable.

There’s a Relational Database in Your Unix CLI

Atomic Spin

Did you know that there’s a relational database hiding in your Unix shell? There really is, it turns out. A friend of mine was recently telling me about his discovery of the join command, which allows you to combine data from multiple files that contain tabular data. Let’s take a closer look. Examples. For these examples, I’ll be using two files.

Building Evolvable Architectures

Speaker: Dr. Rebecca Parsons, CTO of ThoughtWorks

The software development ecosystem exists in a state of dynamic equilibrium, where any new tool, framework, or technique leads to disruption and the establishment of a new equilibrium. Predictability is impossible when the foundation architects plan against is constantly changing in unexpected ways. It’s no surprise many CIOs and CTOs are struggling to adapt, in part because their architecture isn’t equipped to evolve. This webinar will discuss what’s at stake if companies continue to use long term architecture plans.

How to Ensure a Successful Mobile App Release

Atomic Spin

Releasing a new version of a mobile app can be a stressful process. The first few times you do it, your customer base is probably pretty small, so it doesn’t feel like a very big deal. However, after your user base grows into the thousands, the pressure really starts to build. The fear of releasing a bug that could potentially impact tens of thousands of people can be unnerving for even the most confident developer.

A Guide to Evaluating Closed- and Open-Source Libraries

Atomic Spin

Picking the right libraries for your project is important. The wrong ones can create long-term headaches and introduce technical debt that will eventually be very expensive to correct. When making your choice, there are a few important things to think about, and a few common things to avoid. Considerations for Closed-Source Libraries. Libraries are either open-source or proprietary, and there are different considerations for both.

Villainous Personas – Anticipating the Users You Don’t Want

Atomic Spin

You know and use personas for a majority of your projects, but I’m here to tell you that you may have missed a category of user. A very important one. A not-so-friendly one. Users Who Mean Harm. Let’s pretend you’ve created a beautifully functioning and user-friendly app. It’s living and breathing in the world when, BAM! An unfriendly, nay malicious, user begins threatening your ecosystem by attempting to scam your users or utilize your service for wrongdoing. But who are these dark evil-doers?

A “Grand Unified Theory” of Agile

Atomic Spin

Okay, that’s a bit grandiose, I admit. But I often see tweets or posts about how people don’t “get” capital-A Agile. Tweets like this and this point out common faults. Everything they say is technically correct but not especially useful. Pointing out all of the not-get-its in the wild won’t make people “get it” better, so these sentiments are useless. I’ve thought a lot about this problem, and I’ve tried to assemble a bit of a theory of Agile that would provide a framework for improvement.

Agile 40

How to Measure DevSecOps Progress and Ensure Success

Speaker: Shannon Lietz, Director of DevSecOps Team, Intuit

You've finally done it: You've won over C-Suite and your DevSecOps team is up and running. But how do you monitor your new program? Join Shannon Lietz, Leader and Director of DevsecOps at Intuit, and learn to lead your DevSecOps team to the top.

How TypeScript Shaped our Entire Codebase for the Better

Atomic Spin

Over the last year and a half, I’ve had the pleasure of working on a web app built in TypeScript. I came to Atomic with no web development experience at all. On my first couple of projects, I spent most of my time working on small, relatively isolated pieces of functionality for various applications: a bit of UI development here, some Rails model changes there.

How We Built a Scrappy Curriculum Editor using VSCode, TypeScript, and AWS Lambda

Atomic Spin

Great apps aren’t stuck in the mud. They change with the times. They float like oak leaves along a wide river of user expectations, business requirements, fashion trends, and platform changes. To keep floating, leaves apps need a watchful team of developers to walk the muddy banks nudging them back toward fast water whenever they beach on rocks or swirl into murmuring whirlpools of chat bots.

Want to be a Better Consultant? Learn to Work Strategically

Atomic Spin

Looking to level up your consulting skills? One thing I’ve observed among our more senior Atoms is a mastery of approaching work strategically. What Do I Mean by Strategy? As consultants, we juggle a lot of different concerns and goals. At a high level, our goals are things like: Deliver quality software. Hit budgets and timelines. Provide a great experience for our clients.

How to Avoid Stakeholder Gridlock on Your Software Project

Atomic Spin

Have you ever been to a meeting that involved a dozen or more people, that constantly went too far into the weeds, that couldn’t come to a consensus, and that left you feeling like nothing was accomplished? It was horrible, right? You probably never want to have that experience again. This kind of frustrating situation can quickly become the theme of a software project when too many stakeholders are involved and nobody has clear decision-making power.

The Pro’s Guide To Getting The Best ROI From Your New LMS

You need a Learning Management System when your courses and training programs need to be accessible online. Quickly build the perfect business case and easily determine which LMS will provide the best return on investment you need with this how-to eBook!

Starting Strong – 5 Ways to Establish Good Team Dynamics & Norms

Atomic Spin

You just kicked off a project, and it went well! Everyone is happy, hopeful, and on the same page. But how do you keep that momentum and camaraderie going? As a Delivery Lead, here are five things I try to do at the beginning of every project. Run a Team Norms Exercise. This exercise can be used to discuss common scenarios your team might encounter. You might say, “Amy usually leaves at 4:00 p.m. on Wednesday, but she starts 7:30 a.m.”

Why Your Big-Team Software Project Needs a Utility Player

Atomic Spin

Projects with big teams introduce a slew of interesting problems–problems like keeping developers fed with multiple tracks of work, understanding areas with large technical risks, and sharing knowledge. On a recent project, we developed a role to help solve these problems. I call it the utility player. In this post, I’ll define the role, the required skills, and my experience in the role. The Role. The utility player has four primary responsibilities.

Choosing the Right Software Partner, Part 4: The Engagement Management Process

Atomic Spin

A strong engagement management process keeps complex, custom software development projects on track for success. It’s essential that you (the client) are regularly involved in conversations about budget, scope, and key decisions. This is the fourth post in a four-part series aimed at helping you select the best software development partner. The series covers each of the characteristics you should look for in potential partners: Longevity. Great people. Experience. Engagement management process.

Choosing the Right Software Partner, Part 3: Evaluating Experience

Atomic Spin

Experience is the best teacher. When evaluating custom software development partners, it’s important to know if your potential partner has a track record of success with companies like yours and projects of similar complexity. This is the third post in a four-part series aimed at helping you select the best software development partner. The series covers each of the characteristics you should look for in potential partners: Longevity. Great people. Experience. Engagement management process.

Are Your Embedded Analytics DevOps-Friendly?

Does your analytics solution work with your current tech stack and DevOps practices? If not, any update to the analytics could increase deployment complexity and become difficult to maintain. Learn the 5 elements of a DevOps-friendly embedded analytics solution.

Type-Driven Development – Replacing Unit Tests with Types in Typescript

Atomic Spin

Being explicit about the return type of the function is the most under-utilized feature of TypeScript. At least, that’s true for the way I write my code. When I first started using TypeScript, I was really impressed with the way it inferred the return type of the function, and having these types perpetuate throughout the app without any effort on my part made it really easy to switch over from JavaScript.

Reviving the Handwritten Thank-You Note: Tips, Tools, and a 4-Sentence Template

Atomic Spin

I’m pretty sure you already think handwriting thank-you notes is a good move. So why don’t you more often? Does it seem old-fashioned? Too much work? Overly time-consuming? Not sure what to say? Do you associate it with notes you had send to your aunt, thanking her for your itchy birthday socks? Those are the same reasons I had for not writing more notes. But here’s the thing: These excuses keep everyone else from writing thank-you notes, too.

Creating a Fast, Easy Daily Log with Bear & aText

Atomic Spin

I am a big note taker, mostly because I tend to be forgetful. No matter how significant or recent a discussion may be, I often forget the details of what was said or decided–unless I take effective notes. Originally, I started using Bear to take notes because it allowed me to use Markdown to make bulleted lists, highlighting text, quotes, and to-dos stand out visually. It’s also been valuable because I can combine it with a text expander tool like aText to create shortcuts.

Choosing the Right Software Partner, Part 2: Evaluating for Great People

Atomic Spin

Engaging with a service firm isn’t like buying a product. It’s about hiring a set of people to do work on your behalf. Yes, the company as a whole matters, but you also need to be confident that the people there have the right set of skills for your project. This is the second post in a four-part series aimed at helping you select the best software development partner. The series covers each of the characteristics you should look for in potential partners: Longevity. Great people. Experience.

5 Things a Data Scientist Can Do to Stay Current

DataRobot together with Snowflake – a leading cloud data platform provider — is helping data scientists stay current with the latest technology and data science best practices so that they can excel in an increasingly AI-driven workplace. Five Things a Data Scientist Can Do to Stay Current offers data scientists guidance for thriving in AI-driven enterprises.

Commit Messages – the Easiest Documentation You’ll Ever Write

Atomic Spin

When it comes to writing documentation, nobody wants to do the job. And whatever documentation does get written is quickly outdated because nobody wants to update it, either. The most accurate documentation of how a system works is the code itself, but even “self-documenting” code falls short of describing why it was written that way. The next best thing is that little bit of text that gets attached to every code change: the version control log message. Motivation.

With Jetpack, Android Development Has Leapfrogged iOS

Atomic Spin

Over the past six years, I’ve done a lot of iOS development (and written a lot about iOS ). I would say it’s been the primary focus of my career. But as a software consultant, I need to be flexible, and I’ve done my fair share of Android development as well. I’m currently working on a new Android project where I got to use the latest Android Jetpack Components , and I am really impressed.

MVC 40

My Long, Winding Journey to “Software Developer”

Atomic Spin

If you take a look at our team page today, you’ll see a little chart showing that almost all of our makers have a college degree, save one very small slice. That slice is me. My journey to becoming a software developer at Atomic is quite distinct because I chose that unique path. And I believe the confluence of each Atom’s unique paths and experiences create tremendous value for us and our customers. Baby Steps.

Choosing the Right Software Development Partner (with or without an RFP), Part 1: Evaluating Longevity

Atomic Spin

Finding the right custom software development firm for your project is a tough job. Even a thorough RFP process won’t save you if you’re not looking for the right things. Software projects are notorious for being late, over budget, and frustrating. Making useful, valuable software products takes a lot more than technical know-how. Your team also needs good project management, experienced product development, great people skills, and more.

Testing at Every Stage of Development

Up to 80% of new products fail. The reality is harsh and the reasons why are endless. Perhaps the new product couldn’t oust a customer favorite. Maybe it looked great but was too hard to use. Or, despite being a superior product, the go-to-market strategy failed. There’s always a risk when building a new product, but you can hedge your bets by understanding exactly what your customers' expectations truly are at every step of the development process.