It's your business. You need software that is extensible, reliable, scales on demand, propels growth, and provides a phenomenal user experience. You need your technical requirements met. You need to save time. You need to invest wisely. You need Logical Software.

What we do:

High quality, high performance, full stack web applications built in-house at Logical Software. We execute projects from start to finish, or add functionality to existing projects. If you already have a team assigned we are more than happy to collaborate with them.

All software projects are unique, and there are many technologies available today. We analyze each projects unique requirements and select the technologies that are most appropriate. Document databases will not do when dealing with relational data, and scripting languages aren't the best choice when concurrency and memory management are of the utmost importance. We'll work with you to define the best solution for your business, and map out a plan to achieve it.

Scroll down to learn more about services we provide.

Infrastructure

HTTP Servers & REST APIs

HTTP servers are a crucial component of consumer facing web applications. Ensuring that front-end content is delivered in a standards compliant and performant manner is important. HTTP is also the foundation for REST APIs, a common choice for the delivery and management of dynamic content to clients - both internal and external. We will ensure your HTTP backend is highly available and scales elastically.

TCP/UDP Networking

Some companies require client and server communication with protocols other than HTTP. These use cases often involve custom protocols built on top of TCP, UDP, or others to aid in the efficient transfer of information. We are eager to discuss your use case and learn how we can help.

Ingestion

Regardless of the form your data is in when it moves over the network, the correct architecture needs to be in place for your data to be ingested and made available for future use. Whether that future use is real-time or batch processing, we will prepare a durable solution so your data is ready.

Data Management

Storage

Data storage is one of the most important pieces of software engineering. Data needs to be stored for rapid access, but also securely and durably. Some of the database options we use include row-based relational databases, column-based relational databases or data warehouses, nosql document databases, and data blob stores. The correct storage solution for your project will depend on your specific needs and goals.

Caching

Data needs to be available for immediate use. There are many ways to cache data, including configuring proper database indices, using external network caches such as memcache or redis, pre-computing data structures for later use, or preparing in-memory stores to ensure the next time that information is needed it's retrieval duration is negligible. Intelligent caching is what separates applications that scale from those that don't.

Processing

Creating programs to process stored information has many use cases. Whether it be calculating analytics to be delivered in a PDF report, cleaning low quality events out of a large dataset and saving the result, or pre-computing a complex data structure to reduce the cost of information retrieval in other programs by several orders of magnitude. These applications can increase performance, and reduce expenses for infrastructure and server provisioning, by allowing applications to achieve desired performance on less expensive hardware.

Backup

Data loss is an unacceptable outcome. Data needs to be securely backed up so that in the event of node failure, or even a complete data center outage, your data is still available and ready for use.

Compression

When working with large datasets, it quickly becomes obvious that one of the major performance bottlenecks in processing that data is moving it around. Whether it be over the network, or from the disk and into memory, the smaller the data is the faster it can be processed. Using standard compression libraries such as GZIP and LZ4 is very useful, but when the time is right additional options exist for even further compaction through binary serialization. With this technique we use bitwise operations to extract the most value we can out of each bit. Instead of using hundreds of bits to represent a value, it may be possible to use less than 10. This can reduce the size of a dataset by several orders of magnitude and has an incredible performance benefit. Let's discuss if this is right for your business.

Encryption

Data security is important, and part of that is ensuring that wherever your data is, it's safe from those that shouldn't have it. That's why, when the project calls for it, ensuring that data is encrypted in transit, at rest and in backups is critical. Any company dealing with sensitive information will wish to have this functionality, an example would be companies storing personally identifiable information, or PII, such as those storing health data and adhering to HIPPA compliance regulation. Let's make sure that your data is completely unreadable, until an entity with the proper access credentials requests read access.

Adaptable User Interfaces

Mobile

It's become a requirement that the functionality available on desktop computers is also available on mobile devices. We develop reactive and responsive designs - from the beginning - to ensure your users have full access to your software regardless of the device they're using. These are coded using HTML, CSS, and JavaScript and made available to any native platform using technologies such as PhoneGap and Apache Cordova.

Desktop

From complex web dashboards, to analytics charts, to PDFs, we understand the importance of versatile user-friendly applications. We use HTML, CSS, and JavaScript to produce these views in web browsers, and in native applications using technologies such as Electron.

Operations

Cloud Deployment - AWS

We have extensive experience deploying software stacks to the AWS cloud. We stay up to date with the technologies they have available, and use that knowledge to make the best selections for your specific needs.

Automation - Continuous Integration & Continuous Delivery

To ensure the stability and development-speed of your software project, all code must be merged to one main branch once it has been approved. When this happens, automation software kicks off a series of tasks to ensure a new production build is prepared and all existing production applications re-launch either immediately, or when time is right for them.

Security

Security tokens, keys, and passwords should not be known to anyone, including the developers working on the software. All of these sensitive pieces of data must be encrypted, and the decryption keys should only be available once the software has been deployed to a specific environment. We will ensure your information is strongly protected.

Attacks come from everywhere. Port scanners, malicious script upload attempts, cross-site scripting, structured query language injections, root kits, phishing links, malware, and man-in-the-middle attacks. We have only just scratched the surface of what black-hat programmers are up to. We understand these methodologies, and will make sure to protect your software against them.

Let's achieve your goals

Let's discuss your business, your future plans, and your goals. We will then customize a solution for you and layout a detailed plan to achieve it.

Logical Software Founder - John Livingston Foley III

John has a Computer Science degree and more than 10 years of software industry experience.

John served as the CTO of Fysical Labs where he led several software projects to implement a big data pipeline. He managed the delivery of both iOS and Android mobile location data collection software development kits (SDKs) that monitored phone positions and collected location events from Bluetooth beacons, global positioning satellites, Wi-Fi networks, and wireless access points. He made sure the data collection was done in a secure and privacy-compliant manner, and followed all necessary guidelines. John built a data ingestion application programming interface (API) that provided configuration to, and accepted events from, the mobile SDKs. The data ingestion layer he built scaled elastically, and at its peak handled over one billion requests per day. He then managed the development of data processing applications to extract useful information from the ingested data, and to ensure enriched results were delivered to clients. John also built a user interface that could be loaded on any device to display information about the pipeline.

"I am enthusiastic about speaking with you about your goals. I predict Logical Software can help you achieve them!"


Let's Talk